FPGA必备基础6:阻塞、非阻塞与always块的关系 |
您所在的位置:网站首页 › printf中的赋值语句会执行吗对吗 › FPGA必备基础6:阻塞、非阻塞与always块的关系 |
目录 always块与阻塞赋值的关系 (1)代码见下图。 (2)详细分析 2.1 中间信号in_reg 2.2 输出信号out always块与非阻塞赋值的关系 (1)代码见下图。 (2)详细分析 2.1 中间信号in_reg 2.2 输出信号out 该部分就是将前面所讲的非阻塞赋值、阻塞赋值与always块联系起来,为什么要这么做?是因为我们在编写FPGA代码时,它们之间的关系及对应的波形图是最最基础的,你不理解它,那么很不幸,你还是转换赛道,去干其他专业吧。 always块与阻塞赋值的关系 (1)代码见下图。always块与阻塞赋值的关系代码 always块与阻塞赋值的关系代码波形图 (2)详细分析 2.1 中间信号in_reg在系统时钟下,这里的in_reg信号用于接收in信号的值。同理,in_reg是上文reg型的寄存器,导致in_reg信号会“打一拍”,在第二个时钟上升沿才会更新,即in_reg信号比in信号晚一个时钟周期。 2.2 输出信号out在系统时钟下,这里的out信号用于接收in_reg信号的值。但是,由于是阻塞赋值(其会立即更新值,而且在这里“打一拍”在in_reg信号已经发生作用了,因此不用考虑,但也要注意要out信号要接的是in信号的中间信号才行,其他信号的中间变量不行,具体看前面的文章),因此out信号会紧随in_reg信号更新,体现为out与in_reg信号波形图对齐,也是在第二个时钟上升沿更新。 always块与非阻塞赋值的关系 (1)代码见下图。always块与非阻塞赋值的关系代码 always块与非阻塞赋值的关系代码波形图 (2)详细分析 2.1 中间信号in_reg在系统时钟下,这里的in_reg信号用于接收in信号的值。同理,in_reg是上文reg型的寄存器,导致in_reg信号会“打一拍”,在第二个时钟上升沿才会更新,即in_reg信号比in信号晚一个时钟周期。 2.2 输出信号out在系统时钟下,这里的out信号用于接收in_reg信号的值。但是,由于是非阻塞赋值(其不会立即更新值,而且在这里“打一拍”在in_reg信号已经发生作用了,因此不用考虑,但也要注意要out信号要接的是in信号的中间信号才行,其他信号的中间变量不行,具体看前面的文章),因此out信号会延迟in_reg信号一个时钟周期更新,体现为out比in_reg信号波形图晚一个时钟周期,即在第三个时钟上升沿更新。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |