מספרים בעלי גודל מוגדר
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 14 מתוך 90.
יש דרך להצהיר על מספר בגודל מסוים ב-Verilog. הוא נקרא מספר בגודל מוגדר. הוא שימושי כי הוא מונע בלבול בנוגע למספר הביטים שיש במספר שלך ומבטיח שהחומרה שלך תפעל בדיוק כמצופה.
מספר מוגדר־גודל מופיע בפורמט הזה: [bits]'[format][value]
<strong>bits</strong>: מספר הסיביות (לדוגמה,8)<strong>'</strong>: גרש שמפריד בין הגודל לפורמט (נדרש)
<strong>format</strong>: בסיס המספר:bלבינארי,dלעשרוני,hלהקסדצימלי, אוoלאוקטלי<strong>value</strong>: המספר עצמו (לדוגמה,1010)
לדוגמה:
4'b1010: 4 סיביות, בינארי 1010 (עשרוני 10)8'd255: 8 סיביות, עשרוני 255 (בינארי 11111111)16'hFF: 16 סיביות, הקסדצימלי FF (בינארי 0000000011111111)3'b1: 3 סיביות, בינארי 001 (הסיביות משמאל מתמלאות באפסים)
דוגמת קוד:
reg [7:0] data;
data = 8'b10101010; // 8 bits, binary 10101010
data = 8'd170; // 8 ביטים, עשרוני 170
data = 8'hAA; // 8 bits, hex AAכל שלוש הדוגמאות מציבות את אותו הערך ב-data.
למה הגודל חשוב
בלי ציון גודל:
reg [7:0] data;
data = 1; // מה המשמעות של זה? 1 ביט? 8 ביטים?Verilog מניחה שמספרים קטנים הם בגודל 32 ביט כברירת מחדל, וזה עלול לגרום לבעיות.
עם גודל:
reg [7:0] data;
data = 8'b00000001; // Clear: 8-bit value 1ריפוד באפסים
כשמקצים ערך קטן יותר לווקטור גדול יותר, Verilog ממלא את הביטים השמאליים באפסים:
reg [7:0] data;
data = 4'b1010; // Becomes 8'b00001010אתגר
השלימו את הקוד באמצעות כתיבת המספרים בגודל הנכון.
מה לעשות:
- הגדירו את
aכמספר בינארי בן 8 סיביות עבור המספר העשרוני 170 (בינארי 10101010) - הגדירו את
bכמספר בינארי בן 4 סיביות עבור המספר העשרוני 12 (בינארי 1100) - הגדירו את
cכמספר הקסדצימלי בן 16 סיביות עבור המספר העשרוני 255 (הקסדצימלי FF)
נסו בעצמכם
module sized_challenge;
reg [7:0] a;
reg [3:0] b;
reg [15:0] c;
initial begin
a = ______; // מספר בינארי בן 8 ביטים עבור 170 (10101010)
b = ______; // מספר בינארי בן 4 ביטים עבור 12 (1100)
c = ______; // מספר הקסדצימלי בן 16 ביטים עבור 255 (FF)
$display("a = %b", a);
$display("b = %b", b);
$display("c = %h", c);
$finish;
end
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין