وحدتك الأولى
جزء من قسم الأساسيات في رحلة Verilog على Coddy. الدرس 3 من 90.
الوحدة هي لبنة البناء الأساسية في Verilog. كل جزء من تعليمات Verilog موجود داخل وحدة.
فكّر في module باعتباره مكوّنًا يتضمن:
- المدخلات (الإشارات الواردة)
- المخرجات (الإشارات الصادرة)
- Behavior (ما يفعله)
بنية الوحدة
module module_name ( inputs, outputs );
// كل شيء داخل هنا
endmoduleتبدأ كل وحدة بـ module وتنتهي بـ endmodule.
المدخلات والمخرجات
module and_gate(
input a, // a يدخل INTO الوحدة
input b, // b يدخل INTO الوحدة
output c // c يخرج OUT من الوحدة
);
// السلوك يذهب هنا
endmodule- input = تدخل الإشارة إلى الوحدة
- output = تغادر الإشارة الوحدة
إضافة السلوك
الآن نجعل الوحدة تنفّذ شيئًا:
module and_gate(
input a,
input b,
output c
);
assign c = a & b; // c يكون 1 فقط عندما يكون a AND b هما 1
endmoduleassignيوصّل الجانب الأيمن بالجانب الأيسر بشكل مستمر&تعني AND في Verilog
التحدي
في هذا التحدي، تحتاج إلى إنشاء module بسيط ينفّذ عملية OR.
ما يجب فعله:
- يجب تسمية module باسم
or_gate - يجب أن يحتوي على input يُسمّى
x - يجب أن يحتوي على input يُسمّى
y - يجب أن يحتوي على output يُسمّى
z - داخل module، استخدم
assignلجعلzمساويًا لـx OR y
إن header الخاص بـ module ومنافذه الثلاثة موجودة already في المحرر. والسطر الذي تحتاج إلى إضافته هو عبارة assign داخل module.
ملاحظة: في Verilog، تتم كتابة OR باستخدام رمز الأنبوب |. ويُخرج القيمة 1 (صحيح) إذا كان مدخل واحد على الأقل يساوي 1 (صحيح).
جرّب بنفسك
// رأس الوحدة ومنافذها مكتوبة بالفعل من أجلك
module or_gate(
input x,
input y,
output z
);
// دورك: استخدم assign لتعيين z إلى x OR y
// في Verilog، يُكتب OR كـ |
endmodule
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine Logicتدرّب بنفسك: مترجم Verilog عبر الإنترنت