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

العدادات التشبُّعية

جزء من قسم تصميم RTL والتحقق منه في رحلة Verilog على Coddy. الدرس 17 من 38.

استخدمت الأساسيات عدّادًا ملتفًا. أمّا العدّاد المتشبّع فيتوقف عند حدّ معيّن، وهو أمر مفيد للعدود المقيّدة. أضف حارسًا صريحًا إلى تحديث العملية الحسابية، وحافظ على استقلال سلوك التمكين وإعادة الضبط عن الحدّ.

مقتطف ذو صلة؛ يتم توفير التصريحات والتوصيلات المحيطة في التحدي.

always @(posedge clk) begin
    if(rst) count <= 0;
    else if(en && count != 15) count <= count + 1;
end

يتم الاحتفاظ بالقيمة القصوى بدلًا من الالتفاف إلى الصفر.

احمِ تحديثات الحدود صراحةً عندما يجب أن يصل العداد إلى الحد الأقصى بدلًا من الالتفاف.

challenge icon

التحدي

متوسط

أنشئ عدّادًا مشبعًا من 4 بتات q. يؤدي rst المتزامن إلى مسحه. تزيد الحواف المفعّلة حتى 15، ثم يبقى عند 15؛ كما تبقى الحواف غير المفعّلة دون تغيير. تتمتع إعادة الضبط بالأولوية. أعمدة الخرج: q. تكون جميع عناصر التحكم والبيانات مستقرة قبل كل حافة صاعدة للساعة؛ وتُرصد النتائج بعدها.

أكمل design.v وحافظ على أسماء وحداته ومنافذه. يوفّر testbench.v المقفل تغييرات الإدخال ويطبع المخرجات بعد استقرارها. ويختار سيناريو باستخدام وسيطة للمحاكي مثل +CASE=1؛ ولا يلزم إدخال قياسي. لا تضف طباعة أو تأخيرات أو إنهاءً للمحاكاة إلى التصميم. يكون الخرج المتوقع صفًا واحدًا من القيم العشرية لكل ملاحظة، مفصولة بمسافة واحدة ومنتهية بسطر جديد.

جرّب بنفسك

module dut (input clk, input rst, input en, output reg [3:0] q);
    // استبدل هذا العنصر النائب بتصميمك.
    initial q = 0;
endmodule
quiz iconاختبر نفسك

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

جميع دروس تصميم RTL والتحقق منه

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