مراجعة - بناء وحدة
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 36 من 90.
التحدي
يجمع هذا التحدي كل ما تعلمته في هذا الفصل. ستنشئ وحدية (module) من الصفر وتستدعيها (instantiate).
ما يجب القيام به:
Part 1: Create وحدة تسمى <strong>flipflop</strong> تحتوي على:
- مدخل بحجم 1-bit يسمى
clk - مدخل بحجم 1-bit يسمى
d - مدخل بحجم 1-bit يسمى
reset - مخرج بحجم 1-bit يسمى
q(استخدم reg، ويتم تعيينه داخل block من نوع always)
يجب أن تعمل الوحدة كالتالي:
- عندما يكون
resetمساوياً لـ 1، يصبحqمساوياً لـ 0 - خلاف ذلك، عند كل حافة لساعة النظام (clock edge)، يصبح
qمساوياً لـd
Part 2: Instantiate وحدة <strong>flipflop</strong> داخل وحدة <strong>top</strong> باستخدام port mapping بالاسم
قم بتوصيل الـ ports بالشارات التالية:
- الـ Port
clk← الإشارةclock - الـ Port
d← الإشارةdata - الـ Port
reset← الإشارةreset_signal - الـ Port
q← الإشارةout
جرّب بنفسك
// الجزء 1: إنشاء وحدة flipflop
// TODO: أضف المنافذ
// TODO: أضف كتلة always مع posedge clk و posedge reset
// إذا كان reset يساوي 1، q <= 0
// وإلا q <= d
// الجزء 2: وحدة top مع إنشاء المثيل
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استدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة