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)

المنفذ (Port)الاتجاهالعرضالوصف
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

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