Menu
Coddy logo textTech

ערכי ברירת מחדל מונעים נעילות

חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 1 מתוך 38.

יש להקצות ערך לפלט קומבינטורי בכל מסלול קלט. אם בלוק always מדלג על הקצאת ערך לפלט, הפלט הזה שומר על הערך הקודם שלו, מה שעלול להסיק תפס. הקצאת ברירת מחדל default ואחריה דריסות הופכת את הכיסוי לגלוי.

קטע רלוונטי; ההצהרות והחיבורים שמסביב מסופקים באתגר.

always @* begin
    y = 0;
    if (en) y = data;
end

ה־default מכסה את הנתיב המושבת, ולכן הפלט תלוי רק בקלטים הנוכחיים.

השְׁמֵט ערך לכל פלט קומבינטורי בכל מסלול; השתמש בברירות מחדל לפני דריסות מותנות.

challenge icon

אתגר

בינוני

ממשו פלט מותנה של 8 סיביות: כאשר en הוא אחד, y שווה ל־a; אחרת y הוא אפס. הקצו ערך ל־y בכל מסלול קומבינטורי. עמודות הפלט: y. כל ערכי העירור הם ערכים בינאריים ידועים.

השלימו את design.v ושמרו על שמות המודולים והיציאות שלו. ה־testbench.v הנעול מספק שינויים בכניסות ומדפיס את הפלטים לאחר התייצבותם. הוא בוחר תרחיש באמצעות ארגומנט של הסימולטור, כגון +CASE=1; אין צורך בקלט סטנדרטי. אל תוסיפו להדפסות, להשהיות או לסיום הסימולציה של התכנון. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח אחד ומסתיימים בתו newline.

נסו בעצמכם

module dut (input en, input [7:0] a, output reg [7:0] y);
    // החליפו את מציין המקום הזה בתכנון שלכם.
    initial y = 0;
endmodule
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנון RTL ואימות

תרגלו בעצמכם: קומפיילר Verilog אונליין