تمرير القراءة والكتابة
جزء من قسم تصميم RTL والتحقق منه في رحلة Verilog على Coddy. الدرس 24 من 38.
يجب أن تحدد واجهة الذاكرة سلوك القراءة/الكتابة على العنوان نفسه. يختار التمرير صراحةً بيانات الكتابة الواردة عند حدوث تصادم، مما ينتج سلوك البيانات الجديدة. من دون هذا التجاوز، يلتقط قالب القراءة غير الحاجبة السابق البيانات القديمة. تختلف أوضاع ذاكرة الجهاز، لذا فإن دلالات المحاكاة وحدها لا تضمن تعيينًا محددًا إلى عنصر بدائي.
مقتطف ذو صلة؛ يتم توفير التصريحات والاتصالات المحيطة في التحدي.
if(re) begin
if(we && waddr==raddr) q <= data;
else q <= mem[raddr];
endيختار المسار الالتفافي الكلمة الواردة فقط عند حدوث تصادم فعلي في العنوان.
حدّد سلوك التصادم بوضوح وتحقّق منه مقابل وضع ذاكرة الأجهزة المختار.
التحدي
متوسطنفّذ ذاكرة من أربع كلمات بقراءة مسجّلة مع تمرير البيانات الجديدة. تتطابق قواعد الكتابة وإعادة الضبط/تمكين القراءة مع الدرس السابق. عند تصادم قراءة مُمكّنة مع كتابة مُمكّنة إلى العنوان نفسه، تلتقط q البيانات الواردة بدلًا من الكلمة القديمة. أما في القراءات الأخرى، فتلتقط mem[raddr]. أعمدة الإخراج: q. تكون جميع إشارات التحكم والبيانات مستقرة قبل كل حافة صاعدة للساعة؛ وتُرصد النتائج بعدها.
أكمل design.v وحافظ على أسماء وحداته ومنافذه. يوفّر testbench.v المقفل تغييرات الإدخال ويطبع المخرجات بعد استقرارها. وهو يختار سيناريو باستخدام وسيط للمحاكي مثل +CASE=1؛ ولا يلزم إدخال قياسي. لا تضف طباعة أو تأخيرات أو إنهاءً للمحاكاة إلى التصميم. يجب أن يكون الناتج المتوقع صفًا واحدًا من القيم العشرية لكل ملاحظة، مفصولة بمسافة واحدة ومنتهية بسطر جديد.
جرّب بنفسك
module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr, input [7:0] data, output reg [7:0] q);
// استبدل هذا العنصر النائب بتصميمك.
initial q = 0;
endmoduleيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس تصميم RTL والتحقق منه
1دوائر RTL التوافقية الموثوقة
القيم الافتراضية تمنع المزالجمشفّرات الأولويةالتحقق من One-Hotفك ترميز Case الآمنمراجعة - موجّه الطلبات4RTL تسلسلي متحكَّم فيه
أولوية إعادة الضبط والتمكينالعدادات التشبُّعيةتسلسل البيانات والإشارة الصالحةاكتشاف الحواف المُعايَنةمراجعة - عداد الأحداث7المشروع - مراقب العينات
تجميع العيناتقبول العينات المفعّلة2الأحجام والحساب الموقّع
الحفاظ على بتّات الحملالمقارنات الموقّعةالإزاحات الحسابية إلى اليمينالتجاوز والتشبّعمراجعة - الفرق الموقّع5الذاكرة وجداول البحث
جداول ROM التوافقيةتخزين مصفوفة السجلاتمنافذ القراءة المسجّلةتمرير القراءة والكتابةمراجعة - بنك القراءة المزدوجة3وحدات RTL قابلة لإعادة الاستخدام
دوال توافقيةمعلمات آمنة العرضحلقات التوليدالتوليد الشرطيمراجعة - قناع بتات قابل لإعادة الاستخدامتدرّب بنفسك: مترجم Verilog عبر الإنترنت