مسح النافذة الحالية
جزء من قسم تصميم RTL والتحقق منه في رحلة Verilog على Coddy. الدرس 33 من 38.
التحدي
صعبابنِ مراقبًا واحدًا من نوع Sample Monitor على خمس خطوات. أضف مسحًا متزامنًا ذي أولوية بعد rst وقبل en. يعيد clear تعيين total دون قبول البيانات على تلك الحافة، حتى عندما تكون قيمة en=1. حافظ على سلوك إعادة التعيين والتمكين. احتفظ بكل شيء من الخطوات السابقة، بما في ذلك testbench وسلوك الإخراج السابق. جميع قيم الإدخال معروفة. تحتوي السيناريوهات على 40 حافة كحد أقصى، لذا فإن total يتسع في 16 بتًا. يطبع testbench الثابت total للسيناريوهات 1-9، وtotal وcount للسيناريوهات 10-12، وtotal وcount وalarm للسيناريوهات 13-15. لا تُقيَّم إلا السيناريوهات المفعّلة لهذه الخطوة.
أكمل design.v وحافظ على أسماء وحداته ومنافذه. يوفّر testbench.v المقفل تغييرات الإدخال ويطبع المخرجات بعد استقرارها. ويختار سيناريو باستخدام وسيط محاكٍ مثل +CASE=1؛ ولا حاجة إلى إدخال قياسي. لا تضف طباعة أو تأخيرات أو إنهاءً للمحاكاة إلى التصميم. الناتج المتوقع هو صف واحد من القيم العشرية لكل ملاحظة، مفصولة بمسافة واحدة ومنتهية بحرف سطر جديد.
جرّب بنفسك
module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
always @(posedge clk)begin
if(rst)total<=0;else if(en)total<=total+data;
count<=0;
end
assign alarm=0;
endmoduleجميع دروس تصميم RTL والتحقق منه
1دوائر RTL التوافقية الموثوقة
القيم الافتراضية تمنع المزالجمشفّرات الأولويةالتحقق من One-Hotفك ترميز Case الآمنمراجعة - موجّه الطلبات4RTL تسلسلي متحكَّم فيه
أولوية إعادة الضبط والتمكينالعدادات التشبُّعيةتسلسل البيانات والإشارة الصالحةاكتشاف الحواف المُعايَنةمراجعة - عداد الأحداث7المشروع - مراقب العينات
تجميع العيناتقبول العينات المفعّلة2الأحجام والحساب الموقّع
الحفاظ على بتّات الحملالمقارنات الموقّعةالإزاحات الحسابية إلى اليمينالتجاوز والتشبّعمراجعة - الفرق الموقّع3وحدات RTL قابلة لإعادة الاستخدام
دوال توافقيةمعلمات آمنة العرضحلقات التوليدالتوليد الشرطيمراجعة - قناع بتات قابل لإعادة الاستخدامتدرّب بنفسك: مترجم Verilog عبر الإنترنت