אתגר - צינור זוגיות
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 36 מתוך 38.
אתגר
בינוניבנו צינור זוגיות דו־שלבי. תחילה קלטו את נתוני הבייט ואת in_valid. בקצה השעון הבא שאינו בזמן איפוס, פלט הזוגיות הוא XOR מצמצם של הבייט שנקלט קודם לכן, אם האות valid הקודם שלו גבוה; אחרת הפלט הוא אפס. out_valid הוא האות valid המעוכב הזה. rst סינכרוני מאפס את שני השלבים ואת הפלטים. עמודות הפלט: parity, out_valid. כל אותות הבקרה והנתונים יציבים לפני כל קצה עולה של השעון; התוצאות נצפות לאחר מכן.
השלימו את design.v ושמרו על שמות המודול והיציאות שלו. testbench.v הנעול מספק שינויים בקלט ומדפיס את הפלטים לאחר התייצבותם. הוא בוחר תרחיש באמצעות ארגומנט של הסימולטור, כגון +CASE=1; אין צורך בקלט סטנדרטי. אל תוסיפו להדפסה, השהיות או סיום סימולציה לתכנון. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח אחד ומסתיימים בשורה חדשה.
נסו בעצמכם
module dut (input clk, input rst, input in_valid, input [7:0] data, output reg parity, output reg out_valid);
// החליפו את מציין המקום הזה בתכנון שלכם.
initial parity = 0;
initial out_valid = 0;
endmoduleכל השיעורים ביחידה תכנון RTL ואימות
1RTL קומבינטורי אמין
ערכי ברירת מחדל מונעים נעילותמקודדי עדיפותאימות One-Hotפענוח Case בטוחסיכום - נתב בקשות2רוחבי מילה ואריתמטיקה עם סימן
שימור ביטי נשאהשוואות עם סימןהזזות ימינה אריתמטיותגלישה ורוויהסיכום - הפרש עם סימןתרגלו בעצמכם: קומפיילר Verilog אונליין