关于create_generated_clock中get_pins

在RTL里,将现有时钟定义点(比如某个分频计数器输出cnt_div[3])经过一个buffer,这个buffer直接调用库里的单元,综合约束里设置dont_touch。新的时钟定义点设置在这个buffer的输出。
这样不论在RTL里,还是综合网表之后,这个定义点永远都在。

在RTL里,将现有时钟定义点(比如某个分频计数器输出cnt_div[3])经过一个buffer,这个buffer直接调用库里的单元,综合约束里设置dont_touch。新的时钟定义点设置在这个buffer的输出。
这样不论在RTL里,还是综合网表之后,这个定义点永远都在。

SDC里加了dont touch,后端流程也受这个约束,不会被优化掉。
我们最后需要得到的结果是:全流程走完后时钟树能满足时序要求,而在后端的CTS流程中,会将这个时钟树上所有的cell列入考虑,包括手动加上的这个buffer。

而且出于各种设计因素考虑,ICG单元,甚至delay cell都可以事先人为添加,何况buffer,inverter之类。工具仅仅是工具,都是按照人的指令干活,最后做出一个符合人为定义的目标。

顶层端口使用 get_ports
内部模块端口使用 get_pins
hierarchy是从顶层模块的下一层开始

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值