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
create_buffer_tree example的更多相关文章
随机推荐
- 整数对(hdu1271)找规律
整数对 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...
- SpingBoot —— 多线程
Spring 通过任务执行器(TaskExecutor)来实现多线程和并发编程.使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.而实际开发中任务一般是非 ...
- html area标签详解
<area> 标签定义图像映射中的区域(注:图像映射指得是带有可点击区域的图像). area 元素总是嵌套在 <map> 标签中. 注:<img> 标签中的 use ...
- js 从URL上获取参数
//获取匹配的 function getUrlParam(name) { var reg = new RegExp("(^|&)" + ...
- pm2以windows服务运行
借助于pm2-windows-service 可以把pm2以windows服务运行.已服务运行的好处就是,即时用户注销也,pm2也会在后台运行 npm i pm2 -g npm i pm2-windo ...
- 【python】python中的json、字典dict
定义 python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转.既然都是key-value格式,为啥还需要进行格式 ...
- LeetCode题解之Counting Bits
1.题目描述 2.问题分析 利用bitset. 3 代码 vector<int> countBits(int num) { vector<int> v; ; i <= n ...
- M5加密字符串
private string GetMD5str(string oldStr) { //将输入转换为ASCII 字符编码 ASCIIEncoding enc = new ASCIIEncoding() ...
- 关于 Azure Windows VM 的磁盘和 VHD
就像其他任何计算机一样,Azure 中的虚拟机将磁盘用作存储操作系统.应用程序和数据的位置. 所有 Azure 虚拟机都至少有两个磁盘,即 Windows 操作系统磁盘和临时磁盘. 操作系统磁盘基于映 ...
- sqlserver 一键备份,异机还原脚本
REM +---------------------------------------------------------------------------------+ REM |desc AU ...