هيكل الوحدة
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 30 من 90.
تعتبر الوحدة (module) هي لبنة البناء الأساسية في Verilog. يتم بناء كل تصميم من وحدات تتصل ببعضها البعض لتكوين أنظمة أكبر.
الوحدة (Module) هي مكون مادي يحتوي على:
- اسم
- مدخلات (إشارات واردة)
- مخرجات (إشارات صادرة)
- منطق داخلي (ما تفعله الوحدة)
فكر في الوحدة البرمجية (module) كأنها رقاقة ذات دبابيس ودوائر داخلية.
هيكل الوحدة الأساسي
تتبع كل وحدة هذا الهيكل:
module module_name (
input signals,
output signals
);
// التصريحات الداخلية (wires، regs، إلخ.)
// المنطق (جمل assign، بلوكات always، إلخ.)
endmoduleأجزاء الوحدة (Module)
| الجزء | الغرض |
|---|---|
الكلمة المفتاحية module | تبدأ تعريف الوحدة |
module_name | اسم الوحدة |
( ) | قائمة منافذ الإدخال والإخراج |
input / output | التصريح عن اتجاه المنفذ |
| جسم الوحدة | المنطق الداخلي والتوصيلات |
endmodule | تنهي تعريف الوحدة |
مثال بسيط للموديول
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleهذه الوحدة:
- تسمى
and_gate - لها مدخلان (
a،b) - لها مخرج واحد (
c) - تحتوي على عبارة
assignواحدة تحدد المنطق
قواعد هيكلية الوحدة
- وحدة واحدة لكل ملف هو ممارسة شائعة
- اسم الوحدة يجب أن يصف وظيفتها
- المنافذ (Ports) تُدرج بين قوسين بعد الاسم
- المدخلات هي دائمًا
input(لا يمكن الكتابة بداخلها) - المخرجات هي
output(يمكن أن تكونregأوwire) <strong>endmodule</strong>يجب أن يغلق الوحدة (module)
التحدي
املأ الأجزاء المفقودة لإكمال هذه الوحدة (module).
ماذا يجب أن تفعل:
- أضف اسم الوحدة
my_and - أضف
inputلـx - أضف
inputلـy - أضف
outputلـz - أضف المنطق الداخلي باستخدام
assign
ورقة مرجعية
تُعد الـ module (الوحدة) هي وحدة البناء الأساسية في Verilog — وهي مكون عتادي له مدخلات، ومخرجات، ومنطق داخلي.
module module_name (
input a,
input b,
output c
);
// المنطق الداخلي
assign c = a & b;
endmodulemodule/endmodule— بداية ونهاية التعريفinput— إشارة داخلة (للقراءة فقط داخل الوحدة)output— إشارة خارجة (يمكن أن تكونregأوwire)assign— يُعرّف المنطق التوافيقي (combinational logic)
جرّب بنفسك
module ______ ( // أضف اسم الوحدة
______ x, // أضف مدخلاً
______ y, // أضف مدخلاً
______ z // أضف مخرجاً
);
// أضف عبارة التعيين هنا (z = x & y)
endmoduleيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة