מיפוי יציאות לפי שם
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 34 מתוך 90.
בשיעור הקודם למדת כיצד ליצור מופע של מודול באמצעות העברת אותות באותו סדר שבו הפורטים מופיעים בהגדרת המודול. זה עובד, אבל יש כאן בעיה: לסדר יש חשיבות.
אם תבלבל בטעות את הסדר, האותות יתחברו לפורטים הלא נכונים. קשה לאתר ולתקן את זה.
הבעיה במיפוי לפי סדר
module or_gate (
input in1,
input in2,
output result
);
assign result = in1 | in2;
endmodule
// מיפוי לפי סדר - הסדר חייב להתאים
or_gate or1 (input_a, input_b, output_y); // נכון
or_gate or1 (input_b, input_a, output_y); // שגוי! הכניסות הוחלפו ביניהןהשורה השנייה מחברת את input_b אל in1 ואת input_a אל in2: באג עדין שקל לפספס.
פתרון: מיפוי פורטים לפי שם
מיפוי פורטים לפי שם משתמש בשם הפורט כדי ליצור חיבורים. לסדר אין חשיבות, משום שכל חיבור מסומן במפורש.
תחביר:
module_name instance_name (
.port_name(signal),
.port_name(signal)
);הנקודה . שלפני שם היציאה מציינת שאנחנו מתייחסים ליציאה בתוך המודול. האות שבתוך הסוגריים היא מה שאנחנו מחברים אליה.
דוגמה
or_gate or1 (
.in1(input_a),
.in2(input_b),
.result(output_y)
);הדבר מציין במפורש:
- הפורט
in1מקבל את האותinput_a - הפורט
in2מקבל את האותinput_b - הפורט
resultמקבל את האותoutput_y
הסדר לא משנה
במיפוי פורטים לפי שם, אפשר לכתוב את החיבורים בכל סדר:
// שלושתם זהים לחלוטין
or_gate or1 (
.in1(input_a),
.in2(input_b),
.result(output_y)
);
or_gate or1 (
.result(output_y),
.in1(input_a),
.in2(input_b)
);
or_gate or1 (
.in2(input_b),
.result(output_y),
.in1(input_a)
);כולם עושים בדיוק את אותו הדבר כי כל חיבור מסומן.
אתגר
השלם את יצירת המופע על ידי הוספת חיבורי הפורטים החסרים באמצעות מיפוי פורטים לפי שם.
מה לעשות:
- חבר את הפורט
clkלאותclock_signal - חבר את הפורט
data_inלאותinput_data - חבר את הפורט
data_outלאותoutput_data
נסו בעצמכם
module register (
input clk,
input [7:0] data_in,
output reg [7:0] data_out
);
always @(posedge clk) begin
data_out <= data_in;
end
endmodule
module top (
input clock_signal,
input [7:0] input_data,
output [7:0] output_data
);
register reg1 (
// TODO: הוסיפו מיפויי פורטים באמצעות התחביר .port(signal)
);
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין