סביבת בדיקה
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 90 מתוך 90.
אתגר
סביבת בדיקה מספקת קלטים לתכנון שלך ויוצרת קובץ צורת גל. אין לה יציאות משלה.
המשימה שלך
צרו סביבת בדיקה ש:
- מכריזה על
regעבורclk,startו-data_in(8 סיביות) - מכריזה על
wireעבורtxועלwire [3:0]עבורcnt - יוצרת מופע של המודול
uart_tx, ומחברת את כל היציאות:.clk,.start,.data_in,.tx,.cnt - מייצרת שעון (היפוך מצב כל 5 יחידות זמן)
- בתוך בלוק
initial:- יוצרת קובץ צורת גל בשם
uart.vcdבאמצעות$dumpfileו-$dumpvars - מגדירה את
clk = 0,start = 1,data_in = 8'b01000001בזמן 0 - משחררת את
startלאחר 10 יחידות זמן (start = 0) - לאחר מכן ממתינה עוד 200 יחידות זמן וקוראת ל-
$finish(כך שהסימולציה מסתיימת בזמן 210)
- יוצרת קובץ צורת גל בשם
לאחר הרצת סביבת הבדיקה, פתחו את צורת הגל כדי לאמת את האות tx.
נסו בעצמכם
module uart_tx (
input clk,
input start,
input [7:0] data_in,
output reg tx,
output reg [3:0] cnt
);
reg [9:0] shift_reg;
initial begin
cnt = 0;
tx = 1;
shift_reg = 0;
end
always @(posedge clk) begin
if (cnt == 0 && start) begin
shift_reg <= {1'b1, data_in, 1'b0};
cnt <= 1;
end
else if (cnt > 0 && cnt < 9) begin
tx <= shift_reg[0];
shift_reg <= shift_reg >> 1;
cnt <= cnt + 1;
end
else if (cnt == 9) begin
tx <= shift_reg[0];
shift_reg <= shift_reg >> 1;
cnt <= 0;
end
end
endmoduleכל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין