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