مراجعة - بناء وحدة
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 36 من 90.
التحدي
يجمع هذا التحدي بين كل ما تعلمته في هذا الفصل. ستقوم بإنشاء وحدة (module) من الصفر وستقوم باستدعائها (instantiate).
ما يجب القيام به:
الجزء الأول: قم بإنشاء وحدة تسمى <strong>flipflop</strong> تحتوي على:
- مدخل بحجم 1 بت يسمى
clk - مدخل بحجم 1 بت يسمى
d - مدخل بحجم 1 بت يسمى
reset - مخرج بحجم 1 بت يسمى
q(استخدم reg، ويتم تعيين قيمته داخل بلوك always)
يجب أن تعمل الوحدة على النحو التالي:
- عندما تكون قيمة
resetهي 1، تصبح قيمةqهي 0 - خلاف ذلك، عند كل حافة للساعة (clock edge)، تصبح قيمة
qهيd
الجزء الثاني: قم باستدعاء وحدة <strong>flipflop</strong> داخل الوحدة <strong>top</strong> باستخدام ربط المنافذ بالاسم (port mapping by name)
قم بتوصيل المنافذ بالإشارات التالية:
- المنفذ
clk← الإشارةclock - المنفذ
d← الإشارةdata - المنفذ
reset← الإشارةreset_signal - المنفذ
q← الإشارةout
جرّب بنفسك
// الجزء 1: إنشاء وحدة flipflop
// TODO: أضف المنافذ (ports)
// TODO: أضف كتلة always مع posedge clk و posedge reset
// إذا كان reset هو 1، فإن q <= 0
// وإلا q <= d
// الجزء 2: الوحدة الرئيسية (Top module) مع الاستدعاء
module top (
input clock,
input data,
input reset_signal,
output out
);
// TODO: قم باستدعاء flipflop مع تسمية النسخة ff1
// استخدم ربط المنافذ بالاسم: .clk(clock), .d(data), .reset(reset_signal), .q(out)
endmoduleجميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة