溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

set_false_path與set_clock_groups怎么使用

發(fā)布時(shí)間:2021-12-30 15:43:42 來(lái)源:億速云 閱讀:754 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“set_false_path與set_clock_groups怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“set_false_path與set_clock_groups怎么使用”吧!

本文從數(shù)字IC設(shè)計(jì)后端說(shuō)明為什么異步電路的話,一定要用set_clock_groups,同步電路的話,再用命令set_false_path. 兩者對(duì)于crossstalk的計(jì)算方法不同。


1.為什么異步時(shí)鐘不要設(shè)false path

對(duì)于初學(xué)者,常常認(rèn)為異步電路應(yīng)該設(shè)false path。甚至很多老手也是這么認(rèn)為的。
其實(shí)針對(duì)于異步電路,是有專(zhuān)門(mén)的sdc的命令來(lái)完成這項(xiàng)任務(wù)的。

set_clock_groups -asynchronous
從作用上來(lái)看,似乎和false path的效果是一樣的。那么為什么還有這么個(gè)命令呢。

設(shè)想一下,有兩個(gè)clock, clka和clkb,屬于異步關(guān)系,應(yīng)該怎么設(shè)置呢?

用clock group的方法:

set_clock_groups -asynchronous -group clka -group clkb 【命令1】

用false path的方法:

set_false_path -from [get_clock clka] -to [get_clock clkb]   【命令2】set_false_path -from [get_clock clkb] -to [get_clock clka]

比較下來(lái),似乎clock group的方法更為直觀一些, 但是差別也不大。
那么設(shè)計(jì)這個(gè)異步命令的真正原因是什么?它和false path的作用的根本區(qū)別是什么?

在set_false_path的manual里面,有這么一句話解釋了兩者的真正區(qū)別

set_false_path與set_clock_groups怎么使用

總結(jié)下來(lái)就是,異步電路的話,一定要用set_clock_groups,同步電路的話,再用命令set_false_path. 兩者對(duì)于crossstalk的計(jì)算方法不同。

筆者就曾經(jīng)在項(xiàng)目中遇到過(guò)這個(gè)問(wèn)題,本來(lái)應(yīng)該設(shè)異步的情況下,設(shè)置了false path。由于是在timing clean之后發(fā)現(xiàn)的這個(gè)問(wèn)題,那么修改之后就很容易比較兩者之間的差別。
結(jié)果就是改為set_clock_groups的設(shè)置之后,timing變差了很多,有些path甚至有幾百ps之多。

如果感興趣的話,可以用自己的design做個(gè)實(shí)驗(yàn),可能有驚喜。

2.那么manual里說(shuō)的的crosstalk分析究竟有什么差別呢?

基本概念:

set_false_path與set_clock_groups怎么使用
如圖,在crosstalk分析中,當(dāng)信號(hào)A和信號(hào)B跳變發(fā)生于同一時(shí)刻,那么信號(hào)B會(huì)因?yàn)樾盘?hào)A的影響,產(chǎn)生一個(gè)delta delay。而如果信號(hào)A的跳變過(guò)早或者過(guò)晚,那么對(duì)于信號(hào)B的delay就沒(méi)有影響。

那么兩條net哪個(gè)時(shí)aggressor,哪個(gè)時(shí)victim呢?這取決于我們?cè)诜治瞿膫€(gè)net。由于我們分析的是信號(hào)A對(duì)信號(hào)B的影響,所以這里的信號(hào)A就是aggressor,信號(hào)B就是victim。反之亦然。通常實(shí)際設(shè)計(jì)中的對(duì)于一個(gè)victim,aggressor不止一條,同樣,對(duì)于一個(gè)aggressor,也會(huì)有多個(gè)victim。

當(dāng)進(jìn)行on-chip-variation mode 分析的時(shí)候。每一個(gè)aggressor和victim的跳變,都會(huì)有個(gè)最早到達(dá)時(shí)間和最晚到達(dá)時(shí)間。這個(gè)最早和最晚到達(dá)時(shí)間中間的window,就稱(chēng)為timing window。只有當(dāng)aggressor和victim的timing window有重疊時(shí),delta delay才會(huì)產(chǎn)生,也就是說(shuō),aggressor才會(huì)對(duì)victim產(chǎn)生影響。

如果設(shè)set_false_path,工具會(huì)繼續(xù)按照同步關(guān)系計(jì)算timing window。

而我們知道,對(duì)于aggressor和victim屬于兩個(gè)具有異步關(guān)系的clock的情況,aggressor的跳變可能發(fā)生于victim整個(gè)時(shí)鐘周期的任何時(shí)刻。而不只是在按照同步clock計(jì)算出來(lái)的timing windlow中。

而按照同步關(guān)系來(lái)計(jì)算的話,aggressor對(duì)victim的timing window之外的跳變的影響,工具就忽略了。這可能會(huì)導(dǎo)致嚴(yán)重的后果,輕則性能下降(setup),重則芯片fail(hold)。

感謝各位的閱讀,以上就是“set_false_path與set_clock_groups怎么使用”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)set_false_path與set_clock_groups怎么使用這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI