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

Built In Gate Primitives

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

يحتوي Verilog على بدائيات gate مضمّنة تتيح لك وصف دوائر منطقية باستخدام رموز gate الفعلية. يُسمّى هذا structural modeling. تبني الدوائر من خلال توصيل gates، تمامًا كما عند رسم مخطط تخطيطي.

إن بدائيات Gate هي كلمات مفتاحية محددة مسبقًا لنمذجة بوابات المنطق الأساسية. بدلًا من كتابة تعبير مثل assign out = a & b، تنشئ مثيلًا لبوابة:

and(out, a, b);   // بوابة AND مع الخرج out والمدخلات a و b

الصياغة العامة

gate_type (output, input1, input2, ...);
  • الحجة الأولى هي دائمًا output
  • الحجج التالية هي inputs (واحد أو أكثر، اعتمادًا على البوابة)

بدائيات البوابات المتاحة

نوع البوابةالكلمة المفتاحيةعدد المدخلات
ANDand2 أو أكثر
ORor2 أو أكثر
NOTnot1
NANDnand2 أو أكثر
NORnor2 أو أكثر
XORxor2 أو أكثر
XNORxnor2 أو أكثر

كيفية عمل البوابات الأساسية

عندما تكتب and(out, a, b)، ينشئ Verilog بوابة AND تقود out باستمرار باستخدام result الخاص بـ a & b. كلما تغيّرت قيمة a أو b، يتم تحديث out فورًا، تمامًا مثل البوابة الحقيقية.

بدائيات البوابات مقابل Continuous assignment

تنتج كلتا الطريقتين العتاد same:

// بوابة بدائية
and(out, a, b);

// تعيين مستمر (نفس النتيجة)
assign out = a & b;

تكون Gate primitives مفيدة عندما تريد وصف دائرة على أنها مجموعة من gates (نمط structural). ويكون Continuous assignment أفضل لـنمط behavioral (التعبيرات).

challenge icon

التحدي

ما يجب فعله:

  1. أضف gate primitive الصحيحة لجعل هذه الدائرة تعمل. يجب أن يُخرج module قيمة AND للمدخلين a وb. منفذ output اسمه c بالفعل.

جرّب بنفسك

module gate_challenge (
  input a,
  input b,
  output c
);
  
  // TODO: أضف البوابة البدائية الصحيحة
  // يجب أن يكون الخرج c هو a AND b

endmodule
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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

تدرّب بنفسك: مترجم Verilog عبر الإنترنت