加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]DC概论五之high fanout (2)

(2012-06-05 16:19:28)
标签:

转载

分类: Synthesis

问题:

虽然设置了set_ideal_netnetwork),set_dont_touch(network)但是clock上仍然有大延迟。

为了解决这个问题,我们还要继续设置高扇出的选项。

<!--[if !supportLists]-->1.       <!--[endif]-->high_fanout_net_threshold,这个变量是用来指出,如果net的扇出个数超过指定值,那么他就是高扇出,同时drc检查,还有延迟计算都是这个数值计算,但是时间上net上的扇出是没有变的。

<!--[if !supportLists]-->2.       <!--[endif]-->high_fanout_net_pin_capacitance,结合high_fanout_net_threshold使用的,当net的扇出超过threshold,那么net上的负载等于这2个数值的乘积。

进一步:修改脚本:

set lib $env(DC_LIB)

set target_library "slow.db fast.db"

set link_library "* $target_library"

set search_path ". ../src ../scripts $lib"

set hdlin_while_loop_iterations 5000

analyze -format verilog test.v

elaborate test

uniquify

link

check_design

create_clock -period 100 [get_ports clk]

set input_exp_clk [remove_from_collection [all_inputs] [get_ports clk]]

set_input_delay 60 -clock [get_clocks clk] $input_exp_clk

set_output_delay 30 -clock [get_clocks clk] [all_outputs ]

set_ideal_network   -no_propagate    [get_nets s_r]

set_ideal_network   -no_propagate    [get_nets rst_N]

set high_fanout_net_threshold 60

set high_fanout_net_pin_capacitance 0.01

compile

时序分析:

 

 http://s11/bmiddle/5e364a30t6093ca636cfafanout (2)" TITLE="[转载]DC概论五之high fanout (2)" />

可以发现cell的延迟已经很合理。

reset

 

http://s4/bmiddle/5e364a30t700ec7e09273fanout (2)" TITLE="[转载]DC概论五之high fanout (2)" />

Cell上的延迟和原来一样

 

一般信号

 

http://s16/bmiddle/5e364a30t700ec87b256ffanout (2)" TITLE="[转载]DC概论五之high fanout (2)" />

Apr之后

 

http://s10/bmiddle/5e364a30t6093d7a846f9fanout (2)" TITLE="[转载]DC概论五之high fanout (2)" />

导出网标,修改约束文件成初始状态,继续分析时序:

 

http://s16/bmiddle/5e364a30t6093da408b8ffanout (2)" TITLE="[转载]DC概论五之high fanout (2)" />

 

http://s7/bmiddle/5e364a30t6093dc15da86fanout (2)" TITLE="[转载]DC概论五之high fanout (2)" />

可以看出apr工具自动加入了buffer,同时优化了net上的fanout

总结:

为了让dc在综合高扇出的net时候不插入buffer treebuffer chain,需要使用set_idea_network使这些搞扇出net避免时序优化(timing optimization),时序更新(timing update),drc修正(drc fixxing)。但是这样设置之后,net上的高负载并没有消除,我们需要额外的参数进行设置. high_fanout_net_threshold  high_fanout_net_pin_capacitance .以减少dc综合时间,以及减少timing violators report

 

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有