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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4968|回复: 14

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

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

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

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

x
我想要实现下面的语法。但是输出要求是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型。
发表于 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 下一条

X

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

GMT+8, 2025-6-27 12:26 , Processed in 0.035149 second(s), 8 queries , Gzip On, MemCached On.

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