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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2449|回复: 4

[求助] 综合时出现位宽不同的赋值怎么处理?

[复制链接]
发表于 2014-7-30 21:23:05 | 显示全部楼层 |阅读模式

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

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

x
例如顶层模块top里有这么一句:req #( .WID(WID)  ) U1 ( .clk(clk),   .rst(rst),   .din(din) )

即调用了req模块,例化单元为U1
在req模块中,din位宽为参数WID,而顶层模块中WID的默认值与req模块不同,导致综合时会报如下错误:
Error: Width mismatch on port 'din' of reference to 'req' in 'top'. (LINK-3)
请问这种情况该怎么处理?Verilog似乎可以自行处理不同位宽之间的赋值啊!因为出现了很多处,不想一一修改,并且调用的大多是FIFO之类的宏单元,改起来没那么灵活,请问有什么好的办法没有?万分感谢!!
发表于 2014-7-30 21:53:28 | 显示全部楼层
req 模块那个是可变参数,由顶层模块传进去,应该是你的hard macro 的 din width 与传进去顶层define 的 WID 不一致
 楼主| 发表于 2014-7-30 22:17:20 | 显示全部楼层
回复 2# zero_0

那应该怎么办?硬核是不是有固定的参数啊,比如MEM有64x32b的,但是我真正用到的数据位宽只有29,那要怎么调用呢?硬核好像是可以通过memory compiler生成的,那可以随意生成吗?比如64x29b这种看起来很奇怪的能不能产生呢?目前其实还没有真正的硬核呢,只是有硬核的模块定义和端口声明,里头还是空的……所以想知道能不能产生位宽刚刚好的硬核,请指教,多谢啦!
发表于 2014-7-31 09:35:49 | 显示全部楼层
回复 3# linghuqiubai


    可以compile 出来的,data width 不一定是2的N次方
    先搞清地址线和数据线
 楼主| 发表于 2014-7-31 10:05:53 | 显示全部楼层
回复 4# zero_0

好的,太感谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-7-6 05:41 , Processed in 0.023706 second(s), 9 queries , Gzip On, MemCached On.

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