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

وحدتك الأولى

جزء من قسم الأساسيات في رحلة 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

endmodule
  • assign يوصّل الجانب الأيمن بالجانب الأيسر بشكل مستمر
  • & تعني AND في Verilog
challenge icon

التحدي

في هذا التحدي، تحتاج إلى إنشاء module بسيط ينفّذ عملية OR.

ما يجب فعله:

  1. يجب تسمية module باسم or_gate
  2. يجب أن يحتوي على input يُسمّى x
  3. يجب أن يحتوي على input يُسمّى y
  4. يجب أن يحتوي على output يُسمّى z
  5. داخل 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
quiz iconاختبر نفسك

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

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

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