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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9387|回复: 15

[求助] 带有UPF的design综合时为什么有条net插不上level shifter

[复制链接]
发表于 2015-7-28 14:54:46 | 显示全部楼层 |阅读模式
300资产
00.png

Adder这个是PD_ADD domain,电压是0.7V,剩下的power controller和TOP是PD_TOP这个power domain,电压是1.08V


为什么最后DC综合完之后从power controller这个模块到Adder这个模块的连线没有插入level shifter呢? 从TOP这个模块的port到Adder这个模块的连线倒是都插上了level shifter



power controller这个模块连接到Adder这个模块那条net 是控制Adder中的retension cell的 save和restore信号的   描述如下:



综合过程中提示:

Information: Level shifter LSDNX8_HVT from library saed90nm_max_hthn_hvt_lsh cannot be inserted to net Adder/a_ret because of main power mismatch(require power pin VDDL to be connected to domain primary power VDD1_ADD). (MV-753)
如果是因为库的问题的话 那为什么从TOP这个顶层模块的port连到Adder这个模块的pin之间的net 会插入level shifter 呢



UPF定义如下: 下面的I_ADD 也就是我图中的Adder

create_power_domain PD_TOP  -include_scope
create_power_domain PD_ADD  -elements I_ADD

create_supply_net VDD  -domain PD_TOP
create_supply_net VDD  -domain PD_ADD -reuse

create_supply_net VDD1  -domain PD_TOP
create_supply_net VDD1  -domain PD_ADD  -reuse
create_supply_net GND  -domain PD_TOP
create_supply_net GND  -domain PD_ADD  -reuse
create_supply_net VDD1_ADD  -domain PD_ADD

set_domain_supply_net PD_TOP  -primary_power_net VDD  -primary_ground_net GND
set_domain_supply_net PD_ADD  -primary_power_net VDD1_ADD  -primary_ground_net GND

create_supply_port VDD  -domain PD_TOP  -direction in
create_supply_port VDD1 -domain PD_TOP  -direction in
create_supply_port GND  -domain PD_TOP  -direction in

connect_supply_net VDD -ports VDD
connect_supply_net VDD1 -ports VDD1
connect_supply_net GND -ports GND

create_power_switch sw1 -domain PD_ADD -output_supply_port {out VDD1_ADD} -input_supply_port {in VDD1} -control_port {ctrl I_PWR_CTRL/sw_ctrl} -on_state {state1 in {!ctrl}}

set_retention a_ret -domain PD_ADD -retention_power_net VDD1 -retention_ground_net GND
set_retention_control a_ret -domain PD_ADD -save_signal {I_PWR_CTRL/sr_ctrl low} -restore_signal {I_PWR_CTRL/sr_ctrl high}
map_retention_cell a_ret -domain PD_ADD -lib_cell_type clock_low

set_isolation iso1 -domain PD_ADD -applies_to outputs \

-isolation_power_net VDD -isolation_ground_net GND -clamp_value 1
set_isolation_control iso1 -domain PD_ADD -isolation_signal  I_PWR_CTRL/iso_ctrl \

-location parent -isolation_sense high

set_level_shifter ls_in  -domain PD_ADD -rule both -applies_to inputs
set_level_shifter ls_out  -domain PD_ADD -rule both -applies_to outputs

add_port_state VDD -state {on 1.08}
add_port_state VDD1 -state {on 0.7}
add_port_state sw1/out -state {on 0.7} -state {off off}
add_port_state GND -state {always 0.00}

create_pst power_state -supplies {VDD VDD1 sw1/out GND}
add_pst_state so -pst power_state -state {on on on always}
add_pst_state s1 -pst power_state -state {on on off always}


而且发现DC综合之后,在I_ADD这个模块中多了一个port,a_ret,综合之前是没有这个port的

这个port也就是power contoller模块连接到I_ADD模块时正是连接到了这个port,

000.png     check_mv_design -level_shifter -verbose 提示:

Warning: Pin 'I_PWR_CTRL/sr_ctrl_reg/Q'(VDD[1.08v]) cannot drive 'I_ADD/U32/INP'(VDD1[0.70v]) due to voltage differences (effective strategy is [rule = both, threshold = 0.00]). (MV-231)

发表于 2015-7-28 18:15:02 | 显示全部楼层
没仔细看,

首先: 高压到低压 其实是不需要 插入level shifter的, 低压到高压需要在高压部分加level shifter cell,
像你这种设计,应该是在top domain加入level shifter,而不是adder里面,
其实top和power controller没什么区别,都是一个domain的,

没看到你的upf里面有map_level_shifter_cell 语句
 楼主| 发表于 2015-7-28 21:28:04 | 显示全部楼层
回复 2# icfbicfb

H2L的话 如果不加levle shifter的话,会引起时序等问题,因为低压domain中的timing模型是基于低压timing model进行计算的;

我加上了这句话:map_level_shifter_cell ls_in -domain PD_ADD -lib_cells {LSUPENX2_LVT}


综合完之后check_mv_design -verbose 还是报告:


Warning: Found 1 pin to pin connections requiring level shifter(s).  (MV-229)
Warning: Pin 'I_PWR_CTRL/sr_ctrl_reg/Q'(VDD[1.08v]) cannot drive 'I_ADD/U32/INP'(VDD1[0.70v]) due to voltage differences (effective strategy is [rule = both, threshold = 0.00]). (MV-231)
发表于 2015-7-29 07:36:23 | 显示全部楼层
需要 map_level_shifter_cell
实在不行,手工插入算了。
 楼主| 发表于 2015-7-29 08:11:19 | 显示全部楼层
回复 4# voiluce

手工试过用 insert_mv_cells -level shifter 但是还是不可以;

如果用 create_cell, disconnect_net, connect_pin这些命令,level shifter倒是可以插入,但是check_mv_design -verbose时,


会得到其它的pst的很多warnings;
发表于 2015-7-29 08:15:08 | 显示全部楼层
H2L 加一个buffer就行了, 不需要特别的level shifter cell,因为从电路机制上来说,
高压到低压确实一个buffer就行了,

而L2H不行,需要2个电压一起上,即标准的levelshifter cell
 楼主| 发表于 2015-7-29 09:03:58 | 显示全部楼层
回复 6# icfbicfb

恩,版主说的是一个方法;但我就是搞不懂为什么从高压到低压时其它net都掺入了LS,偏偏那条net没有插入呢
发表于 2015-8-2 15:09:03 | 显示全部楼层
本帖最后由 saicom 于 2015-8-2 15:12 编辑

近期有同样的问题,请问楼主有找到原因和解决方法吗
 楼主| 发表于 2015-8-2 15:43:15 | 显示全部楼层
回复 8# saicom

没有啊 还是解决不了
发表于 2016-1-27 12:15:36 | 显示全部楼层
不知道楼主这个问题解决没有。我在用upf的时候,开始也遇到相同的问题。后来发现retention单元的供电net是switch之前的电源网络,以楼主的upf为例,就是VDD1。我把这个供电改为VDD1_ADD之后,这条线上可以插入level shifter。

我的理解是,retention需要两个供电电源,但是定义retention时,只能定义一个电源。所以需要定义retention的主供电电源,而不是备用电源。对应楼主的upf,在PD_ADD电压域内,retention的主供电电源是VDD1_ADD,备用电源是VDD1。  还没有流片,不知道这么考虑对不对。还请指教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-20 23:23 , Processed in 0.034564 second(s), 8 queries , Gzip On, Redis On.

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