发布日期:2024-09-14 17:20 点击次数:64
最近钻研了一下ccopt balance 不balance的一些轨则杉原杏璃作品。在此共享下。
图片
图片
image849×159 20.3 KBsdc和clock框图如上 要是当master clk my_clk 和 div_clk 之间我不思balance 该若何办呢?
先遗弃这个问题说些其它的。 我发现create_ccopt_spec 默许对generate clock create的skew_group 会修复constraint mode ccopt_property 。也即是只report不balance 如
图片
image969×61 14.7 KB要是div_clk 和 my_clk 互相拉扯咱们不错用get_ccopt_property 来看某一个clock pin 属于哪一个skew group
图片
image1002×49 9.74 KB从skew group 咱们不错分析ccopt spec 来得知tree 的问题在那儿。
另外ccopt create spec 的skew group 是按照delay corner 来创建的。 delay corner 又和constraint mode 绑定 不错用这个敕令来绑定ccopt create spec 的skew group 绑定的delay corner
图片
好了前置的knowledge 先容罢了。启动来说 圭臬1: 默许create ccopt spec 然后分析。 在spec内部吧genclock skew group constraint mode凝视掉
图片
image827×26 6.19 KB然后master clock skew group my_clk 和 generate clock div clk 皆会对 div clk 的FF/CK pin 进行balance 导致两个skew group clock会互相拉扯。 在source ccopt spec 后通过
图片
image1628×45 12.1 KB其中all_registers -clock 这个敕令和ccopt不同它是从timing 信息来的。不是从时钟拓扑结构来的
来把div clk 驱动的clock sink pin 修复ignore 从master clock skew gourp balance 政策 中移除只修drc不balance 我这里写了两个敕令皆能达到后果。一个是合手到div clk驱动的统统sink pin 一个是只修复 div clk 分频ff的 input CK pin 然后咱们看后果 ctd_win
图片
image695×394 8.26 KB彰着看到clock tree balance 被分开了
圭臬二: 把 div clk skew group 修复 exclusive 它的sink pin 是这个clock group 专有的
雷同不雅察ccopt spec 凝视掉gen clk div clk 的 skew group property constrain mode none
图片
image833×24 5.17 KB通过底下的敕令指定gen clk div clk skew group 的sinkpin 专有
图片
image929×65 10 KB当多个skew group exclusive重迭手艺不错通过图中第二个敕令修复exclusive_sinks_rank 来标注优先级
然后涨tree 看下终结
图片
险些和前边的终结是一样的。 雅致的分开了master clk 和genclk 不要互相balance
然后圭臬3 : 在产生ccopt_property 之前 修复
图片
image758×25 4.72 KB另外sdc里要用set_false_path 好像clock_group 雄伟开master clock 和div clk
图片
image1174×73 14.5 KB然后产生spec 咱们来看一下自动产生的spec
图片
image1300×118 26.7 KB图片
image1506×184 43.9 KBdivclk 的ccopt_property constraint mode none 不见了 况兼master clk my_clock 在div clk 的FF/CK pin上修复了 ignore。 (其实这跟圭臬一是一样的只不外是器具自动作念的)
终结诚然也一样
图片
亚洲幼女 image857×436 8.85 KB终末贴上ccopt 产生的CTS_instance 默许的名字 比如cdb 字样即是为了均衡别的tree 垫的delay clock cell
图片
image1220×880 73 KB图片
image1182×814 58.8 KB图片
image1268×668 47.5 KB再聊一个专门旨酷爱的问题要是需要多点长tree 该若何办。 即是均衡从两个port进来的mclk和 scan clk 默许算作念异步的扞拒衡。要是要均衡若何办?
圭臬:在create_spec 后create新的skew group 加入balance group
图片
image823×401 8.37 KB 终结可看到他在均衡 scan clk 和 mclk图片
image1677×57 7.89 KB好吧,我不时来补充对于ccopt的东西。
率先当你的某一个tree是从clock port 来的单独只balance 我方。
你不错用 set_ccopt_property target_insertion_delay test_clk/mission_func 1.1
来截止tree长。
用set_ccopt_property insertion_delay -0.7 -pin xxx/ff_reg/CK
来截止某一个flipflop的tree长。 -0.7是再拉长700ps
比如 1.1 + 0.7 = 1.8 ns 终末的tree长。
今天不时添加两种干预ccopt balance 的圭臬。
第一种是
add_ignore_pin
例子如下图这么的clock tree
clock → tx1_clock →
-> tx2_clock -> ->
clock master clock 产生 tx1_clock
clock master clock 产生tx2_clock
clock , tx1_clock ,tx2_clock 互相不balance。
诚然时势是会balance的
只需要修改ccopt spec
modify_ccopt_skew_group -skew_group clock/mission_func -add_ignore_pin {tx1_clock genclock 界说的source pin \
tx2_clcok genclock 界说的source pin}
这么ccopt就分开balance tx1_clock tx2_clock ,clock 三个clock
圭臬二
在ccopt手艺从头写一套sdc。 把generated clock tx1_clock tx2_clock create成master clock
然后通过
update_constraint_mode -name mission_func -sdc_file {你修改的sdc}
然后作念ccopt
ccopt作念完后用update_constraint_mode -name mission_func -sdc_file {原始的sdc}
这么也能分开balance tx1_clock tx2_clock , clock, 三个clock.
####################
再补充一些。即是ccopt skew group trace 的trace 是和sdc不同的。
比如你有一个master clock A 然后 genclock B (ref A) → FF/CK
从sdc来讲 A clock是不会trace到FF/CK的
然而从ccopt skew group 来说A 和 B clock skew group 皆会trace到FF/CK
那么如何判断 FF/CK 有几个skew group在拉扯呢?
如下用 skew_groups_sink 看有几个skew group
用skew_groups_active 看哪些skew group 被绽放了着实在拉扯
图片
image1103×109 43.4 KB然后能干ccopt 我方产生的spec内部有些skew group 是被关着的。
set_ccopt_property constraints -skew_group xxx/xxx none
把柄需求凝视掉。
并绽放
set_ccopt_property include_source_latency -skew_group xxx/xxx true
归正把柄需要修改杉原杏璃作品。
本站仅提供存储工作,统统推行均由用户发布,如发现存害或侵权推行,请点击举报。