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

بوابات AND و OR و NOT

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

يغطي هذا الدرس بوابات المنطق الثلاث الأكثر أساسية: AND، و OR، و NOT. تشكل هذه البوابات أساس تصميم المنطق الرقمي.

بوابة AND

تُنتج بوابة AND القيمة 1 فقط عندما تكون جميع المدخلات 1.

جدول الحقيقة (مدخلان):

about
000
010
100
111

عنصر بوابة Verilog الأساسي:

and(out, a, b);

ما يعادل التعيين المستمر:

assign out = a & b;

بوابة OR

تُنتج بوابة OR القيمة 1 عندما يكون مدخل واحد على الأقل هو 1.

جدول الحقيقة (مدخلان):

about
000
011
101
111

عنصر بوابة Verilog الأساسي:

or(out, a, b);

ما يعادل التعيين المستمر:

assign out = a | b;

بوابة NOT

تُنتج بوابة NOT عكس مدخلها الوحيد. وتُسمى أيضاً العاكس (inverter).

جدول الحقيقة:

aout
01
10

عنصر بوابة Verilog الأساسي:

not(out, a);

ما يعادل التعيين المستمر:

assign out = ~a;

مدخلات متعددة

يمكن أن تحتوي بوابات AND و OR على أكثر من مدخلين:

and(out, a, b, c);     // بوابة AND بـ 3 مدخلات (out = a & b & c)
or(out, x, y, z, w);   // بوابة OR بـ 4 مدخلات

بوابات NOT تحتوي دائماً على مدخل واحد فقط.

مثال على الكود

module and_or_not (
  input a, b,
  output and_out,
  output or_out,
  output not_out
);
  and(and_out, a, b);   // بوابة AND
  or(or_out, a, b);     // بوابة OR
  not(not_out, a);      // بوابة NOT (عاكس)
endmodule
challenge icon

التحدي

أضف البوابات المنطقية (gate primitives) المفقودة بناءً على المهام.

ما يجب القيام به:

  1. أنشئ بوابة AND بمخرج and_result ومدخلات p و q
  2. أنشئ بوابة OR بمخرج or_result ومدخلات p و q
  3. أنشئ بوابة NOT بمخرج not_result ومدخل p

ورقة مرجعية

بوابات المنطق الأساسية في Verilog باستخدام النماذج الأولية للبوابات (gate primitives) والتعيين المستمر (continuous assignment):

البوابةالنموذج الأولي (Primitive)التعيين (Assign)يكون المخرج 1 عندما...
ANDand(out, a, b);assign out = a & b;تكون جميع المدخلات 1
ORor(out, a, b);assign out = a | b;يكون مدخل واحد على الأقل 1
NOTnot(out, a);assign out = ~a;يكون المدخل 0

تدعم بوابات AND و OR أكثر من مدخلين؛ بينما تمتلك بوابة NOT دائماً مدخلاً واحداً فقط:

and(out, a, b, c);   // بوابة AND بـ 3 مدخلات
or(out, a, b, c, d); // بوابة OR بـ 4 مدخلات
module example (input a, b, output and_out, or_out, not_out);
  and(and_out, a, b);
  or(or_out, a, b);
  not(not_out, a);
endmodule

جرّب بنفسك

module gates_challenge (
  input p,
  input q,
  output and_result,
  output or_result,
  output not_result
);
  
  // TODO: (and_result = p & q) AND أضف بوابة
  
  // TODO: (or_result = p | q) OR أضف بوابة
  
  // TODO: (not_result = ~p) NOT أضف بوابة

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

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

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