تصميم مفكك الشفرة
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 85 من 90.
التحدي
يأخذ المفكك (decoder) رقمًا ثنائيًا كمدخل ويقوم بتفعيل مخرج واحد فقط بناءً على ذلك الرقم. يُطلق على المخرج الذي يتم تفعيله اسم "one-hot" لأن بت واحدًا فقط يكون فعالًا (1)، وكل البتات الأخرى تكون غير فعالة (0).
جدول الحقيقة (فك ترميز 2 إلى 4)
| المدخل (in) | out0 | out1 | out2 | out3 |
|---|---|---|---|---|
| 00 | 1 | 0 | 0 | 0 |
| 01 | 0 | 1 | 0 | 0 |
| 10 | 0 | 0 | 1 | 0 |
| 11 | 0 | 0 | 0 | 1 |
واجهة الوحدة (Module Interface)
| المنفذ | الاتجاه | العرض | الوصف |
|---|---|---|---|
in | input | 2 bits | مدخل ثنائي (0 إلى 3) |
out0 | output | 1 bit | يكون نشطًا عندما in = 00 |
out1 | output | 1 bit | يكون نشطًا عندما in = 01 |
out2 | output | 1 bit | يكون نشطًا عندما in = 10 |
out3 | output | 1 bit | يكون نشطًا عندما in = 11 |
مهمتك هي إكمال الوحدة أدناه باستخدام عبارة case.
ما يجب فعله:
- عندما
in = 2'b00، يكونout0 = 1، وجميع المخرجات الأخرى 0 - عندما
in = 2'b01، يكونout1 = 1، وجميع المخرجات الأخرى 0 - عندما
in = 2'b10، يكونout2 = 1، وجميع المخرجات الأخرى 0 - عندما
in = 2'b11، يكونout3 = 1، وجميع المخرجات الأخرى 0
جرّب بنفسك
module decoder (
input [1:0] in,
output reg out0,
output reg out1,
output reg out2,
output reg out3
);
// TODO: أضف كتلة always @(*) مع case (in)
// 2'b00: out0=1, والباقي 0
// 2'b01: out1=1, والباقي 0
// 2'b10: out2=1, والباقي 0
// 2'b11: out3=1, والباقي 0
endmoduleجميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة