zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    A* Pathfinding for Beginners
    OpenGL Draw Mesh
    CentOS6.5下安装、配置SSH
    Ubuntu18.04下搭建LAMP环境
    滚动合集
    关闭页面触发事件
    在table中tr的display:block在firefox下显示布局错乱问题
    sharepoint添加模板及删除模板
    常用正则表达式
    javascript对象的property和prototype是这样一种关系
  • 原文地址:https://www.cnblogs.com/xiaoxie2014/p/9402343.html
Copyright © 2011-2022 走看看