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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 15781|回复: 22

[讨论] DC和PT

[复制链接]
发表于 2012-2-2 10:54:12 | 显示全部楼层 |阅读模式

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

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

x
各位大侠:用encounter对设计自动布局布线,经优化后encounter分析显示的建立时间和保持时间都满足。但在版图后用PT对设计进行STA时发现保持时间有很多路径不满足(slcak=-0.66),建立时间满足。我该怎么去解决这么多保持时间不满足。有什么方法?如果保持时间不满足的路径数量少的话可以手工加BUFFER,但太多了。真不知道该怎么办?可以在DC中用语句set_fix_hold PLL_CLK来解决吗?真的很急呀!请高手帮忙下!非常感谢!
发表于 2012-2-2 13:20:50 | 显示全部楼层
1)检查PT和encounter使用的SDC,spef,sdf是否一致
2)在encounter里面setOptMode -holdTarget 0.7,再做一次optDesign -hold
发表于 2012-2-2 15:03:17 | 显示全部楼层
setOptMode -holdTarget 0.7
估计要插太多的delay cell,说不定就要爆了。
 楼主| 发表于 2012-2-2 15:07:22 | 显示全部楼层
回复 3# taoli_ic


    确实爆了。太多的space DRC。但可以把数值改小点。那请问你有什么高见?
发表于 2012-2-2 15:29:54 | 显示全部楼层
高见没有。。 呵呵
你这个EDI和PT的correlation的问题比较严重, 660ps很大了,觉得你还是应该先找找看为什么correlation有问题,不然EDI看不到violaton也是白搭
 楼主| 发表于 2012-2-2 15:59:16 | 显示全部楼层
回复 5# taoli_ic


    请问什么是EDI?我用的是SPEF反标的。spef直接由encounter产生的但不是QRC参数。不过如果用sdf反标的话,建立时间和保持时间都满足。哎,真无赖,

版图生成后用PT做STA,用于PT的tcl如下:
set search_path "."
set link_path "*fs90a_c_generic_core_ss2p25v125c.db fs90a_c_generic_core_tt2p5v25c.db coef_mem_ss.db coef_ram_wc.db data_ram_wc.db"
read_verilog /...eua2308_dap_ram_soc_12_01_30.v
current_design eua2308_dap_ram
link_design eua2308_dap_ram
set_min_library fs90a_c_generic_core_ss2p25v125c.db -min_version fs90a_c_generic_core_ff2p75vm40c.db
set_min_library data_ram_wc.db -min_version data_ram_bc.db
set_min_library coef_ram_wc.db -min_version coef_ram_bc.db
set_min_library coef_mem_ss.db -min_version coef_mem_ff.db
set_driving_cell -lib -cell DFFN -pin Q -no_design_rule [all_inputs] -library fs90a_c_generic_core_tt2p5v25c
set_wire_load_model -name enG50K -lib fs90a_c_generic_core_tt2p5v25c
set_wire_load_mode enclosed
set_operation_conditions -analysis_type on_chip_variation -min BBCOM -min fs90a_c_generic_core_ff2p75vm40c.db -max WWCOM -fs90a_c_generic_core_ss2p25v125c.db
create_clock_period 38 -waveform{0 19} PLL_CLK
set_load 5e-1[all_outputs]
set_drive 0 {PLL_CLK}
set_dont_touch_network {PLL_CLK}
set_propagated_clock [get_ports PLL_CLK]
set_clock_uncertainty -setup 0.3 [get_clocks PLL_CLK]
set_clock_uncertainty -hold 0.2 [get_clocks PLL_CLK]
set_input_delay 2 [remove_from_collection [all_inputs] [get_ports PLL_CLK]] -clock PLL_CLK
set_output_delay 1 [all_outputs] -clock PLL_CLK

然后执行read_parasticts /...eua2308_dap_ram12_01_30.spef语句结果出现以下
warning:unconnected hierarchy pin'eua2308_dap_u/eua2308_dap_control_u/no_cycle'is missing in the RC annotation for net
'eua2308_dap_u/eua2308_dap_control_u/no.cycle'
warning:unconnected hierarchy pin'eua2308_dap_u/eua2308_dap_control_u/sck_pos_edge'is missing in the RC annotation for net
'eua2308_dap_u/eua2308_dap_control_u/sck_pos_edge'

net type                       total            lumped        RC pi                RC network               not annotated
internal nets                 21933           0                 0                         21629                         0
        -driverless nets                         0                  0                         0                              231
       -loadless nets                            0                  0                         0                                73

       boundary/port nets    180           0                  0                         180                               0
      -driverless nets                           0                  0                            0                                0
      -loadless nets                              0                  0                            0                                 0


                                        22113       0                   0                          21809                               304

再运行report_timing -delay min
        report_timing -delay max
后出现warning
warning:some timing arcs have been disaabled for breaking timing loops or because of constant propagation
下面的相类似的warning很多,我只列了一个
warning:failed to compute c_effective for the timing arc(data_ram_wc/data_ram)data_ram_u/ck-->DO2(max_falling retain_rising)because the library data indicates a non_positive drive resistance

到底哪里有问题了。我还是解决不了。
 楼主| 发表于 2012-2-2 16:05:19 | 显示全部楼层
回复 2# 陈涛


    我把hold target设为0.3优化encounter DRC满足。然后用PT做sta发现hold slack由以前的-0.66变为了-0.57.还是有效果的。但如果hold target设为0.7优化,就会出现很多 DRC,space 太小。难道现在只有重新布局或把面积增大?
发表于 2012-2-2 16:10:56 | 显示全部楼层
找找为何不一致吧。
发表于 2012-2-2 16:16:03 | 显示全部楼层
看看set_operating_condition那个设的对么。和ocv结合一起,有么有太严格?
另外,soce貌似默认是bc_wc, pt用ocv,可能也是不一致。 propagated clock了,uncertainty 值对么
发表于 2012-2-2 16:40:12 | 显示全部楼层
我同意楼上的看法,你的OCV用的是min/max lib来做不同的launch/capture path delay计算,而soce通常用相同的lib*derate做OCV,也就是bcwc。 所以用soce计算出来的SDF在PT中没有问题,因为不用做delaycal,但是用SPEF就需要做delaycal了。
BTW,EDI就是Encounter Digital Implementation system 官方叫法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-30 19:26 , Processed in 0.099321 second(s), 8 queries , Gzip On, Redis On.

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