البوابات الأساسية المدمجة
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 39 من 90.
تحتوي Verilog على عناصر البوابات المباشرة (gate primitives) المدمجة التي تتيح لك وصف الدوائر المنطقية باستخدام رموز البوابات الفعلية. يُطلق على هذا اسم النمذجة الهيكلية (structural modeling) — حيث تقوم ببناء الدوائر عن طريق توصيل البوابات، تمامًا مثل رسم مخطط هندسي.
عناصر Gate البدائية هي كلمات مفتاحية معرّفة مسبقًا تقوم بنمذجة بوابات المنطق الأساسية. بدلاً من كتابة تعبير مثل assign out = a & b، تقوم بإنشاء مثيل للبوابة (instantiate):
and(out, a, b); // بوابة AND مع الخرج out والمدخلات a و bالبناء العام (Syntax)
gate_type (output, input1, input2, ...);- المعامل الأول هو دائماً output
- المعاملات التالية هي inputs (1 أو أكثر، اعتماداً على gate)
بوابات Primitive المتاحة
| نوع البوابة (Gate) | الكلمة المفتاحية | عدد المدخلات (Inputs) |
|---|---|---|
| AND | and | 2 أو أكثر |
| OR | or | 2 أو أكثر |
| NOT | not | 1 |
| NAND | nand | 2 أو أكثر |
| NOR | nor | 2 أو أكثر |
| XOR | xor | 2 أو أكثر |
| XNOR | xnor | 2 أو أكثر |
كيف تعمل بوابات `gate` الأولية (`primitive`)
عندما تكتب and(out, a, b)، ينشئ Verilog بوابة AND تقوم بشكل مستمر (`continuous`) بتوجيه out مع نتيجة (`result`) a & b. كلما تغيرت a أو b، تتحدث out فورًا — تمامًا مثل بوابة (`gate`) حقيقية.
Gate Primitives مقابل Continuous Assignment
تنتج كلا الطريقتين نفس المكونات المادية (hardware):
// بوابة بدائية
and(out, a, b);
// إسناد مستمر (نفس النتيجة)
assign out = a & b;تُعد عناصر Gate الأولى (primitives) مفيدة عندما تريد وصف دائرة على أنها مجموعة من الأبواب (gates) (أسلوب structural). بينما يُعد التعيين المستمر Continuous أفضل للأسلوب السلوكي behavioral (التعبيرات).
التحدي
ما يجب فعله:
- قم بـ
Addالـgateالـprimitiveالـcorrectلجعل هذه الدائرة تعمل. الـmoduleshouldيُخرج عملية AND للـinputsaوb. منفذ الـoutputمسمى بالفعلc.
جرّب بنفسك
module gate_challenge (
input a,
input b,
output c
);
// TODO: أضف البوابة الأولية الصحيحة
// يجب أن يكون الخرج c هو a AND b
endmoduleيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة