قبول العينات المفعّلة
جزء من قسم تصميم RTL والتحقق منه في رحلة Verilog على Coddy. الدرس 32 من 38.
التحدي
صعبأنشئ مراقبًا نموذجيًا واحدًا على مدى خمس خطوات. أضف تحكم التمكين: بعد أولوية إعادة الضبط، يقبل en=1 البيانات ويضيفها إلى الإجمالي؛ أما en=0 فيحافظ على الإجمالي. حافظ على جميع السلوكيات السابقة. احتفظ بكل ما ورد في الخطوات السابقة، بما في ذلك testbench الخاص بها وسلوك الإخراج السابق. جميع قيم الإدخال معروفة. تحتوي السيناريوهات على 40 حافة كحد أقصى، لذا يتسع الإجمالي في 16 بت. تطبع testbench الثابتة الإجمالي للسيناريوهات 1-9، والإجمالي والعداد للسيناريوهات 10-12، والإجمالي والعداد والإنذار للسيناريوهات 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 total<=total+data;
count<=0;
end
assign alarm=0;
endmoduleجميع دروس تصميم RTL والتحقق منه
1دوائر RTL التوافقية الموثوقة
القيم الافتراضية تمنع المزالجمشفّرات الأولويةالتحقق من One-Hotفك ترميز Case الآمنمراجعة - موجّه الطلبات4RTL تسلسلي متحكَّم فيه
أولوية إعادة الضبط والتمكينالعدادات التشبُّعيةتسلسل البيانات والإشارة الصالحةاكتشاف الحواف المُعايَنةمراجعة - عداد الأحداث7المشروع - مراقب العينات
تجميع العيناتقبول العينات المفعّلة2الأحجام والحساب الموقّع
الحفاظ على بتّات الحملالمقارنات الموقّعةالإزاحات الحسابية إلى اليمينالتجاوز والتشبّعمراجعة - الفرق الموقّع3وحدات RTL قابلة لإعادة الاستخدام
دوال توافقيةمعلمات آمنة العرضحلقات التوليدالتوليد الشرطيمراجعة - قناع بتات قابل لإعادة الاستخدامتدرّب بنفسك: مترجم Verilog عبر الإنترنت