集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1044|回复: 3

fpga中“=”和“<=”的区别

[复制链接]
fpga_feixiang 发表于 2017-5-31 11:35:54 | 显示全部楼层 |阅读模式
阻塞型赋值的操作符是等号“=”,阻塞型赋值的名称由来是因为阻塞型赋值使赋值过程不会被其他语句所打断,阻塞了其他赋值操作直到当前的赋值过程结束。等号右端表达式立刻赋值给等号左端变量。不过当等号右端表达式有时延时是例外的,例如:
a =  #5 b;
当延迟5个时间单位后b给a(这种写法只能用来写测试激励)。
在一个always块中,阻塞型赋值语句操作完后才允许其他语句执行,这样容易产生一个问题:当等号“=”右端操作符在另一个always块中是左端变量时,两个赋值操作就是同时进行的!
非阻塞型赋值的操作符是小于等于号“<=”,非阻塞型赋值语句的名称由来是因为非阻塞型赋值的操作在一个时刻开始时被赋予左端表达式,而在这一时刻结束时左端表达式才更新。在此过程中不影响其他赋值语句的操作。例如:
阻塞型赋值可以当做一步操作;而非阻塞型赋值可以当做两步操作:在某一时刻开始赋值;在赋值过程结束后更新。
非阻塞型赋值只能用于寄存器型变量,所以只能用在块操作中,例如“initial”和“always”,非阻塞型赋值不能被assign赋值。
zhiweiqiang33 发表于 2017-5-31 12:01:36 | 显示全部楼层
受教了,谢谢寇老师的分享;
fpga_wuhan 发表于 2017-5-31 15:17:46 | 显示全部楼层
       
fpga中“=”和“<=”的区别
d643189658 发表于 2017-8-17 18:49:35 | 显示全部楼层
谢谢楼主分享
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-4 11:34 , Processed in 0.066316 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表