前面兩周介紹了如何修復(fù)setup和hold violation, 這次我們接著來講下另外一個(gè)十分重要的violation——drv的修復(fù)。
首先,我們來了解下drv的基本概念,drv全稱design rule violation,設(shè)計(jì)規(guī)則違反,主要包括max transition,maxcapacitance, max fanout, max length。 分別對(duì)pin的轉(zhuǎn)換時(shí)間,電容,扇出,wire長(zhǎng)度有要求。其中,max transition和capacitance的violation是我們必須要修復(fù)的,因?yàn)檫^大的slew和load都會(huì)造成lookup table查找表的數(shù)值較大且不精確。fanout和length并不是必須要修復(fù)的,但是數(shù)值過大的話,會(huì)影響前兩者。接下來,我們來看看在ECO階段時(shí),如何來手動(dòng)修復(fù)max transition和maxcapacitance。
首先來看max transition,通常我們也稱為slew,可以看下概念介紹。
【時(shí)序分析基本概念介紹
有很多原因會(huì)造成slew的violation,但最主要的分為以下幾類:
1)cell的驅(qū)動(dòng)能力太弱
2)fanout數(shù)目過大
3)net長(zhǎng)度太長(zhǎng)
Cell驅(qū)動(dòng)能力太弱
這是最常見的一類slew的violation,如果某個(gè)cell的驅(qū)動(dòng)能力太弱,無法驅(qū)動(dòng)下一級(jí)的cell,則比較容易產(chǎn)生比較大的delay。
如何來修呢? 也很簡(jiǎn)單,我們可以通過size up這個(gè)cell來提高驅(qū)動(dòng)能力,比如X1的BUF換成X4, X8的等。
一般情況下,如果我們看到某個(gè)cell的output transition比input transition大很多,那說明這個(gè)cell的驅(qū)動(dòng)不夠,我們可以嘗試size up一下。如下圖所示:第一個(gè)X1的INV input transition是18.051,而輸出transition是66.328。明顯的是X1的INV推不動(dòng)下面的14個(gè)fanout,可以考慮將X1的INV換成驅(qū)動(dòng)更強(qiáng)的cell。
Fanout數(shù)目過大
這也是常見的一類容易造成slew violation的情況。過多的fanout會(huì)顯著惡化pin的transition。
對(duì)于這種情況,我們可以通過插入buffer來減少fanout數(shù)目。如下圖所示:
中間的output pin驅(qū)動(dòng)了15個(gè)instance,分布在左右兩邊,如果該cell的驅(qū)動(dòng)能力不強(qiáng),整體的net長(zhǎng)度又比較長(zhǎng)的話,則比較容易引起max transition的violation。
對(duì)于這種情況,我們可以選擇在該instance的右邊插入一個(gè)buffer,由于buffer的驅(qū)動(dòng)較強(qiáng),所以讓它來驅(qū)動(dòng)右邊的10幾個(gè)instance,這樣就能顯著降低fanout的數(shù)目,修復(fù)max transition的violation。如下圖所示:原來的instance的fanout由15個(gè)變成了4個(gè)。
這邊推薦一個(gè)比較實(shí)用的小功能,在ECO窗口中,我們可以選擇Listed terminals旁邊的框框,然后在GUI界面上框住添加的buffer所需要驅(qū)動(dòng)的cell的pin,工具就會(huì)自動(dòng)會(huì)讓buffer驅(qū)動(dòng)這些pin,比我們通過命令抓取這些pin更簡(jiǎn)單快捷。
net長(zhǎng)度太長(zhǎng)
過長(zhǎng)的net長(zhǎng)度也會(huì)惡化slew,造成max transition的violation。如下圖所示:
對(duì)于這種情況,我們可以在net的中間插入一個(gè)buffer來打斷這根net,就可以解掉這個(gè)max transition的violation。
maxcapacitance代表pin的load(負(fù)載)太大了,超過了約束或者library里面的設(shè)置,同樣會(huì)造成timing數(shù)據(jù)的不準(zhǔn)確。修復(fù)的方法和transition一樣,對(duì)于輸出pin上的maxcapacitance來說,一般是fanout數(shù)目過大,或者下一級(jí)net太長(zhǎng);對(duì)于輸入pin上的maxcapacitance來說,一般是上一級(jí)cell的驅(qū)動(dòng)不夠,或者輸入的net太長(zhǎng)等等,基本情況和max transition一樣,這邊就不過多介紹了。
修復(fù)drv并不困難,我們首先要做的事搞清楚violation的出現(xiàn)的原因,對(duì)癥下藥,才能更好地解決問題。
-
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1899瀏覽量
86527 -
DRV
+關(guān)注
關(guān)注
0文章
18瀏覽量
20787
原文標(biāo)題:對(duì)癥下藥,方能藥到病除——如何修復(fù)drv?
文章出處:【微信號(hào):IC_Physical_Design,微信公眾號(hào):數(shù)字后端IC芯片設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄


4 4 單片機(jī)常用芯片MAX7219驅(qū)動(dòng)哦!MAX7219驅(qū)動(dòng)哦!
MAX690/MAX691/MAX692/MAX694/MAX695微控制器監(jiān)控監(jiān)控電路
求幫忙!!!如何在labview中自動(dòng)連接GPIB,而無需先在NI-MAX中手動(dòng)連接?
NI MAX與網(wǎng)絡(luò)設(shè)備每次連接都要手動(dòng)取消機(jī)箱然后在選擇保留機(jī)箱才能連上
MAX9924–MAX9927性能及應(yīng)用
MAX504的工作模式是怎樣的? MAX504的應(yīng)用有哪些?
寫約束時(shí)set_max_transition是不是在庫(kù)元件的允許范圍內(nèi),設(shè)置比較大的值比較合適?
MAX30100和MAX30102是什么
MAX4760/MAX4761 pdf
MAX4999 pdf
MAX7500, MAX7501, MAX7502, MAX
使能MAX16154和MAX16155的手動(dòng)復(fù)位功能

評(píng)論