مقایسه کننده دیجیتالی — به زبان ساده (+ دانلود فیلم آموزش گام به گام)
در این قسمت از سلسله مطالب مربوط به منطق ترکیبی، به بررسی یکی دیگر از مدارهای ترکیبی پرکاربرد و مهم به نام «مقایسهکنندهی دیجیتالی» (Digital Comparator) خواهیم پرداخت. مقایسهکنندههای باینری یا دیجیتالی با استفاده از گیتهای AND ،NOR و NOT ساخته میشوند. این مدارها سیگنالهای دیجیتالی که در ترمینالهای ورودی آنها قرار گرفته را با یکدیگر مقایسه کرده و با توجه به شرایط ورودیها، یک سیگنال خروجی تولید میکنند.
در مدارهای دیجیتالی علاوه بر جمع و تفریق اعداد باینری، گاهی اوقات لازم است بزرگتر بودن، کوچکتر بودن یا مساوی بودن مقدار یک ورودی نسبت به ورودی دیگر را مشخص کنیم. در مقایسهکنندههای دیجیتالی این کار با استفاده از چند گیت منطقی ساده انجام میشود. اصول کار این گیتها با استفاده از جبر بولی مشخص میشود. به طور کلی مقایسهکنندههای دیجیتالی دو نوعند:
- مقایسهگر برابری (Identity Comparator): این مقایسهکننده تنها یک پایهی خروجی برای A = B دارد که در صورت برقراری این شرط، خروجی 1 میشود.
- مقایسهگر مقدار (Magnitude Comparator): این مقایسهکننده دارای سه پایهی خروجی برای A = B ،A > B و A < B است که در صورت برقراری هر یک از این شرطها، خروجی مربوطه 1 خواهد شد.
- بخشهای اول، دوم، سوم، چهارم، پنجم، ششم و هفتم این مجموعه مطلب را میتوانید با کلیک روی هر یک از لینکهای مربوطه مطالعه کنید.
هدف استفاده از مقایسهکنندهی دیجیتالی، مقایسهی مجموعهای از متغیرها یا اعداد مجهول مثل A1, A2, A3, ... An, ...) A)در برابر یک مقدار ثابت یا مجهول مثل B1, B2, B3, ... Bn, ...) B) و سپس ایجاد تغییر در یک پرچم (flag) خروجی است. به عنوان مثال، یک مقایسهگر مقدار دو ورودی تک بیتی A و B را با هم مقایسه کرده و پس از بررسی وضعیتهای زیر در صورت لزوم پرچم مربوط به هر کدام را 1 میکند.
همانگونه که مشخص است سه حالت A بزرگتر از A ،B مساوی B و A کوچکتر از B بررسی میشوند.
استفاده از چنین مقایسهکنندهای در مواقعی که بخواهیم دو متغیر را با یکدیگر مقایسه کرده و در صورت برقراری هر یک از شروط بالا یک خروجی متفاوت تولید کنیم، بسیار سودمند است. به عنوان مثال در شمارندهها با رسیدن به یک عدد معین، پایهی خروجی یک میشود و از این خروجی میتوان برای ریست کردن شمارنده و کارهای دیگر استفاده کرد.
مقایسهگر دیجیتالی 1 بیتی
نحوهی عملکرد این مقایسهگر 1 بیتی در جدول درستی زیر نشان داده شده است.
جدول درستی مقایسهکنندهی دیجیتالی
با توجه به جدول بالا ممکن است به دو نکته پی برده باشید. نکتهی اول؛ مادامی که مقدار A و B برابر باشد، مدار بالا تفاوتی میان 0 یا 1 بودن مقدار A و B قائل نیست و در هر دو حالت A = B = 0 یا A = B = 1 خروجی A = B فعال میشود. نکتهی دوم نیز اینکه خروجی A = B دقیقاً شبیه یک گیت XNOR عمل میکند. لذا برای مقایسهی برابر دو عدد n بیتی، کافی است هر جفت از بیتها را در تابع '(Q = (A ⊕ B قرار دهیم.
با توجه به نکتهی گفته شده در ساخت مقایسهکنندههای دیجیتالی از گیت XNOR استفاده میشود. وقتی دو مقدار باینری یا BCD را با یکدیگر مقایسه میکنیم، در واقع «مقدار یا اندازه» این متغیرها را با یکدیگر مقایسه میکنیم. لذا «مقایسهگرهای مقدار» (Magnitude Comparator) بر مبنای مقایسهی 0 منطقی در برابر 1 منطقی کار میکنند.
همانند آنچه در آموزش قبلی برای ساخت جمعکنندههای n بیتی انجام دادیم، با کَسکِد کردن n مقایسهکنندهی تک بیتی نیز میتوان یک مقایسهکنندهی n بیتی ساخت. مقایسهکنندههای چند بیتی را میتوان برای مقایسهی کلمات باینری یا BCD به کار برد. همانند مقایسهکنندههای تک بیتی در صورت بزرگتر بودن یا کوچکتر بودن یک کلمه و یا تساوی کلمهها، خروجی متناسب با آنها تولید خواهد شد.
به عنوان مثال یک مقایسهگر مقدار 4 بیتی را در نظر میگیریم. این مقایسهگر دو کلمهی 4 بیتی (دو نیبل) را با هم مقایسه کرده و خروجی متناسب را تولید میکند. همانگونه که در شکل زیر نشان داده شده، یکی از این کلمات به ورودی A و کلمهی دیگر به ورودی B متصل میشود.
مقایسهگر مقدار 4 بیتی
برخی از آیسیهای مقایسهکنندهی 4 بیتی مثل TTL 74LS85 یا CMOS 4063 پایههای ورودی دیگری نیز دارند. به کمک این پایهها میتوان چندین آیسی را با یکدیگر کَسکِد کرده و در نتیجه کلمات بزرگتر از 4 بیت را نیز با هم مقایسه کرد. برای این منظور لازم است ورودیهای کسکد مستقیماً به خروجیهای متناظر از مقایسهکنندهی مرحلهی قبل متصل شوند. همانند آنچه در شکل زیر نشان داده شده، با این روش میتوان مقایسهکنندههای 8 بیتی، 16 بیتی و یا حتی 32 بیتی ساخت.
مقایسهگر کلمه 8 بیتی
در مقایسهی اعداد باینری یا BCD بزرگ، همواره برای کاهش زمان ابتدا با ارزشترین بیتها (MSB) با یکدیگر مقایسه میشوند. اگر این دو بیت مساوی بودند، به ترتیب تا رسیدن به کم ارزشترین بیت (LSB) بیتهای کم ارزشتر با یکدیگر مقایسه شده و در صورت برابری همهی بیتها، دو عدد مساوی بوده و خروجی A = B فعال میشود.
اما اگر در هر مرحلهای از این فرآیند دو بیت با یکدیگر برابر نبوده و مثلاً A > B یا A < B باشد، رابطهی بین دو عدد نیز همینگونه خواهد بود. از طرفی مقایسهی بیتهای کم ارزشتر نیز بیهوده بوده و عملیات مقایسه متوقف میشود.
مقایسهکنندههای دیجیتالی کاربرد بسیار زیادی در «مبدلهای آنالوگ به دیجیتال» (ADC) و «واحد محاسبه و منطق» (ALU) دارند. مطلب بعدی از مجموعه مقالات «منطق ترکیبی» وبلاگ فرادرس را میتوانید از طریق این لینک مطالعه کنید.
اگر مطلب بالا برای شما مفید بوده است، ممکن است آموزشهای زیر نیز برایتان کاربردی باشند.
- مجموعه آموزش های مدارهای منطقی (طراحی دیجیتال)
- گنجینه فرادرس های آموزش الکترونیک دیجیتال و سیستم های برنامه پذیر
- مجموعه آموزشهای مهندسی برق
- آموزش جامع سیستمهای باینری
^^
چجوری میتونیم با مالتی پلکسر انجام بدیم؟
خیلی عالی و مفید
عالی ممنون ارپز زحماتتون
سلام . میشه یک مقایسه کننده دو بیتی را برایم توضیح دهید .
سلام.
مقایسه کننده سه عدد چهار بیتی شکل مدارش چجوری هست؟ خیلی واجبه لطفاً زود جواب بدین ?