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