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

Sensitivity List

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

تخبر قائمة الحساسية كتلة always **when يتم التنفيذ**. وتُكتب داخل قوسين بعد الرمز @.

قائمة الحساسية هي مجموعة من الإشارات أو الأحداث التي تُشغّل كتلة always. عندما تتغير أي إشارة في القائمة، تُنفَّذ الكتلة.

الصياغة:

always @(sensitivity_list) begin
  // يعمل الكود عندما تتغير الإشارات في القائمة
end

أنواع قائمة الحساسية

النوعالبنيةمتى تُنفَّذ الكتلة
جميع signals (التوافقية)always @(*)عندما تتغير أي إشارة داخلها
إشارات محددةalways @(a or b)عندما تتغير a أو b
مُشغِّل edge (التتابعية)always @(posedge clk)عند rising edge لـ clock
عدة edgealways @(posedge clk or posedge reset)عند edge لـ clock أو edge لـ reset

الخيار 1: جميع الإشارات (*)

الأكثر أمانًا والأكثر شيوعًا للمنطق التوافقي.

always @(*) begin
  out = a & b;   // يعمل عندما يتغير a أو b
end

تتضمن * تلقائيًا جميع الإشارات المقروءة في الكتلة.

الخيار 2: إشارات محددة

always @(a or b) begin
  out = a & b;   // يعمل عندما يتغير a أو b
end

إذا نسيت إشارة، فلن يتم تحديث output في المحاكاة when تحدث changes في تلك الإشارة، وبالتالي لن تعود المحاكاة متطابقة مع العتاد المُركَّب.

الخيار 3: مُشغِّل الحافة (posedge)

always @(posedge clk) begin
  q <= d;        // يعمل على الحافة الصاعدة للساعة
end

استخدم posedge للحافة الصاعدة، وnegedge للحافة الهابطة.

الخيار 4: حواف متعددة

always @(posedge clk or posedge reset) begin
  if (reset)
    q <= 0;
  else
    q <= d;
end

Runs عند حافة clock أو حافة reset.

الأخطاء الشائعة

الخطألماذا هو خاطئ
always @(a or b or c) لكنه يستخدم dغياب d → تصبح قيمة output قديمة في المحاكاة (عدم تطابق sim/synth)
always @(posedge clk or reset)غياب posedge لـ reset
always @(clk)يجب استخدام posedge clk للـ flip-flops
challenge icon

التحدي

ما يجب فعله:

  1. أضف قائمة الحساسية الصحيحة لجعل هذا flip-flop يعمل. يجب أن تُنفَّذ الكتلة عند rising edge للإشارة clk.

جرّب بنفسك

module flipflop (
  input clk,
  input d,
  output reg q
);
  
  always @(______) begin
    q <= d;
  end

endmodule
quiz iconاختبر نفسك

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

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

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