Casex ו-Casez
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 56 מתוך 90.
לפעמים חשובים לך רק סיביות מסוימות בערך, ואפשר להתעלם משאר הסיביות. לדוגמה, במקודד עדיפויות, רוצים למצוא את הסיבית הראשונה שערכה 1, בלי קשר לשאר הסיביות.
הצהרת case רגילה תדרוש ממך לפרט כל שילוב אפשרי של הביטים שאין להם חשיבות, דבר שאינו אפשרי באפיקים רחבים.
<strong>casez</strong> ו-<strong>casex</strong> פותרים את הבעיה הזו בכך שהם מאפשרים לך לסמן סיביות מסוימות כ״לא משנה״ באמצעות ?, z או x.
casez לעומת casex לעומת case רגיל
| הצהרה | סיביות שלא משנות | הכי מתאים ל־ |
|---|---|---|
case | אין | התאמה מדויקת |
casez | z או ? | מקודדי עדיפות (מומלץ) |
casex | x, z או ? | יש להימנע (מסתיר באגים) |
<strong>casez</strong>מתעלם מביטים שהםzאו?(מומלץ)<strong>casex</strong>מתעלם גם מביטיx, דבר שעלול להסתיר שגיאות בסימולציה
השתמשו תמיד ב־<strong>casez</strong>, ולא ב־<strong>casex</strong>. casex נוצרה קודם, אבל מהנדסים הבינו שהיא מסוכנת כי היא מתעלמת מערכי x (שלעיתים קרובות מציינים אוגרים שלא אותחלו או שגיאות סימולציה). casez הוצגה כחלופה בטוחה יותר.
דוגמה
casez (data)
4'b???1: out = 0; // Bit0 must be 1, others don't matter
4'b??1?: out = 1; // Bit1 must be 1, others don't matter
4'b?1??: out = 2; // Bit2 must be 1, others don't matter
4'b1???: out = 3; // Bit3 must be 1, others don't matter
endcase? פירושו "לא משנה". הביט הזה יכול להיות 0, 1 או כל דבר אחר.
אתגר
מה צריך לעשות:
הוסף את פקודת casez החסרה כדי שהמפענח הזה יפעל.
איך זה עובד:
input = 4'b???1→out = 4'b0001input = 4'b??1?→out = 4'b0010input = 4'b?1??→out = 4'b0100input = 4'b1???→out = 4'b1000- ברירת מחדל →
out = 4'b0000
נסו בעצמכם
module decoder (
input [3:0] in,
output reg [3:0] out
);
always @(*) begin
// TODO: הוסף פקודת casez
// in = 4'b???1 -> out = 4'b0001
// in = 4'b??1? -> out = 4'b0010
// in = 4'b?1?? -> out = 4'b0100
// in = 4'b1??? -> out = 4'b1000
// default -> out = 4'b0000
end
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין