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

Recap - ALU Design

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

challenge icon

التحدي

وحدة ALU (الوحدة الحسابية المنطقية) هي دائرة رقمية تستقبل مدخلين، وتجري عملية عليهما، وتنتج خرجًا واحدًا. وهي تجري عمليات حسابية ومنطقية على مدخلين استنادًا إلى إشارة اختيار. تختار إشارة select عملية واحدة لتنفيذها.

كيفية عملها

selectالعمليةالخرج
2'b00الجمعa + b
2'b01الطرحa - b
2'b10AND على مستوى البتاتa & b
2'b11OR على مستوى البتاتa | b

أنشئ وحدة ALU بسيطة باستخدام عبارة case.

ما يجب فعله:

  1. أنشئ وحدة باسم alu
  2. أضف المدخلات: a (4 بت)، b (4 بت)، select (2 بت)
  3. أضف الخرج: result (4 بت، من النوع reg)
  4. أضف كتلة always @(*)
  5. أضف بداخلها عبارة case (select)
  6. أضف أربع حالات للقيم 2'b00 و2'b01 و2'b10 و2'b11
  7. أضف حالة default لتعيين result = 0
  8. اختم باستخدام endcase وendmodule

جرّب بنفسك

// TODO: أنشئ module alu 

  // TODO: أضف المدخلات (a, b, select)
  
  // TODO: أضف المخرج (result)

  // TODO: أضف كتلة always @(*)
  
  // TODO: أضف case (select)
  
  // TODO: أضف case 2'b00: result = a + b;
  
  // TODO: أضف case 2'b01: result = a - b;
  
  // TODO: أضف case 2'b10: result = a & b;
  
  // TODO: أضف case 2'b11: result = a | b;
  
  // TODO: أضف default: result = 0;
  
  // TODO: أضف endcase

// TODO: أضف endmodule

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

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