פרמטרים בטוחים מבחינת רוחב
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 12 מתוך 38.
היסודות הציגו רוחבים הניתנים להגדרה. RTL לשימוש חוזר חייב גם לתמוך ברוחב החוקי הקטן ביותר, לקבוע במכוון את גודלן של ביטויים ביניים ולהימנע ממיקומי ביטים מקובעים. שכפול {WIDTH{1'b1}} יוצר מסכה התואמת לרוחב. פרמטרים הם קבועים בזמן האלבורציה, ולא פקדים בזמן ריצה.
קטע רלוונטי; ההצהרות והחיבורים שמסביב מסופקים באתגר.
wire [WIDTH:0] sum;
assign sum = {1'b0,a} + {1'b0,b};
assign y = sum[WIDTH] ? {WIDTH{1'b1}} : sum[WIDTH-1:0];גם מיקום הנשיאה וגם ערך הרוויה מותאמים לרוחב שהוגדר.
בדקו את הרוחב החוקי המינימלי וגזרו מהפרמטרים כל חיתוך וקבוע שתלויים ברוחב.
אתגר
בינוניבנה מגדיל ב־WIDTH סיביות שמחזיר את WIDTH הסיביות הנמוכות של a+1. הקלט b אינו בשימוש. אותו מודול חייב לעבוד עבור WIDTH=1 וגם עבור רוחבים גדולים יותר. WIDTH חיובי. ספסל הבדיקה הנעול יוצר מופעים עם ערכי WIDTH 1, 4 ו־8, תוך שימוש בסיביות הנמוכות של a ו־b עבור מופעים צרים יותר. עמודות הפלט הן y1, y4 ו־y8 בעשרוני.
השלם את design.v ושמור על שמות המודולים והיציאות שלו. testbench.v הנעול מספק שינויים בקלט ומדפיס את הפלטים לאחר התייצבותם. הוא בוחר תרחיש באמצעות ארגומנט לסימולטור, כגון +CASE=1; אין צורך בקלט סטנדרטי. אל תוסיף הדפסות, השהיות או סיום סימולציה לעיצוב. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח יחיד ומסתיימים בתו newline.
נסו בעצמכם
module dut #(parameter WIDTH=4) (input [WIDTH-1:0] a,b, output [WIDTH-1:0] y);
// ממשו את המעגל בעל הפרמטרים.
assign y = 0;
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנון RTL ואימות
1RTL קומבינטורי אמין
ערכי ברירת מחדל מונעים נעילותמקודדי עדיפותאימות One-Hotפענוח Case בטוחסיכום - נתב בקשות2רוחבי מילה ואריתמטיקה עם סימן
שימור ביטי נשאהשוואות עם סימןהזזות ימינה אריתמטיותגלישה ורוויהסיכום - הפרש עם סימן3RTL לשימוש חוזר
פונקציות קומבינטוריותפרמטרים בטוחים מבחינת רוחבלולאות GenerateGenerate מותנהסיכום - מסכת ביטים לשימוש חוזר6סביבות בדיקה עם בדיקה עצמית
בדיקות בארבעה מצביםמשימות בדיקה לשימוש חוזרמודלי ייחוס וניקודכיסוי מקרי קצה ובקרהסיכום - בדיקת מחברתרגלו בעצמכם: קומפיילר Verilog אונליין