找回密码
 注册
关于网站域名变更的通知
查看: 1026|回复: 3
打印 上一主题 下一主题

fpga中“=”和“<=”有什么区别

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-8-30 13:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
阻塞型赋值的操作符是等号“=”,阻塞型赋值的名称由来是因为阻塞型赋值使赋值过程不会被其他语句所打断,阻塞了其他赋值操作直到当前的赋值过程结束。等号右端表达式立刻赋值给等号左端变量。不过当等号右端表达式有时延时是例外的,例如:
0 k  Q: O/ f' {  H% la =  #5 b;
7 g: r: T1 |8 t8 _; J1 _1 ~当延迟5个时间单位后b给a(这种写法只能用来写测试激励)。
2 A6 m/ @  l, L  u" `在一个always块中,阻塞型赋值语句操作完后才允许其他语句执行,这样容易产生一个问题:当等号“=”右端操作符在另一个always块中是左端变量时,两个赋值操作就是同时进行的!
' n' c+ {8 \& B) C9 _& P非阻塞型赋值的操作符是小于等于号“<=”,非阻塞型赋值语句的名称由来是因为非阻塞型赋值的操作在一个时刻开始时被赋予左端表达式,而在这一时刻结束时左端表达式才更新。在此过程中不影响其他赋值语句的操作。例如:
8 d! c+ |5 U9 O1 U' c! u8 G) C阻塞型赋值可以当做一步操作;而非阻塞型赋值可以当做两步操作:在某一时刻开始赋值;在赋值过程结束后更新。
) w6 f$ a8 P% W3 ?( s非阻塞型赋值只能用于寄存器型变量,所以只能用在块操作中,例如“initial”和“always”,非阻塞型赋值不能被assign赋值。

- L) q# R9 L# P; m* V- I( L9 d5 b; G

该用户从未签到

2#
发表于 2021-8-30 16:07 | 只看该作者
非阻塞型赋值只能用于寄存器型变量,所以只能用在块操作中,例如“initial”和“always”,非阻塞型赋值不能被assign赋值' v3 v3 s" ~: k' W6 c

该用户从未签到

3#
发表于 2021-8-30 18:17 | 只看该作者
在一个always块中,阻塞型赋值语句操作完后才允许其他语句执行,这样容易产生一个问题:当等号“=”右端操作符在另一个always块中是左端变量时,两个赋值操作就是同时进行的!
0 D( M4 `& C! g% l- [4 q! F5 q

该用户从未签到

4#
发表于 2021-9-13 23:27 | 只看该作者
大侠些。。。FPGA == Verilog?,这个世界只有Verilog?所以always块是所有FPGA逻辑工程师默认的?我天,整个帖子连Verilog都没看见。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-4 12:54 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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