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

Decoder Design

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

challenge icon

التحدي

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

جدول الحقيقة (decoder من 2 إلى 4)

Input (in)out0out1out2out3
001000
010100
100010
110001

واجهة module

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

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

ما يجب فعله:

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

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

تدرّب بنفسك: مترجم Verilog عبر الإنترنت