Menu
Coddy logo textTech

קבלת דגימות מופעלות

חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 32 מתוך 38.

challenge icon

אתגר

קשה

בנו מנטר לדוגמה בחמישה שלבים. הוסיפו בקרת הפעלה: לאחר עדיפות האיפוס, כאשר en=1 הנתונים מתקבלים ומתווספים לסכום הכולל; כאשר en=0 הסכום הכולל נשמר. שמרו על כל ההתנהגות הקודמת. שמרו את כל מה שנכלל בשלבים הקודמים, כולל סביבת הבדיקה שלו והתנהגות הפלט הקודמת. כל ערכי הקלט ידועים. התרחישים כוללים לכל היותר 40 חזיתות, ולכן הסכום הכולל נכנס ל-16 סיביות. סביבת הבדיקה הקבועה מדפיסה את הסכום הכולל עבור תרחישים 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 ואימות

תרגלו בעצמכם: קומפיילר Verilog אונליין