[笔记]再笔记--边干边学Verilog HDL --004
lab04 消抖模块之二
本实验当检测到由高到低的电平变化时,产生一个时钟的高脉冲。当检测到由低到高的电平变化时,只消抖,输出不变。
代码
在lab03的基础上修改如下:
delay_module.v
1 case (i)
2
3 2'd0:
4 if (H2L_sig) i <= 2'd1;
5 else if (L2H_sig) i <= 2'd3;
6
7 2'd1:
8 if (count_ms == 4'd10) begin
9 isCount <= 1'b0;
10 rpin_out <= 1'b1;
11 i <= 2'd2;
12 end
13 else
14 isCount <= 1'b1;
15
16 2'd2:
17 begin
18 rpin_out <= 1'b0;
19 i <= 2'd0;
20 end
21
22 2'd3:
23 if (count_ms == 4'd10) begin
24 isCount <= 1'b0;
25 i <= 2'd0;
26 end
27 else
28 isCount <= 1'b1;
29
30 endcase
2
3 2'd0:
4 if (H2L_sig) i <= 2'd1;
5 else if (L2H_sig) i <= 2'd3;
6
7 2'd1:
8 if (count_ms == 4'd10) begin
9 isCount <= 1'b0;
10 rpin_out <= 1'b1;
11 i <= 2'd2;
12 end
13 else
14 isCount <= 1'b1;
15
16 2'd2:
17 begin
18 rpin_out <= 1'b0;
19 i <= 2'd0;
20 end
21
22 2'd3:
23 if (count_ms == 4'd10) begin
24 isCount <= 1'b0;
25 i <= 2'd0;
26 end
27 else
28 isCount <= 1'b1;
29
30 endcase
小结
由于,产生的高脉冲输出持续的时间只有一个时钟(20ns),根本观察不到,所以无所谓下载验证。