גלישה ורוויה
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 9 מתוך 38.
גלישה במספרים עם סימן מתרחשת כשהתוצאה המתמטית אינה יכולה להיכנס לרוחב שנבחר עבור signed. היא שונה מנשא במספרים ללא סימן. בחיבור signed, קלטים בעלי אותו סימן גורמים לגלישה כשהסימן של התוצאה משתנה. רוויה מגבילה את התוצאה לקצה שניתן לייצוג במקום לבצע גלישה מעגלית.
קטע רלוונטי; ההצהרות והחיבורים שמסביב מסופקים באתגר.
assign overflow = (a[7] == b[7]) && (sum[7] != a[7]);קלטים בעלי סימנים שונים אינם יכולים לגרום לגלישה בחיבור signed; קלטים בעלי סימן זהה מחייבים בדיקה של סימן התוצאה.
בדוק גלישה של signed בנפרד מנשיאה; הרחב לפני מימוש רוויה.
אתגר
בינוניחבר את signed a ו־b ברוחב 8 סיביות. החזר את התוצאה signed העטופה y, ואת overflow=1 רק כאשר הסכום המתמטי המדויק נמצא מחוץ לטווח -128 עד 127. עמודות הפלט: y, overflow. כל ערכי הגירוי הם ערכים בינאריים ידועים.
השלם את design.v ושמור על שמות המודולים והיציאות שלו. קובץ testbench.v הנעול מספק שינויי קלט ומציג את הפלטים לאחר התייצבותם. הוא בוחר תרחיש באמצעות ארגומנט סימולטור כגון +CASE=1; אין צורך בקלט סטנדרטי. אל תוסיף הדפסות, השהיות או סיום סימולציה לתכנון. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח אחד ומסתיימים בשורה חדשה.
נסו בעצמכם
module dut (input signed [7:0] a, input signed [7:0] b, output signed [7:0] y, output overflow);
// החליפו את ממלא המקום הזה בתכנון שלכם.
assign y = 0;
assign overflow = 0;
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנון RTL ואימות
1RTL קומבינטורי אמין
ערכי ברירת מחדל מונעים נעילותמקודדי עדיפותאימות One-Hotפענוח Case בטוחסיכום - נתב בקשות2רוחבי מילה ואריתמטיקה עם סימן
שימור ביטי נשאהשוואות עם סימןהזזות ימינה אריתמטיותגלישה ורוויהסיכום - הפרש עם סימןתרגלו בעצמכם: קומפיילר Verilog אונליין