我是靠谱客的博主 仁爱万宝路,这篇文章主要介绍FPGA学习笔记:单次调用@(posedge clk)(没有always),现在分享给大家,希望可以做个参考。

之前看小梅哥视频,对下面语句有所疑惑:

不知道这个@(posedge)触发后只执行一句还是后面的都执行,能不能加begin end只触发某几句;如果能用begin end的话,没有触发上升沿那么这个语句会不会阻塞后面的语句,自己就写了个testbench,代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
`timescale 1ns/1ns `define tm 20 module tb(); reg clk; reg test1; reg test2; reg test3; reg clk1; initial clk = 1'b0; always#(`tm/2) clk = ~clk; initial begin test1 = 1'b0; test2 = 1'b0; test3 = 1'b0; clk1 = 1'b0; #(`tm*3); @(posedge clk)begin test1 = 1'b1; test2 = 1'b1; end #(`tm*3); @(posedge clk1)begin test3 = 1'b1; end #(`tm*3); test1 = 1'b0; test2 = 1'b0; test3 = 1'b0; @(posedge clk)begin test1 = 1'b1; end #(`tm*10); $stop; end endmodule

波形结果:

结论是会阻塞,@(posedge clk)语句其实等同于wait。

最后

以上就是仁爱万宝路最近收集整理的关于FPGA学习笔记:单次调用@(posedge clk)(没有always)的全部内容,更多相关FPGA学习笔记:单次调用@(posedge内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部