הפעלת התראת סף
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 35 מתוך 38.
אתגר
קשהבנה צג דגימה אחד בחמישה שלבים. הפעל אזעקה קומבינטורית במצב גבוה בכל פעם שהערך 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 ואימות
1RTL קומבינטורי אמין
ערכי ברירת מחדל מונעים נעילותמקודדי עדיפותאימות One-Hotפענוח Case בטוחסיכום - נתב בקשות4RTL סדרתי מבוקר
עדיפות לאיפוס ולהפעלהמונה רוויצינור נתונים ואות תקפותזיהוי קצוות שנדגמוסיכום — מונה אירועים7פרויקט - צג דגימות
צבירת דגימותקבלת דגימות מופעלות2רוחבי מילה ואריתמטיקה עם סימן
שימור ביטי נשאהשוואות עם סימןהזזות ימינה אריתמטיותגלישה ורוויהסיכום - הפרש עם סימןתרגלו בעצמכם: קומפיילר Verilog אונליין