可以做ppt的网站有哪些,会员管理系统手机免费版,河北建设厅身份认证锁登录网站,网络服务商官方网站一、概念
阻塞赋值#xff1a;阻塞赋值的赋值号用“”表示#xff0c;对应的是串行执行。 对应的电路结构往往与触发沿没有关系#xff0c;只与输入电平的变化有关系。阻塞赋值的操作可以认为是只有一个步骤的操作#xff0c;即计算赋值号右边的语句并更新赋值号左边的语句…
一、概念
阻塞赋值阻塞赋值的赋值号用“”表示对应的是串行执行。 对应的电路结构往往与触发沿没有关系只与输入电平的变化有关系。阻塞赋值的操作可以认为是只有一个步骤的操作即计算赋值号右边的语句并更新赋值号左边的语句此时不允许有来自任何其他 Verilog 语句的干扰直到现行的赋值完成时刻即把当前赋值号右边的值赋值给左边的时刻完成后它才允许下一条的赋值语句的执行。串行块begin-end中的各条阻塞型过程赋值语句将以它们在顺序块后的排列次序依次执行。阻塞型过程赋值语句的执行过程是首先计算赋值号右边的值然后立即将计算结果赋值给左边赋值语句结束变量值立即发生改变。阻塞的概念是指在同一个 always 块中其后面的赋值语句从概念上是在前一句赋值语句结束后再开始下面的赋值。 非阻塞赋值非阻塞赋值的赋值号用“”表示对应的是并行执行。
这是因为对应的电路结构往往与触发沿有关系只有在触发沿的时刻才能进行非阻塞赋值。非阻塞操作开始时计算非阻塞赋值符的赋值号右边的语句赋值操作结束时刻才更新赋值号左边的语句可以认为是两个步骤赋值开始时刻和结束时刻来完成非阻塞赋值。在计算非阻塞语句赋值号右边的语句和更新赋值号左边的语句期间其他的 Verilog 语句包括其他的 Verilog 非阻塞赋值语句都能同时计算赋值号右边的语句和更新赋值号左边的语句允许其他的 Verilog 语句同时进行操作。非阻塞赋值的操作可以看作为两个步骤的过程在赋值开始时刻计算赋值号右边的语句。在赋值结束时刻更新赋值号左边的语句。注意非阻塞操作只能用于对寄存器类型变量进行赋值因此只能用于“initial”和“always”块中不允许用于连续赋值“assign”。
二、 两者的区别
1.硬件电路的区别 在时序逻辑中使用非阻塞赋值会生成触发器在组合逻辑仲使用阻塞赋值会综合成一个连线。因此一般非阻塞赋值用于时序逻辑而阻塞赋值用于组合逻辑。
2.语句执行顺序 非阻塞赋值语句是并行执行的等到always块结束后才完成赋值而阻塞赋值是顺序执行的下一条赋值语句要等到上一条赋值语句完成后才能赋值并且阻塞赋值是立即完成的。
3.混用容易产生的错误 在组合逻辑中使用非阻塞赋值则和使用阻塞赋值没什么区别但是在时序逻辑中使用阻塞赋值进行赋值除了第一个语句综合为触发器外后续的语句均综合为一个连线如下。 4、赋值顺序
阻塞赋值前面语句执行完才可执行下一条语句即前面语句的执行ba阻塞了后面语句的执行cb。即always块内2条语句顺序执行。
always (posedge iclk)beginb a;c b;end非阻塞赋值always块内2条语句同时执行。即前面语句的执行ba不会阻塞后面语句的执行cb。
always (posedge iclk)beginb a;c b;end