全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

FPGA学习系列:5.阻塞赋值与非阻塞赋值

时间:2018-05-31 11:40

人气:

作者:admin

标签:

导读:设计背景: 阻塞 (=)和非阻塞(=)一直是在我们FPGA中讨论的问题,资深的学者都是讨论的是赋值应该发生在上升下降沿还是在哪里,我们在仿真中看的可能是上升下降是准确的,但是在时...

设计背景:

阻塞(=)和非阻塞(<=)一直是在我们FPGA中讨论的问题,资深的学者都是讨论的是赋值应该发生在上升下降沿还是在哪里,我们在仿真中看的可能是上升下降是准确的,但是在时间电路中这就是不得而知了,今天我们将学习阻塞和非阻塞的区别,我们不研究他们发生在哪里,之讨论发生的时间和发生的地方。

设计原理:

阻塞:在本语句中“右式计算”和“左式更新”完全完成之后,才开始执行下一条语句;

非阻塞:当前语句的执行不会阻塞下一语句的执行。

我们来看一下下面的阻塞的代码

0modulestudy_4 (clk,rst_n,d,q);

1 //输入输出端口

2 inputclk;

3 inputrst_n;

4 input[1:0]d;

5 outputreg[1:0]q;

6

7 reg[1:0]q1;//定义一个寄存器

8

9 always@(posedgeclk)

10 begin

11 if(!rst_n) //复位时用阻塞给寄存器输出赋初值

12 begin

13 q1 =0;

14 q =0;

15 end

16 else //阻塞语句进行赋值

17 begin

18 q1 =d;

19 q =q1;

20 end

21 end

22

23endmodule

always语句块对Clk的上升沿敏感,当发生Clk 0~1的跳变时,执行该always语句。

在begin...end语句块中所有语句是顺序执行的,而且最关键的是,阻塞赋值是在本语句中“右式计算”和“左式更新”完全完成之后,才开始执行下一条语句的。

在上面的代码中在18行当上升沿来到先执行把d的值给q1,然后下一个上升沿把q1赋值给q。

我们的测试文件如下:

0`timescale1ns/1ps

1

2moduletb;

3

4 regclk;

5 regrst_n;

6 reg[1:0]d;

7 wire[1:0]q;

8

9 initialbegin

10 clk =1;

11 rst_n =0;

12 d =0;

13

14 #200.1rst_n =1;

15

16 #100d =2;

17 #100d =0;

18

19 end

20

21 always#10clk =~clk;

22

23 study_4 dut(

24 .clk(clk),

25 .rst_n(rst_n),

26 .d(d),

27 .q(q)

28 );

29

30endmodule

放真图如下:

image.png

我们可以清楚的看到第一个上升沿的时候寄存器q为0,第二个上升沿的时候q为2,接下来,再看看非阻塞赋值的情况。

所谓非阻塞赋值,顾名思义,就是指当前语句的执行不会阻塞下一语句的执行。

非阻塞代码如下:

0modulestudy_4 (clk,rst_n,d,q);

1

2 inputclk;

3 inputrst_n;

4 input[1:0]d;

5 outputreg[1:0]q;

6

7 reg[1:0]q1;

8

9 always@(posedgeclk)

10 begin

11 if(!rst_n) //复位时用阻塞给寄存器输出赋初值

12 begin

13 q1 <=0;

14 q <=0;

15 end

16 else //阻塞语句进行赋值

17 begin

18 q1 <=d;

19 q <=q1;

20 end

21 end

22

23endmodule

非阻塞在18行以后是这样执行的,18行的时候d的值给q1,但是不是立马给过去,而是等到上升的时候才给,在上升沿同样执行19行,把q1得值给q,大家要明白的这个时候给值是q1的旧值,然后同样在19行也是在上升沿到来后值才给过去的。

我们两个模块用的是一样的仿真文件,我在这里就不给大家展示了,大家可以直接看仿真图,如下:

image.png

大家可以清楚的看到,在第一个上升沿的时候d的值为2,执行18行然后不直接赋值,在等到上升沿来的时候值过去,同样的后面的也是这么执行的,那么我们可以看到图中和我们分析的一样。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信