دیکودر: هر کد، یک سیم
مدار با n ورودی و خروجی؛ دقیقاً خروجیِ متناظر با کد ورودی ۱ میشود و بقیه صفر. هر خروجی، یک مینترمِ ورودیهاست.
دیکودر ۲ به ۴ را ببین: ورودی ۱۰ فقط خروجی شمارهٔ ۲ را ۱ میکند. جملهٔ «هر خروجی یک مینترم است» کلید کل درس است، چون نتیجهٔ بزرگی دارد:
دیکودرها معمولاً پایهٔ فعالساز (Enable) هم دارند: وقتی فعالساز صفر است، همهٔ خروجیها صفر میمانند. با همین پایه میشود دیکودرهای کوچک را درختی کرد و دیکودر بزرگ ساخت.
انکودر: برعکس دیکودر
انکودر از ورودی (که فقط یکیشان ۱ است) کد n بیتیاش را تولید میکند. مشکلش؟ اگر دو ورودی همزمان ۱ شوند یا هیچکدام ۱ نباشد، خروجی بیمعناست.
انکودری که به ورودیها اولویت میدهد: اگر چند ورودی همزمان فعال باشند، کدِ پرارزشترینِ آنها خروجی میشود. ورودیهای کمارزشتر در سایهٔ آن نادیده گرفته میشوند (با don’t care در جدول).
کاربرد واقعیاش را در نظر بگیر: صفحهکلید. وقتی دو کلید همزمان فشرده میشوند، مدار باید یکی را انتخاب کند، نه اینکه قاطی کند. اولویت همان قانون انتخاب است.
اشتباه رایج
دیکودر و انکودر دقیقاً معکوس هماند و همیشه میشود جایشان را عوض کرد.
تصحیح
از نظر تعداد سیم معکوساند، ولی رفتارشان قرینه نیست: دیکودر همیشه دقیقاً یک خروجی فعال دارد، ولی انکودر ساده با ورودی نامعتبر (هیچ یا چند فعال) خروجی غلط میدهد. برای همین انکودر اولویتدار ساخته شد.