Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تصميم مفكك الشفرة

جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 85 من 90.

challenge icon

التحدي

يأخذ المفكك (decoder) رقمًا ثنائيًا كمدخل ويقوم بتفعيل مخرج واحد فقط بناءً على ذلك الرقم. يُطلق على المخرج الذي يتم تفعيله اسم "one-hot" لأن بت واحدًا فقط يكون فعالًا (1)، وكل البتات الأخرى تكون غير فعالة (0).

جدول الحقيقة (فك ترميز 2 إلى 4)

المدخل (in)out0out1out2out3
001000
010100
100010
110001

واجهة الوحدة (Module Interface)

المنفذالاتجاهالعرضالوصف
ininput2 bitsمدخل ثنائي (0 إلى 3)
out0output1 bitيكون نشطًا عندما in = 00
out1output1 bitيكون نشطًا عندما in = 01
out2output1 bitيكون نشطًا عندما in = 10
out3output1 bitيكون نشطًا عندما in = 11

مهمتك هي إكمال الوحدة أدناه باستخدام عبارة case.

ما يجب فعله:

  1. عندما in = 2'b00، يكون out0 = 1، وجميع المخرجات الأخرى 0
  2. عندما in = 2'b01، يكون out1 = 1، وجميع المخرجات الأخرى 0
  3. عندما in = 2'b10، يكون out2 = 1، وجميع المخرجات الأخرى 0
  4. عندما 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

جميع دروس الأساسيات