Menu
Coddy logo textTech

ספירת דגימות שהתקבלו

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

challenge icon

אתגר

קשה

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

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

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