微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > icc进行cts时如何控制buffer的插入点

icc进行cts时如何控制buffer的插入点

时间:10-02 整理:3721RD 点击:
在top上定义了clock,create_clock CLK
从CLK出来的时钟经过一个mux和一个clock_gated_cell(rtl例化的ICG)之后,连接到了reg的ck端口。
在做cts时,如何控制buffer或者invert的插入是在clock_gated_cell的后面?

在clock gate cell 的输出pin 定义成root 点做CTS

那就是用create_clock的定义点定义在clock_gate cell的输出是一样的么?
但是这样的时序会有影响么?因为丢掉了一个mux的时序
此外,如果我的clock_gatecell比较多,这样分别定义也是比较麻烦的。

要不你就把mux 到icg 的输入端的所有net 设置donttouch net试试如果有transition 的话需要解transition,然后再全局报timing

好的,我记得icc说过,在做cts时会自动忽略dont_touch属性的clocknetwork。我去试一下吧。

如果不想在CTS 阶段动net , 用这个option 试试呢?set_clock_tree_exceptions -dont_buffer_nets

我回头试试看,但是不知道为什么工具会给我输入的clk 加入一个大驱动的buffer。
工具可能是为了满足某个要求(我猜测是transition的要求,因为默认的icc会设置max_transition为0.5ns),加入了较大的buffer来保证爬坡或者驱动能力。
后来我为了验证这个问题,设置了set_drive 0 [get_ports CLK_NAME_PORTS],cts之后的结果仍然是加入了lib里面可使用的最大buffer
我不知道是不是因为在cts时工具自动去掉了ideal net相关的属性才导致的问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top