וקטורים
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 9 מתוך 90.
וקטור הוא חוט או reg מרובה־סיביות. במקום סיבית יחידה, וקטורים מאפשרים לך לעבוד עם אפיקי נתונים. זהו אוסף של סיביות המקובצות יחד.
הערה: וקטור אינו סוג נתונים נפרד. הוא פשוט גרסה מרובת־סיביות של wire או reg.
wire single; // ביט יחיד
wire [7:0] bus; // וקטור של 8 ביטים (מביט 7 עד ביט 0)כדי להכריז על וקטור, משתמשים בתחביר [MSB:LSB] כאשר MSB הוא הביט המשמעותי ביותר ו-LSB הוא הביט הפחות משמעותי.
wire [3:0] a; // וקטור wire של 4 ביטים
reg [7:0] data; // וקטור reg של 8 ביטים
wire [15:0] addr; // וקטור wire של 16 ביטיםגישה לסיביות
כשניגשים לסיביות בודדות או לחלקים מתוך וקטור, משתמשים במספרים עשרוניים לציון מיקומי הסיביות (אינדקסים) ובערכים בינאריים (0 או 1) לצורך ההשמות.
הסיבה לכך היא שמיקום של סיבית הוא מקום (כמו כתובת), שבאופן טבעי מבוטא כמספר עשרוני, בעוד שהערך המאוחסן בסיבית הזאת יכול להיות רק 0 או 1: בחירה בינארית.
לדוגמה, data[0] פירושו "ביט מספר אפס", ו־= 1 פירושו "להגדיר אותו לגבוה". הקצאת מספר עשרוני כמו 75 לביט יחיד אינה מאחסנת את 75; Verilog שומרת בשקט רק את הביט הנמוך ביותר שלו, לכן יש לכתוב תמיד 0 או 1 במפורש.
reg [7:0] data;
data = 170;
data[0] = 1; // הגדר את LSB ל-1
data[7] = 0; // הגדר את MSB ל-0
data[3:1] = 3'b101; // Set bits 3,2,1 to 101 (binary remains)סדר הסיביות
סדר הסיביות חשוב:
wire [3:0] a; // a[3] הוא MSB, a[0] הוא LSB
wire [0:3] b; // b[0] הוא MSB, b[3] הוא LSB (פחות נפוץ)רוב המעצבים משתמשים בפורמט [MSB:LSB] כאשר MSB משמאל.
הקצאת ערכים
reg [3:0] a;
a = 10;
a = 5;
a = 3; קטעי וקטור
אפשר לגשת לטווח של ביטים:
reg [15:0] word;
word[15:8] = 255; // הקצה את הבייט העליון (8'hFF = 255)
word[7:0] = 0; // הקצה את הבייט התחתון (8'h00 = 0)
word[3:1] = 3'b101; // Assign a slice אתגר
המודול שלהלן זקוק להצהרות וקטור.
מה לעשות:
- שנה כל קלט ופלט לווקטורים של 8 סיביות.
נסו בעצמכם
module vector_example(
input a, // שנה לווקטור של 8 ביטים [7:0]
input b, // שנה לווקטור של 8 ביטים [7:0]
output c // שנה לווקטור של 8 ביטים [7:0]
);
assign c = a & b;
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין