Menu
Coddy logo textTech

הפעלת התראת סף

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

challenge icon

אתגר

קשה

בנה צג דגימה אחד בחמישה שלבים. הפעל אזעקה קומבינטורית במצב גבוה בכל פעם שהערך total גדול או שווה ל-limit הלא מסומן, כולל במקרה של שוויון. האזעקה משקפת את total המעודכן אחרי כל חזית, ועוקבת אחר שינויים ב-limit. כאשר limit=0, האזעקה במצב גבוה גם כאשר total=0. שמור על כל ההתנהגות של הצבירה, ההפעלה, הניקוי והספירה. שמור את כל מהשלבים הקודמים, כולל ספסל הבדיקה וההתנהגות הקודמת של הפלט. כל ערכי הקלט ידועים. התרחישים מכילים לכל היותר 40 חזיתות, כך שה-total נכנס ב-16 ביטים. ספסל הבדיקה הקבוע מדפיס total עבור תרחישים 1-9, את total ואת count עבור תרחישים 10-12, ואת total, count ו-alarm עבור תרחישים 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 || clear)begin total<=0;count<=0;end
        else if(en)begin
            total<=total+data;
            if(count!=15)count<=count+4'd1;
        end
    end
    assign alarm=0;
endmodule

כל השיעורים ביחידה תכנון RTL ואימות

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