تصميم مبدّل من 4 إلى 1
جزء من قسم الأساسيات في رحلة Verilog على Coddy. الدرس 65 من 90.
التحدي
مُبدِّل من 4 إلى 1
يحتوي المُبدِّل من 4 إلى 1 على أربعة مداخل للبيانات (in0، in1، in2، in3)، وبتَّي اختيار (sel[1:0])، ومخرج واحد (out). يختار بتّا الاختيار أيّ مدخل سيمر إلى المخرج:
- عندما تكون
sel = 2'b00، يكون المخرجin0 - عندما تكون
sel = 2'b01، يكون المخرجin1 - عندما تكون
sel = 2'b10، يكون المخرجin2 - عندما تكون
sel = 2'b11، يكون المخرجin3
ستبني هذا المُبدِّل بطريقتين: أولًا باستخدام عبارات if-else، ثم في الدرس التالي باستخدام عبارة case. تعمل كلتا الطريقتين، لكن تكون case غالبًا أوضح عندما يكون لديك العديد من الخيارات.
يختار المُبدِّل من 4 إلى 1 واحدًا من أربعة مداخل ويمرّره إلى المخرج استنادًا إلى إشارة اختيار من بتَّين.
جدول الحقيقة
| sel1 | sel0 | out |
|---|---|---|
| 0 | 0 | out = in0 |
| 0 | 1 | out = in1 |
| 1 | 0 | out = in2 |
| 1 | 1 | out = in3 |
عندما تكون sel هي 00، يتبع المخرج in0. وعندما تكون sel هي 01، يتبع المخرج in1. وعندما تكون sel هي 10، يتبع المخرج in2. وعندما تكون sel هي 11، يتبع المخرج in3.
ما يجب فعله:
- أنشئ وحدة باسم
mux4to1 - أضف مدخل
in0(بت واحد) - أضف مدخل
in1(بت واحد) - أضف مدخل
in2(بت واحد) - أضف مدخل
in3(بت واحد) - أضف مدخل
sel(بتّان) - أضف مخرج
out(بت واحد، من النوعreg) - أضف كتلة
always @(*) - داخلها، أضف عبارة
if-elseتتحقق منsel:- إذا كانت
sel == 2'b00، فعيّنout = in0 - وإلا إذا كانت
sel == 2'b01، فعيّنout = in1 - وإلا إذا كانت
sel == 2'b10، فعيّنout = in2 - وإلا، فعيّن
out = in3
- إذا كانت
- اختتم باستخدام
endmodule
جرّب بنفسك
// الخطوة 1: أنشئ وحدة باسم mux4to1
// الخطوة 2: أضف مدخل in0
// الخطوة 3: أضف مدخل in1
// الخطوة 4: أضف مدخل in2
// الخطوة 5: أضف مدخل in3
// الخطوة 6: أضف مدخل sel (2 بت)
// الخطوة 7: أضف مخرج out (من نوع reg)
// الخطوة 8: أضف كتلة always @(*)
// الخطوة 9: أضف عبارة if-else
// إذا sel == 2'b00، out = in0
// وإلا إذا sel == 2'b01، out = in1
// وإلا إذا sel == 2'b10، out = in2
// وإلا، out = in3
// الخطوة 10: Endmoduleجميع دروس الأساسيات
4العوامل الجزء 1
العوامل الحسابيةعامل باقي القسمةعوامل المقارنةمراجعة - الرياضيات البسيطةالعوامل على مستوى البتات7التعيين والبوابات
التعيين المستمرالتعيين باستخدام العواملالعناصر الأساسية المدمجة للبواباتبوابات AND وOR وNOTبوابات XOR وXNORمراجعة - دائرة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الربطالمعامل الشرطيمراجعة - تحدي المعاملات11الحلقات التكرارية
حلقة Forحلقة Whileحلقة التكرارحلقة لا نهائيةتعليمة التعطيلمراجعة - أنماط الحلقات التكرارية3نظام الأعداد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ الإدخال والإخراج ثنائية الاتجاهإنشاء مثيل للوحدةربط المنافذ حسب الاسمربط المنافذ حسب الترتيبمراجعة - بناء وحدة9الكتل الإجرائية
كتلة Alwaysكتلة Initialقائمة الحساسيةإسناد حاجزإسناد غير حاجزمراجعة - Always مقابل Initial15متحكّم إشارات المرور
تعريف الحالاتمنطق آلة الحالاتتدرّب بنفسك: مترجم Verilog عبر الإنترنت