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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1700|回复: 2

求助,关于bottom up综合时模块参数传递问题

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

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

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

x
在实现一个模块时,使用了parameter,如下
module pe
  #(parameter offset = 0)
  (
    clk,
    nrst,
    ......
在顶层需要使用不同parameter例化多个该模块,这种情况使用bottom up的策略综合时,该如何进行操作?
是要对每种parameter都先进行综合写出网表吗?如果这样,写出网表的时候,多个parameter的design写出来名字都一样,这样综合顶层的时候如何区分?

顺便,大佬们可以分享一个bottom up的简单综合脚本或是教程链接吗,刚接触这种方式,思路很乱啊

发表于 2020-5-31 23:15:47 | 显示全部楼层
我也发现有些问题,一同交流
首先在elaborate的时候,需要带参数,例如:
elaborate ${TOPLEVEL} -lib work -param $dcparams

然后此后current_design会变名字,可以获取该名字:
set NEW_TOPLEVEL [get_attribute [current_design] full_name] ; # after parameter elaborate, the name maybe changed

后面,写出ddc的时候,使用特定名字写出:
write_file -hierarchy -format ddc -output ../data/${TOPLEVEL}(${NEW_TOPLEVEL}).ddc

上述是做block的。
我尝试用S推荐的Block Abstract Flow,但是发现在做顶层的时候,它会搞乱block内部的时序。所以没用这个流程。

我后来就是导出ddc后,用pt读入,然后extract_model 写出lib
PS:可能需要脚本,将lib里面参数化的cell名字,改为不带参数的cell名字,否则在顶层elaborate的时候可能出错。

再在顶层读入此block的lib,基本可以达到目的
 楼主| 发表于 2020-6-1 17:04:59 | 显示全部楼层


要你命3000 发表于 2020-5-31 23:15
我也发现有些问题,一同交流
首先在elaborate的时候,需要带参数,例如:
elaborate ${TOPLEVEL} -lib work ...


谢谢大佬的回答
按照你的思路,我是先对每个param都进行综合产生了一个ddc,然后在顶层读入,设置了dont_touch。
顶层出来结果出现很多时序违例,而且基本都是前面读入的各个子模块之间进行连接的路径发生违例。但每个子模块都在更高频率下进行综合保证没时序违例才产生ddc文件的。
这种情况是不是子模块综合时对输入输出引脚的drive和load约束不合适造成的?


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

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 23:53 , Processed in 0.017660 second(s), 8 queries , Gzip On, Redis On.

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