همه ی مطالب

جمع کننده و تفریق کننده چهار بیتی در سیستم متمم دو (علامت دار)

برای جمع کردن اعداد باینری چهار بیتی بدون علامت می توان از چهار Full Adder استفاده کرد به نحوی که به دو ورودی هر یک از Adderها بیت های مربوط به دو عدد که قرار است با هم جمع شوند داده می شود و به ترتیب کری خروجی Adder مربوط به بیت کم ارزش تر را به کری ورودی  Adder با ارزش تر (Adder سمت چپی) وصل می کنیم. در این صورت کری ورودی اولین Adder (کم ارزش) خالی می ماند که باید به آن صفر دهیم زیرا رقم نقلی وجود ندارد به همین خاطر می توان آن را به زمین وصل کرد.در نهایت حاصل جمع را از خروجی Adder ها و کری خروجی آخرین Adder (با ارزش) می گیریم.

 

اما مسئله این است که ما می خواهیم این جمع کننده عمل تفریق را نیز انجام دهد و همچنین بتوانیم از این به بعد با اعداد علامتدار یعنی متمم دو کار کنیم به همین دلیل باید در مدار تغییر ایجاد کنیم.

اولین تغییر مربوط به عمل تفریق است که طبق شکل چهار گیت XOR  به مدار اضافه می شود و کری ورودی اولین Adder را که به زمین متصل کرده بودیم  به همراه یک پایه از هر XOR را به متغیر ورودی به نام M وصل می کنیم.این تغییر از آنجا ناشی می شود که برای تفریق دو عدد باینری باید از عدد دوم متمم دو گرفت وسپس با عدد اول جمع کرد.

برای به دست آوردن متمم دو یک عدد ابتدا یکها را صفر و صفرها را یک می کنیم سپس عدد بدست آمده را با یک جمع می کنیم همین اعمال بر روی مدار به کمک XOR صورت می گیرد بدین ترتیب که با 1 کردن M که به XOR ها متصل است مکمل بیتهای عدد دوم به دست می آید و چون M به کری ورودی Adder اول متصل است  عدد مکمل شده با 1 جمع می شود بدین ترتیب متمم دو بدست می آید. لازم به ذکر است که برای عمل جمع باید به M صفر داد.

 از این به بعد چون اعدادی که به مدار می دهیم اعداد علامتدار (سیستم متمم دو) می باشند کری خروجی Adder آخر لازم است تا در مواقعی حساب شود و در برخی مواقع نادیده گرفته شود تا حاصل جمع یا تفریق صحیح باشد به همین دلیل باید مداری به آن اضافه کنیم تا این عمل را انجام دهد.

وقتی سرریزرخ میدهد یعنی وقتی جمع دو عدد چهار بیتی مثبت یا منفی در چهار بیت نمی توانند جای بگیرند و نیازمند بیت اضافی می باشند باید بیت سرریز یا همان کری خروجی Adder آخر را نیز به حساب آورد و وقتی سرریز نداریم باید آن را حذف کرد تا جواب حاصل صحیح باشد.

برای اینکه بفهمیم سرریز وجود دارد یا نه به کری ورودی و کری خروجی آخرین Adder گیت XOR اضافه می کنیم و وقتی خروجی XOR یک باشد سرریز وجود دارد در غیر اینصورت سرریز وجود ندارد و باید کری خروجی آخرین Adder حذف شود اما در سخت افزاری که در آن خروجی تعریف شده است آن خروجی یا باید 1 باشد یا 0

پس راه حل کار چیست؟ می توان در مواقعی که لازم است تا کری خروجی حذف گردد به بیت چهارم (s[3]) عدد حاصل از جمع یا تفریق نگاه کنیم و در بیت مربوط به سرریز مساوی همان بیت را قرار دهیم این کار به این دلیل انجام می شود که اگر عدد مثبت یا منفی بود علامت آن تغییر نکند لازم به ذکر است که مثبت بودنش را با صفر و منفی بودنش را با یک نشان می دهد.

مدار زیر در برنامه Quartus طراحی شده و قابل اجرا می باشد.

جمع کننده و تفریق کننده چهار بیتی علامتدار

نوشته های مشابه

3 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.