Menu
Coddy logo textTech

יצירת מופע של מודול

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

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

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

תחביר בסיסי

module_name instance_name (connections);
חלקמשמעות
module_nameשם המודול ליצירת מופע שלו
instance_nameשם ייחודי לעותק הזה
connectionsהאותות המחוברים ליציאות של המודול

דוגמה פשוטה

שלב 1: הגדרת מודול

module and_gate (
  input a,
  input b,
  output c
);
  assign c = a & b;
endmodule

שלב 2: יצירת מופע שלו במודול אחר

module top (
  input x,
  input y,
  output z
);
  and_gate gate1 (x, y, z);
endmodule

הנה מה שקורה בקוד הזה:

  • and_gate: שם המודול שבו אנחנו רוצים להשתמש (חייב להתקיים במקום כלשהו)
  • gate1: שם ייחודי שאנחנו נותנים למופע הספציפי הזה
  • (x, y, z): האותות שאנחנו מחברים ליציאות המודול (באותו סדר שבו הן מופיעות בהגדרת המודול)

האות הראשון x מתחבר לפורט הראשון a. האות השני y מתחבר לפורט השני b. האות השלישי z מתחבר לפורט השלישי c.

עליך להעביר אותות למודול. הסוגריים אינם יכולים להיות ריקים. מספר האותות חייב להתאים למספר הפורטים.

מופעים מרובים

אפשר ליצור כמה עותקים של אותו מודול:

module top;
  wire out1, out2;
  wire sig1, sig2, sig3, sig4;
  
  and_gate gate1 (sig1, sig2, out1);
  and_gate gate2 (sig3, sig4, out2);
endmodule

לכל מופע יש שם משלו (gate1, gate2) וחיבורים משלו. הם פועלים באופן עצמאי.

מה קורה במהלך יצירת מופע

  • נוצר עותק של החומרה
  • לכל מופע יש קבוצת אותות משלו
  • המופעים פועלים במקביל (בו-זמנית)
  • האותות שאתה מעביר קובעים כיצד מופעים מתחברים לשאר התכנון שלך

כללים ליצירת מופע

כלללמה
שם המופע חייב להיות ייחודיכדי להבחין בין עותקים
שם המודול חייב להתקייםחייב להיות מוגדר במקום אחר
מספר החיבורים חייב להתאים למספר הפורטיםאחרת Verilog לא יודע מה מתחבר לאן
סדר החיבורים חייב להתאים לסדר הפורטיםהאות הראשון מתחבר לפורט הראשון וכן הלאה.
challenge icon

אתגר

השלימו את הקוד באמצעות יצירת מופע של המודול or_gate.

מה לעשות:

  1. צרו מופע של or_gate בשם or1
  2. העבירו את האותות בסדר הנכון: input_a, input_b, output_y

נסו בעצמכם

module or_gate (
  input in1,
  input in2,
  output result
);
  assign result = in1 | in2;
endmodule

module top (
  input input_a,
  input input_b,
  output output_y
);
  
  // TODO: צור מופע של or_gate בשם or1
  // העבר את האותות לפי הסדר: input_a, input_b, output_y
  // אל תשתמש בתחביר .port(signal)
  

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

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

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

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