Menu
Coddy logo textTech

השמה רציפה

חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 37 מתוך 90.

בחומרה, חיבור הוא חוט פיזי המקשר בין שתי נקודות במעגל. לאחר שהחוט מחובר, החיבור קבוע ופעיל תמיד. אם אחד הקצוות משתנה, הקצה השני משתנה מיד.

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

השמה רציפה משתמשת במילת המפתח assign כדי ליצור חיבור קבוע בין חוט לביטוי. החוט מקבל ברציפות את ערך הביטוי, בדיוק כמו חוט פיזי.

חשוב על זה כעל הלחמת חוט במקום כתיבת ערך פעם אחת.

תחביר

assign wire_name = expression;
חלקמשמעות
assignמילת מפתח שמתחילה השמה רציפה
wire_nameהחוט שמקבל את הערך (לא יכול להיות reg)
expressionהערך שמניע את החוט

דוגמה פשוטה

wire out;
assign out = a & b;

המשמעות היא: out תמיד שווה ל־a AND b. בכל פעם ש־a או b משתנים, out משתנה מיד.

איך זה עובד

בניגוד ל־reg ששומר ערך, wire עם השמה רציפה מתעדכן ללא הרף:

module continuous_demo;
  reg a, b;
  wire c;
  
  assign c = a & b;   // c עוקב תמיד אחרי תוצאת AND של a ו-b
  
  initial begin
    a = 0; b = 0;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=0
    
    a = 1;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=0 (1&0=0)
    
    b = 1;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=1 (1&1=1)
    
    $finish;
  end
endmodule

פלט:

a=0, b=0, c=0
a=1, b=0, c=0
a=1, b=1, c=1

בכל פעם ש־a או b משתנים, c מתעדכן אוטומטית.

השמות מרובות

אפשר להשתמש בכמה השמות רציפות בתוך מודול:

module multiple_assign (
  input a, b, c,
  output x, y
);
  assign x = a & b;
  assign y = x | c;   // y תלוי ב-x
endmodule

כל ההשמות מתבצעות במקביל, ברציפות.

שימושים נפוצים

השמות רציפים משמשים עבור:

  • לוגיקה קומבינטורית פשוטה (AND, OR, XOR)
  • חיבור חוטים זה לזה
  • יצירת מאגרי תלת־מצב
  • הנעת יציאות מתוך ביטויים קומבינטוריים
challenge icon

אתגר

מה לעשות:

  1. הוסף את השמת הרצף החסרה, כך ש-z יהיה שווה ל-x AND y.

נסו בעצמכם

module continuous_challenge (
  input x,
  input y,
  output z
);
  
  // TODO: הוסף את ההשמה הרציפה החסרה כך ש-z יהיה שווה ל-x AND y
  

endmodule
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה יסודות

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