create_buffer_tree example

假设这样一种情况:

绕线完修完timing 后,designer 修改了netlist,给了eco.v,其中改动了 clock tree 的一个分支,导致这个分支上的buffer 都没有了,如下图

一个 mux 驱动60个 register,驱动力不够,导致这些 register 的 ck 端的 transition 超大

为了修掉这些transition,首先考虑在 mux 后面加buffer(mux 已经是最大size了),但是这样buffer 的fanout 还是很大,可能还是会有transition,

此时考虑将这些 register 分成两组,分别用 buffer 去驱动,如下图:

这样每个 buffer 只需要驱动 30 个 register,transition 应该能降下来。

但是怎样达到这个目的呢?

首先考虑用 insert_buffer,抓出其中 30个register,然后 insert_buffer -object_list,就可以让buffer 驱动这30个register了,

问题是如何抓出这60个reg 中的30 个,最好这30个 reg 的物理位置都是比较靠近的,似乎只能手动去选择,这个就很麻烦了

 

另外有一个办法,直接用 create_buffer_tree 就可以达到这个目的,图中的这种一分为二的结构其实就是典型的 buffer tree,直接在 mux 输出端 create_buffer_tree 即可

命令如下:

set_ahfs_options   -default_reference {CKBUFD6  CKBUFD8 CKBUFD12}  ## 指定创建buffer tree 用的buffer

create_buffer_tree   -from  mux_output_net  ## 创建 buffer tree

 

转载于:https://www.cnblogs.com/xiaoxie2014/p/9402343.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值