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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1868|回复: 11

[求助] 关于综合后level shifter插入位置和upf定义的不一致

[复制链接]
发表于 2023-10-23 11:22:25 | 显示全部楼层 |阅读模式
100资产
我的power domain划分基本上是这个样子


                               
登录/注册后可看大图


每一个domain都是一个模块,即这里有3个模块在三个power domain里面

显然需要给PD2的模块输入和输出插上level shifter,我在upf中定义的levelshifter策略都是放在destination location。

即high_to_low策略为:

set_level_shifter LS_HL \
-domain pd2               \
-applies_to inputs              \
-threshold 0.02                 \
-rule both               \
-location self        

low_to_high策略为:
set_level_shifter LS_LH  \
-domain pd2               \
-applies_to outputs             \
-threshold 0.02                 \
-rule both               \
-location parent               

这种写法应该和我的intention一致吧,综合后通过dc gui界面的UPF Diagram查看也显示了正确的位置,大概就是下图这样:
      

                               
登录/注册后可看大图


按理说在这里都没有任何问题,但是在进行VCLP检查时,报的error是LS_LH放置在了PD2对应模块的区域,而LS_HL放置在了PDTOP对应模块的区域(VCLP并没有报属于那个power domain,就是报的location属于那个模块单元),和upf描述不一致。请问这个是怎么回事呢?

我查看综合后的网表也发现LS_LH对应的单元也被例化在了PD2的模块内部,LS_HL也被例化在了PDTOP的模块内部,
请问各位是否遇到过这种情况?为什么dc 的UPF diagram显示的和我upf一致,但是网表又不对呢?

 楼主| 发表于 2023-10-23 11:47:17 | 显示全部楼层
当我将LS_HL的location修改为parent时,我发现网表文件中LS_HL还是在PDTOP对应的模块内,但是把LS_LH修改为self location时倒是没出现问题,好像这个LS_HL永远都放在了PDTOP对应的模块内,但是按理来说PD2的parent是PD1啊,为什么一直放在了PDTOP对应模块的区域内,这个我如何修改才能通过VCLP检查呢?
发表于 2023-10-23 14:17:45 | 显示全部楼层
em。。。就我的经验来看,你的upf有点问题,在lvl这块,即使没有upf,或者upf有问题,DC也会自动插入一些lvl,导致debug时挺迷惑的。
首先,建议你的set_level_shifter 命令加上-name_prefix,这样可以通过综合后的lvl cell name判断是不是根据upf的strategy描述加入的,还是DC自己加的。
另外,set_level_shifter 最好设置上sink 和source,因为PD1和PDTOP电压一致,如果在PD1里只是一段feed through,DC完全有理由自己判断放在PDTOP。
以上
 楼主| 发表于 2023-10-23 14:33:51 | 显示全部楼层


ctj930627 发表于 2023-10-23 14:17
em。。。就我的经验来看,你的upf有点问题,在lvl这块,即使没有upf,或者upf有问题,DC也会自动插入一些lv ...


好的,感谢,我先试一下!!
发表于 2023-10-23 14:40:19 | 显示全部楼层
high to low 不插也可以把
 楼主| 发表于 2023-10-23 16:00:18 | 显示全部楼层


king-wa 发表于 2023-10-23 14:40
high to low 不插也可以把


好像high_to_low确实是dc工具自己插的
 楼主| 发表于 2023-10-23 17:39:32 | 显示全部楼层
本帖最后由 SGengiant 于 2023-10-23 17:58 编辑


ctj930627 发表于 2023-10-23 14:17
em。。。就我的经验来看,你的upf有点问题,在lvl这块,即使没有upf,或者upf有问题,DC也会自动插入一些lv ...


你好,我发现high to low 的level shifter确实是dc工具自己插入的,我加了source和sink好像还是无济于事,而且为什么有点level shifter的name prefix好像没加上,请问该如何修改呢
 楼主| 发表于 2023-10-23 17:58:45 | 显示全部楼层


ctj930627 发表于 2023-10-23 14:17
em。。。就我的经验来看,你的upf有点问题,在lvl这块,即使没有upf,或者upf有问题,DC也会自动插入一些lv ...


你好,我发现high to low 的level shifter确实是dc工具自己插入的,我加了source和sink好像还是无济于事,而且为什么有的low to hign 的level shifter的name prefix好像没加上,请问该如何修改呢
 楼主| 发表于 2023-10-23 18:19:15 | 显示全部楼层


ctj930627 发表于 2023-10-23 14:17
em。。。就我的经验来看,你的upf有点问题,在lvl这块,即使没有upf,或者upf有问题,DC也会自动插入一些lv ...


你好,我应该如何避免dc工具自动插入level shifter而忽略了我自己写的upf策略呢?一般这种情况是upf文件哪里出了问题呢?
发表于 2023-10-24 14:16:33 | 显示全部楼层


SGengiant 发表于 2023-10-23 18:19
你好,我应该如何避免dc工具自动插入level shifter而忽略了我自己写的upf策略呢?一般这种情况是upf文件 ...


name prefix没加上,说明是DC自己加的,不是根据upf加的,建议你把auto_insert_level_shifter的开关先关掉,跑一下看看,用report_level_shifter看看报错原因。

lvl插不进去的原因很多,有时候不单单是upf问题,很难一概而述。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-22 01:16 , Processed in 0.026250 second(s), 6 queries , Gzip On, Redis On.

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