在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 5235|回复: 14

[求助] 为什么输出必须定义为reg类型呀?如何帖子中的语句。

[复制链接]
发表于 2021-5-18 14:30:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我想要实现下面的语法。但是输出要求是reg类型
assign o_data_time_rd_addr = (CntNum == Op_cnt) ? data_time_rd_addr : NextOpAddr;
改为
image.png
可以吗?
发表于 2021-5-18 14:45:31 | 显示全部楼层
可以
回复 支持 反对

使用道具 举报

发表于 2021-5-18 15:26:59 | 显示全部楼层
并没有规定输出必须是reg啊
回复 支持 反对

使用道具 举报

发表于 2021-5-19 18:31:38 | 显示全部楼层
第一个是wire吧,第二个是reg。你说的是赋值左端的变量吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-19 18:48:36 | 显示全部楼层


   
gaurson 发表于 2021-5-19 18:31
第一个是wire吧,第二个是reg。你说的是赋值左端的变量吗?


对的,我想把第一种改成第二种,不是说必须要用reg做输出吗?有这种说法吗

回复 支持 反对

使用道具 举报

发表于 2021-5-20 15:02:56 | 显示全部楼层
输出也可以是wire型,比如直接assign出来的一些数据,只是说在特定语法里面,比如赋值语句,左边必须是reg型。
回复 支持 1 反对 0

使用道具 举报

发表于 2021-5-20 18:21:18 | 显示全部楼层


   
ty_xiumud 发表于 2021-5-19 18:48
对的,我想把第一种改成第二种,不是说必须要用reg做输出吗?有这种说法吗

...


没有这种说法
回复 支持 反对

使用道具 举报

发表于 2021-5-21 16:09:00 | 显示全部楼层
是不是含义弄错了?
如果单指语法,assign需使用wire;always块不论阻塞还是非阻塞,都是reg。
如果指代码风格,有的要求某些module必须是reg-in和reg-out,这里的reg是指always非阻塞赋值。
你的always块里使用了if (!i_rst_n),这是典型时序电路中复位的写法,使用always非阻塞赋值会更好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-21 17:25:49 | 显示全部楼层


   
yucaoxilin 发表于 2021-5-21 16:09
是不是含义弄错了?
如果单指语法,assign需使用wire;always块不论阻塞还是非阻塞,都是reg。
如果指代码 ...


主要是代码风格,我不知道从哪里听说好像是使用reg驱动能力会更强些,所以一般的IC设计中要求是用reg作为输出驱动能力会更强些
回复 支持 反对

使用道具 举报

发表于 2021-5-22 04:26:39 来自手机 | 显示全部楼层


   
ty_xiumud 发表于 2021-5-21 17:25
主要是代码风格,我不知道从哪里听说好像是使用reg驱动能力会更强些,所以一般的IC设计中要求是用reg作为 ...


为满足时序要求,会插拍保证reg-out。如果想插拍,不必要非改成下面的写法,在第一种写法的基础上,增加一个always块插拍即可。o_data_time_rd_addr_reg <= o_data_time_rd_addr;
o_data_time_rd_addr_reg为最终的输出。
一般代码风格,是组合逻辑和时序逻辑分开,时序逻辑只完成打拍功能。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-8-22 15:55 , Processed in 0.036418 second(s), 4 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表