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

مراجعة - بناء وحدة

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

challenge icon

التحدي

يجمع هذا التحدي كل ما تعلمته في هذا الفصل. ستنشئ وحدية (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

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