مراجعة - تصميم ALU
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 57 من 90.
التحدي
وحدة الحساب والمنطق (ALU) هي دائرة رقمية تأخذ مدخلين، وتجري عملية عليهما، وتنتج مخرجاً واحداً. تقوم بإجراء العمليات الحسابية والمنطقية على مدخلين بناءً على إشارة اختيار. تختار إشارة select عملية واحدة للتنفيذ.
كيفية العمل
| select | العملية | المخرج |
|---|---|---|
2'b00 | الجمع (Addition) | a + b |
2'b01 | الطرح (Subtraction) | a - b |
2'b10 | AND على مستوى البت (Bitwise AND) | a & b |
2'b11 | OR على مستوى البت (Bitwise OR) | a | b |
قم ببناء ALU بسيطة باستخدام جملة case.
ما يجب القيام به:
- أنشئ وحدة (module) باسم
alu - أضف المدخلات:
a(4 بت)،b(4 بت)،select(2 بت) - أضف المخرج:
result(4 بت، من نوع reg) - أضف كتلة
always @(*) - بالداخل، أضف جملة
case (select) - أضف أربع حالات لـ
2'b00،2'b01،2'b10،2'b11 - أضف حالة
defaultلضبطresult = 0 - أغلق بـ
endcaseوendmodule
جرّب بنفسك
// TODO: إنشاء وحدة alu
// TODO: إضافة المدخلات (a, b, select)
// TODO: إضافة المخرج (result)
// TODO: إضافة كتلة always @(*)
// TODO: إضافة case (select)
// TODO: إضافة الحالة 2'b00: result = a + b;
// TODO: إضافة الحالة 2'b01: result = a - b;
// TODO: إضافة الحالة 2'b10: result = a & b;
// TODO: إضافة الحالة 2'b11: result = a | b;
// TODO: إضافة default: result = 0;
// TODO: إضافة endcase
// TODO: إضافة endmoduleجميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة