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

مراجعة - تصميم ALU

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

challenge icon

التحدي

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

كيف تعمل

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

قم ببناء ALU بسيطة باستخدام عبارة case.

ما يجب فعله:

  1. إنشاء وحدة (module) باسم alu
  2. إضافة المدخلات: a (بعرض 4-bit)، و b (بعرض 4-bit)، و select (بعرض 2-bit)
  3. إضافة المخرج: result (بعرض 4-bit، من نوع 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

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