📄 tb_alarm.v
字号:
module tb_alarm ;reg SET_TIME, ALARM, HRS, MINS, TOGGLE_SWITCH, CLK, RESETN, TEST_MODE;reg test_se, test_si;wire SPEAKER_OUT, AM_PM_OUT;wire [13:0] HR_DISPLAY, MIN_DISPLAY;TOP UUT ( .SET_TIME(SET_TIME), .ALARM(ALARM), .HRS(HRS), .MINS(MINS), .TOGGLE_SWITCH(TOGGLE_SWITCH), .CLK(CLK), .RESETN(RESETN), .TEST_MODE(TEST_MODE), .SPEAKER_OUT(SPEAKER_OUT), .HR_DISPLAY(HR_DISPLAY), .MIN_DISPLAY(MIN_DISPLAY), .AM_PM_OUT(AM_PM_OUT), .test_si(test_si), .test_se(test_se), .test_so(test_so) );parameter HALF_PERIOD = 25;integer vectors;initial begin vectors = $fopen("fnc.v"); if (vectors == 0) $finish; $fmonitorb (vectors,"%d",$time,,SET_TIME,ALARM,HRS,MINS,TOGGLE_SWITCH,CLK,RESETN,TEST_MODE,test_si,test_se,,SPEAKER_OUT,HR_DISPLAY,MIN_DISPLAY,AM_PM_OUT,test_so); ALARM = 0; CLK = 0; HRS = 0; MINS = 0; SET_TIME = 0; TOGGLE_SWITCH = 0; TEST_MODE = 0; test_se = 0; end always #HALF_PERIOD CLK = ~CLK;always begin /* reset alarm clock */ RESETN = 0; #100 RESETN = 1; /* incremenent time 1 minute 5 secs */ #6500; /* set alarm to 7:30am */ ALARM = 1; repeat (7) begin HRS = 1; #100 HRS = 0; #100; end repeat (30) begin MINS = 1; #100 MINS = 0; #100; end ALARM = 0; /* set time to 7:29am */ SET_TIME = 1; repeat (7) begin HRS = 1; #100 HRS = 0; #100; end repeat (27) begin MINS = 1; #100 MINS = 0; #100; end SET_TIME = 0; /* turn alarm on*/ TOGGLE_SWITCH = ~TOGGLE_SWITCH; /* increment time then turn alarm off */ #6500 TOGGLE_SWITCH = ~TOGGLE_SWITCH; /* set time to 11:59 am */ SET_TIME = 1; repeat (4) begin HRS = 1; #100 HRS = 0; #100; end repeat (29) begin MINS = 1; #100 MINS = 0; #100; end SET_TIME = 0; /* increment time */ #6499; $fclose(vectors); $finish;endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -