Menu
CoddyTech

هيكل الوحدة

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

الوحدة هي اللبنة الأساسية في Verilog. يتكوّن كل تصميم من وحدات تتصل معًا لتشكيل أنظمة أكبر.

الوحدة هي مكوّن عتادي يتضمن:

  • اسمًا
  • مدخلات (إشارات واردة)
  • مخرجات (إشارات صادرة)
  • منطق داخلي (ما تفعله الوحدة)

تخيّل الوحدة على أنها شريحة لها دبابيس ودوائر داخلية.

البنية الأساسية للوحدة

تتبع كل وحدة هذه البنية:

module module_name (
  input  signals,
  output signals
);
  
  // التصريحات الداخلية (wires، regs، إلخ)
  // المنطق (عبارات assign، وكتل always، إلخ)
  
endmodule

أجزاء الوحدة

الجزءالغرض
الكلمة المفتاحية moduleتبدأ تعريف الوحدة
module_nameاسم الوحدة
( )قائمة منافذ الإدخال والإخراج
input / outputتحدّد اتجاه المنفذ
جسم الوحدةالمنطق الداخلي والتوصيلات
endmoduleتنهي تعريف الوحدة

مثال على وحدة بسيطة

module and_gate (
  input a,
  input b,
  output c
);
  assign c = a & b;
endmodule

هذه الوحدة:

  • اسمها and_gate
  • لها مدخلان (a، b)
  • لها مخرج واحد (c)
  • تتضمن تعليمة assign واحدة لتعريف المنطق

قواعد بنية الوحدة

  1. من الممارسات الشائعة تخصيص وحدة واحدة لكل ملف
  2. ينبغي أن يصف اسم الوحدة وظيفتها
  3. تُدرج المنافذ بين قوسين بعد الاسم
  1. المدخلات تكون دائمًا input (لا يمكن الكتابة داخلها)
  2. المخرجات هي output (يمكن أن تكون reg أو wire)
  3. يجب أن تُغلق الوحدة باستخدام endmodule
challenge icon

التحدي

أكمل الأجزاء الناقصة لإتمام هذه الوحدة.

ما يجب فعله:

  1. أضف اسم الوحدة my_and
  2. أضف input لـ x
  3. أضف input لـ y
  4. أضف output لـ z
  5. أضف المنطق الداخلي باستخدام assign

جرّب بنفسك

module ______ (   // أضف اسم الوحدة
  input x,       // أضف مُدخلًا
  input y,       // أضف مُدخلًا
  output z       // أضف مخرجًا
);
  // أضف عبارة assign هنا (z = x & y)
  
endmodule
quiz iconاختبر نفسك

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

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

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