当前位置:   article > 正文

FPGA学习笔记——B站野火FPGA教程 第十二讲 阻塞赋值与非阻塞赋值_阻塞赋值和assign

阻塞赋值和assign

一、理论

1.阻塞赋值

作用:用于进行串行逻辑,防止顺序混乱

2.非阻塞赋值

不用assign的原因:assign代表连续,跟非阻塞赋值中的并行赋值矛盾,因此,assign只能用于wire类型变量赋值。

二、实战演练

1.框图

(1阻塞

(2非阻塞

2.波形图(暂不需要)

其实就是在上一讲中的key_in和out信号之间加入了一个中间变量in,然后用以上两种方式进行赋值然后仿真观察即可

3.代码

(1阻塞赋值

在测试模块代码编写的时候需要注意:clk给的是阻塞赋值,其他信号初始化都是非阻塞赋值,因为我们要求clk一定要先初始化,否则就会乱套

(2非阻塞赋值

4.仿真结果

(1阻塞赋值

如图,延迟了一拍之后,out和in_reg同时置1

(2非阻塞赋值

如图,延迟一拍,再延迟一排才可以使得输出为1

三、实验总结

阻塞赋值是上升沿到来时立刻把等号右边赋给左边,按顺序执行完;

非阻塞赋值是上升沿到来时并行地赋值给等号左边,如果有寄存器的话,需要等到下一个上升沿才能赋值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/784476
推荐阅读
相关标签
  

闽ICP备14008679号