رفتن به محتوای اصلی
مدار منطقی درس‌نامهٔ آزاد
درس متوسط ۲۰ دقیقه

دیکودر و انکودر

دیکودر n به ۲ به توان n، انکودر و انکودر اولویت‌دار؛ با قاعدهٔ مین‌ترم‌بودن خروجی‌های دیکودر.

هدف این درس

بتوانی رفتار دیکودر و انکودر را از روی ورودی پیش‌بینی کنی و هر تابع را با دیکودر پیاده کنی.

در این مطلب ۲

دیکودر: هر کد، یک سیم

تعریف دیکودر (Decoder)

مدار با n ورودی و خروجی؛ دقیقاً خروجیِ متناظر با کد ورودی ۱ می‌شود و بقیه صفر. هر خروجی، یک مین‌ترمِ ورودی‌هاست.

دیکودر ۲ به ۴ را ببین: ورودی ۱۰ فقط خروجی شمارهٔ ۲ را ۱ می‌کند. جملهٔ «هر خروجی یک مین‌ترم است» کلید کل درس است، چون نتیجهٔ بزرگی دارد:

دیکودرها معمولاً پایهٔ فعال‌ساز (Enable) هم دارند: وقتی فعال‌ساز صفر است، همهٔ خروجی‌ها صفر می‌مانند. با همین پایه می‌شود دیکودرهای کوچک را درختی کرد و دیکودر بزرگ ساخت.

انکودر: برعکس دیکودر

انکودر از ورودی (که فقط یکی‌شان ۱ است) کد n بیتی‌اش را تولید می‌کند. مشکلش؟ اگر دو ورودی هم‌زمان ۱ شوند یا هیچ‌کدام ۱ نباشد، خروجی بی‌معناست.

تعریف انکودر اولویت‌دار (Priority Encoder)

انکودری که به ورودی‌ها اولویت می‌دهد: اگر چند ورودی هم‌زمان فعال باشند، کدِ پرارزش‌ترینِ آن‌ها خروجی می‌شود. ورودی‌های کم‌ارزش‌تر در سایهٔ آن نادیده گرفته می‌شوند (با don’t care در جدول).

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

برداشت نادرست رایج

اشتباه رایج

دیکودر و انکودر دقیقاً معکوس هم‌اند و همیشه می‌شود جایشان را عوض کرد.

تصحیح

از نظر تعداد سیم معکوس‌اند، ولی رفتارشان قرینه نیست: دیکودر همیشه دقیقاً یک خروجی فعال دارد، ولی انکودر ساده با ورودی نامعتبر (هیچ یا چند فعال) خروجی غلط می‌دهد. برای همین انکودر اولویت‌دار ساخته شد.

مفاهیم مرتبط

مطالب مرتبط

از همین بخش و با برچسب‌های مشترک

این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

وضعیت پیشرفت برای دیکودر و انکودر