verilog-阻塞赋值与非阻塞赋值

一、阻塞赋值(b=a):顺序执行

  • 赋值语句执行完,块才结束
  • b的值在赋值语句执行完后立刻改变
always@(posedge clk)
	begin
		b=a;
		c=b;
	end

clk上升沿到来时:b马上取a的值,c马上取b的值(即等于a)
效果b=a; c=a
在这里插入图片描述

二、非阻塞赋值(b<=a):并行执行

  • 上面语句所赋的变量值不能立即就为下面的语句所用
  • 块结束后才能完成这次赋值操作,所赋的变量值是上一次赋值得到的
always@(posedge clk)
   begin
   	b<=a;
   	c<=b;
   end

定义了两个reg信号bc,用到两个触发器;
clk信号的上升沿到来时,b就等于a,c就等于b
效果b=a; c=b
在这里插入图片描述

总结
组合逻辑的always块采用阻塞赋值;
时序逻辑的always块采用非阻塞赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值