کد خبر: ۳۸۰۸۸
تاریخ انتشار: ۱۳:۱۹ - ۲۱ خرداد ۱۳۹۸
«تفریق‌گر باینری» (Binary Subtractor) نوع دیگری از مدار‌های محاسباتی ترکیبی است. این مدار وظیفه‌ای عکس جمع‌کننده‌ی باینری بر عهده دارد که همانگونه که از نام آن پیداست، تفریق‌گر باینری یک مدار تصمیم‌گیری است که دو عدد باینری را از یکدیگر کم می‌کند.
سرویس آموزش و آزمون برق نیوز، «تفریق‌گر باینری» (Binary Subtractor) نوع دیگری از مدار‌های محاسباتی ترکیبی است. این مدار وظیفه‌ای عکس جمع‌کننده‌ی باینری بر عهده دارد که در گذشته آن را به طور کامل بررسی کردیم.

همانگونه که از نام آن پیداست، تفریق‌گر باینری یک مدار تصمیم‌گیری است که دو عدد باینری را از یکدیگر کم می‌کند؛ به عنوان مثال X. – Y. شده و اختلاف این دو در خروجی قرار می‌گیرد.

برخلاف جمع‌کننده‌ی باینری که دو بیت خروجی SUM و CARRY تولید می‌کند، تفریق‌گر باینری با استفاده از یک بیت «قرضی» یا BORROW) B) از ستون قبلی، یک خروجی «اختلاف» یا DIFFERENCE) D) تولید می‌کند؛ لذا واضح است که فرآیند تفریق برعکس فرآیند جمع اتفاق می‌افتد.

از قبل می‌دانیم که علامت منفی (-) برای محاسبه‌ی حاصل تفریق به کار می‌رود و وقتی یک عدد از عدد دیگر کم می‌شود، اگر رقم مفروق از مفروق منه بزرگتر باشد، به یک رقم قرضی احتیاج است. به مثال زیر که تفریق ساده‌ی میان دو عدد دهدهی را نشان می‌دهد توجه کنید.
 
تشریح منطق ترکیبی - بخش نهم
در ستون اول از آنجا که ۳ از ۸ کوچکتر است، نمی‌توانیم به طور مستقیم ۸ را از ۳ کم کنیم، لذا باید یک عدد ۱۰ (مبنای اعداد) از ستون سمت چپ قرض گرفته و به مفروق منه اضافه کنیم. عملیاتی که ذکر شد، همان کاری است که در ریاضیات پایه انجام می‌دادیم.

برای تفریق اعداد باینری نیز از همان شیوه‌ی تفریق اعداد دهدهی استفاده می‌شود؛ اما از آنجایی که اعداد باینری مبنای ۲ دارند، در نمایش آن‌ها تنها از ارقام ۰ و ۱ استفاده می‌شود. رقم قرضی برای تفریق اعداد باینری همواره رقم ۱ است.

تفریق باینری

تفریق باینری را به روش‌های مختلفی می‌توان انجام داد، اما قوانین حاکم بر تمامی این روش‌ها یکسان هستند. می‌دانیم که اعداد باینری تنها دو رقم متفاوت دارند و لذا چهار حالت مختلف ممکن است پیش بیاید. تفریق ۰ از ارقام ۰ و ۱ تغییری در نتیجه ایجاد نمی‌کند، یعنی ۰ = ۰ – ۰ و ۰ = ۱ – ۰ است. از طرفی تفریق ۱ از ۱ نیز مساوی ۰ است. اما برای آخرین حالت یعنی تفریق ۱ از ۰ یا ۰ – ۱ به رقم قرضی احتیاج است.

تفریق باینری دو بیت
تشریح منطق ترکیبی - بخش نهم
در مثال ساده‌ی بالا، اگر از بیت قرضی صرف نظر کنیم نتیجه‌ی تفریق باینری دقیقاً برابر با خروجی یک گیت XOR خواهد بود. می‌توان بیت قرضی خروجی را با نماد B. و یکی از ورودی‌ها را نیز با نماد B. نشان داد؛ اما ممکن است این موضوع ما را به اشتباه بیندازد؛ لذا در ادامه‌ی این مقاله بیت‌های ورودی را با X. و Y. نشان می‌دهیم؛ که X. بیت مفروق منه و Y. بیت مفروق است. با این حساب جدول درستی برای تفریق‌گر باینری تک بیتی به صورت زیر خواهد بود.

گیت XOR با دو ورودی
تشریح منطق ترکیبی - بخش نهم
همانند جمع‌کننده‌ی باینری، اختلاف بین دو رقم تنها وقتی ۱ می‌شود که ورودی‌ها یکسان نباشند. تا بدین جای کار خروجی D. را با گیت XOR پیاده‌سازی کرده‌ایم، اما لازم است در حالتی که X. = ۰ و Y. = ۱ است، بیت قرضی خروجی را نیز به روشی نشان دهیم. متأسفانه گیت منطقی استانداردی که چنین خروجی را تولید کند وجود ندارد.

اما می‌دانیم اگر ورودی‌های گیت AND یک باشند، خروجی آن نیز یک می‌شود؛ لذا اگر در سر راه ورودی X. یک گیت NOT قرار داده و خروجی این گیت را همراه با ورودی Y، AND کنیم، بیت قرضی خروجی هنگامی که X. = ۰ و Y. = ۱ باشد تولید می‌شود؛
 
تشریح منطق ترکیبی - بخش نهم
 
لذا با ترکیب گیت XOR و مداری که در بالا ساخته شد، مدار یک تفریق‌گر باینری ساده ایجاد می‌شود که به نام «نیم تفریق‌گر» (Half Subtractor) نیز شناخته می‌شود.

مدار نیم تفریق‌گر باینری

نیم تفریق‌گر یک مدار منطقی است که بر روی دو بیت باینری عملیات تفریق انجام می‌دهد. این مدار دو خروجی اختلاف و بیت قرضی تولید می‌کند که برای طبقه‌ی بعدی مدار کلی استفاده می‌شود.

نیم تفریق‌گر همراه با بیت قرضی خروجی
 
تشریح منطق ترکیبی - بخش نهم
تشریح منطق ترکیبی - بخش نهم
 
از جدول درستی نیم تفریق‌گر می‌توان متوجه شد که خروجی اختلاف یا DIFFERENCE) D) نتیجه‌ی گیت XOR بوده و خروجی قرضی یا Borrow-out) Bout) نتیجه‌ی ترکیب گیت‌های NOT و AND است؛ لذا عبارت بولی که می‌توان برای توصیف نیم تفریق‌گر به کار برد به صورت زیر است.

برای بیت اختلاف:
تشریح منطق ترکیبی - بخش نهم
برای بیت قرضی:
تشریح منطق ترکیبی - بخش نهم
اگر عبارت‌های بولی نیم تفریق‌گر را با نیم جمع‌کننده مقایسه کنیم، می‌فهمیم که عبارت‌های استفاده شده برای SUM (در جمع‌کننده) و DIFFERENCE (در تفریق‌گر) دقیقاً یکسان هستند که به خاطر استفاده از گیت XOR است. عبارت‌های بولی توصیف‌کننده‌ی بیت BORROW در تفریق‌گر و بیت CARRY در جمع‌کننده نیز شباهت بسیار زیادی به یکدیگر دارند؛ لذا برای تبدیل یک نیم جمع‌کننده به یک تفریق‌گر تنها باید ورودی مفروق منه (X) را معکوس کنیم.

یکی از بزرگترین ایرادات نیم تفریق‌گر نداشتن پایه‌ای برای «قرضی ورودی» از مدار قبلی است. این موضوع در مواقعی که بخواهیم داده‌های چند بیتی را از هم کم کنیم ما را با مشکل مواجه می‌کند. برای حل این مشکل مداری به نام «تمام تفریق‌گر» (Full Subtractor) طراحی شده است که در این مدار قرضی ورودی از طبقه‌ی قبلی مدار نیز استفاده شده است.

مدار تمام تفریق‌گر باینری

تفاوت اصلی میان تمام تفریق‌گر و نیم تفریق‌گر در این است که تمام تفریق‌گر علاوه بر دو پایه‌ی ورودی برای ورودی‌های X. (مفروق منه) و Y. (مفروق)، یک پایه‌ی ورودی نیز برای بیت قرضی ورودی یا Borrow-in) Bin) دارد. از طریق این پایه بیت قرضی تولید شده توسط تفریق‌گر طبقه‌ی قبلی دریافت می‌شود.

بلوک دیاگرام تمام تفریق‌گر

تشریح منطق ترکیبی - بخش نهم
مدار ترکیبی تمام تفریق‌گر بر روی سه بیت عمل تفریق انجام داده و دو خروجی اختلاف (D) و قرضی خروجی (Bout) تولید می‌کند. همانند مدار جمع‌کننده‌ی باینری، تمام تفریق‌گر باینری را نیز می‌توان با ترکیب دو نیم تفریق‌گر باینری ساخت؛ برای این کار تنها کافی است قرضی خروجی از نیم تفریق‌گر اولی را با قرضی خروجی نیم تفریق‌گر دومی XOR کنیم. از طرفی خروجی اختلاف اولین نیم تفریق‌گر به ورودی مفروق منه دومین نیم تفریق‌گر داده می‌شود. برای درک بهتر این موضوع به شکل زیر توجه کنید.

دیاگرام منطقی تمام تفریق‌گر
تشریح منطق ترکیبی - بخش نهم
همانگونه که از مدار تمام تفریق‌گر بالا مشخص است، دو نیم تفریق‌گر با یکدیگر کسکد شده‌اند. از آنجایی که سه ورودی داریم، جدول درستی تمام تفریق‌گر هشت حالت مختلف خواهد داشت. ورودی‌های این مدار عبارتند از: BIN و دو بیت داده‌ی X. و Y.

جدول درستی تمام تفریق‌گر
تشریح منطق ترکیبی - بخش نهم
با توجه به جدول بالا عبارت بولی که برای توصیف تمام تفریق‌گر استفاده می‌شود به صورت زیر است:

برای بیت اختلاف (D) داریم:
تشریح منطق ترکیبی - بخش نهم
که آن را می‌توان به صورت زیر نیز ساده کرد:
تشریح منطق ترکیبی - بخش نهم
برای بیت قرضی خروجی (BOUT) داریم:
تشریح منطق ترکیبی - بخش نهم
که آن را می‌توان به صورت زیر نیز ساده کرد:
تشریح منطق ترکیبی - بخش نهم
تفریق‌گر باینری n. بیتی

همانند جمع‌کننده‌ی باینری، می‌توانیم n. تا تفریق‌گر باینری ۱ بیتی را با یکدیگر متصل یا کسکد کرده و یک تفریق‌گر باینری n. بیتی بسازیم. از طرفی پیش از این اشاره کرده بودیم که برای تبدیل یک جمع‌کننده‌ی باینری به تفریق‌گر باینری تنها کافی است یکی از ورودی‌ها را معکوس کنیم؛ لذا می‌توان به راحتی با استفاده از یک جمع‌کننده‌ی n. بیتی و n. تا گیت NOT عملیات تفریق را انجام داد. برای این کار تنها کافی است «مکمل دو» (two’s complement) عدد مفروق را حساب کرده و ورودی نقلی کم ارزش‌ترین بیت را ۱ کنیم.

تفریق‌گر باینری به کمک مکمل دو
تشریح منطق ترکیبی - بخش نهم
واضح است که X. – Y. مساوی است با (X + (-Y که همان X. به علاوه‌ی مکمل دو Y. است؛ لذا به سادگی می‌توان با استفاده از یک آی‌سی تمام جمع‌کننده‌ی ۴ بیتی مثل ۷۴LS۲۸۳ یا CD۴۰۰۸ و اعمال مکمل دو بر روی مفروق (ورودی B) عملیات تفریق بین دو عدد ۴ بیتی را انجام داد.

اگر بخواهیم دوباره از جمع‌کننده‌ی ۴ بیتی برای عملیات جمع استفاده کنیم، تنها لازم است پایه‌ی نقلی ورودی (CIN) را ۰ کنیم؛ لذا آی‌سی‌هایی مانند ۷۴LS۸۳ یا ۷۴LS۲۸۳ دارای یک پایه‌ی ورودی کنترلی برای استفاده به عنوان جمع‌کننده یا تفریق‌گر و سوئیچ بین این دو کارکرد هستند.
 
منبع:فرادرس
ارسال نظر قوانین ارسال نظر
لطفا از نوشتن با حروف لاتین (فینگلیش) خودداری نمایید.
از ارسال دیدگاه های نا مرتبط با متن خبر، تکرار نظر دیگران، توهین به سایر کاربران و ارسال متن های طولانی خودداری نمایید.
لطفا نظرات بدون بی احترامی، افترا و توهین به مسئولان، اقلیت ها، قومیت ها و ... باشد و به طور کلی مغایرتی با اصول اخلاقی و قوانین کشور نداشته باشد.
در غیر این صورت، «برق نیوز» مطلب مورد نظر را رد یا بنا به تشخیص خود با ممیزی منتشر خواهد کرد.
نام:
ایمیل:
* نظر:
وضعیت انتشار و پاسخ به ایمیل شما اطلاع رسانی میشود.
پربازدیدها
برق در شبکه های اجتماعی
اخبار عمومی برق نیوز
عکس و فیلم
پربحث ترین ها
آخرین اخبار