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

التحقق من One-Hot

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

تحتوي بيانات one-hot على بت واحد مؤكَّد تمامًا. ينشئ مفكِّك الترميز هذه البيانات، بينما يتحقق التحقّق من صحة البيانات الواردة قبل استخدامها. بالنسبة إلى القيم الثنائية المعروفة، تكون القيمة غير الصفرية one-hot عندما يكون bits & (bits - 1) صفرًا. لا يستخدم هذا القسم ذلك الاختصار لتصنيف X أو Z.

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

assign one_hot = (bits != 0) && ((bits & (bits - 1)) == 0);

يستبعد التحقق من عدم الصفر حالة الخمول؛ وترفض حيلة البتات وجود عدة بتات مضبوطة.

ميّز بين الصفر، وبتّ واحد مضبوط تمامًا، وعدة بتات مضبوطة عند التحقق من صحة الطلبات.

challenge icon

التحدي

متوسط

بالنسبة إلى بتات إدخال معروفة بعرض 4 بت، اجعل valid يساوي true فقط عندما يكون بت واحد فقط مرتفعًا تمامًا. استخدم فحص القيمة غير الصفرية مع bits & (bits - 1). أعمدة الإخراج: valid. جميع قيم التحفيز هي قيم ثنائية معروفة.

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

جرّب بنفسك

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

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

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

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