如何使用現(xiàn)有布局來(lái)省去緩沖器/逆變器
在SoC設(shè)計(jì)中,EDA工具處理完網(wǎng)絡(luò)列表之后插入的邏輯均被稱(chēng)作ECO??梢圆槐剡M(jìn)行合成、地點(diǎn)和路線、提取、串音等整個(gè)SoC設(shè)計(jì)周期,從而節(jié)省完成ECO的時(shí)間??梢圆捎檬″X(qián)方式來(lái)執(zhí)行后掩膜工程變更清單。 如果只修改少量金屬層就能完成一項(xiàng)更改,那么涉及的成本要比將整個(gè)設(shè)計(jì)完全重做少得多。 ECO通常會(huì)使用到備用門(mén)模塊(在合成期插入)。通常,這些備用門(mén)模塊包括NAND、NOR、 觸發(fā)器、 緩沖器、逆變器以及其他可能使用到的邏輯單元。 本文重點(diǎn)介紹如何使用現(xiàn)有布局的緩沖器/逆變器(對(duì))邏輯,使用備用單元模組來(lái)避免違反設(shè)計(jì)(DRV)規(guī)則。
介紹
實(shí)施工程變更訂單(ECO),是片上系統(tǒng)(SoC)設(shè)計(jì)階段十分常用的一個(gè)步驟。 在設(shè)計(jì)中采用ECO的原因有很多。
1.事先規(guī)劃好的ECO: 有時(shí)候,設(shè)計(jì)人員可以預(yù)先設(shè)定好采用ECO。 例如,有時(shí)候可能有這種情況:在ASIC設(shè)計(jì)周期的后期需要引入IP,因此設(shè)計(jì)人員要對(duì)其活動(dòng)進(jìn)行適當(dāng)規(guī)劃,以免設(shè)計(jì)階段受到限制。 但有說(shuō)法認(rèn)為在設(shè)計(jì)周期中采用ECO,大部分屬于偶然。
2.功能性修改: ECO也可能是設(shè)計(jì)規(guī)范需要進(jìn)行功能性修改的結(jié)果,如果客戶需要附加功能或者應(yīng)用軟件要求硬件部署該功能,那就有可能需要進(jìn)行此類(lèi)修改了。
3.設(shè)計(jì)問(wèn)題: 門(mén)級(jí)模擬(GLS)或類(lèi)似技術(shù)中一些先前的測(cè)試芯片的硅結(jié)果中可能會(huì)出現(xiàn)設(shè)計(jì)問(wèn)題。
要在邏輯門(mén)里實(shí)施ECO,設(shè)計(jì)人員需要一個(gè)最佳解決方案,因?yàn)樵黾宇~外的門(mén)可能導(dǎo)致要再制造基礎(chǔ)層(如激活層、多晶硅層、氮化物層)掩膜,這比互連掩膜的成本高得多。 因此理想的情況是,設(shè)計(jì)人員會(huì)希望只包含使用現(xiàn)有邏輯的邏輯,來(lái)減少因再制造產(chǎn)生的成本。
問(wèn)題陳述:
使用額外的邏輯門(mén)來(lái)包含ECO,可能會(huì)對(duì)整個(gè)時(shí)序及設(shè)計(jì)的可路由性產(chǎn)生影響,具體來(lái)說(shuō),當(dāng)ECO邏輯相當(dāng)大時(shí),受到影響的模塊實(shí)施密度將達(dá)到100%。
現(xiàn)行方法:
當(dāng)前針對(duì)該問(wèn)題所采取的解決方法是在設(shè)計(jì)的物理合成階段,在每個(gè)模塊內(nèi)添加額外的門(mén),因此在執(zhí)行ECO時(shí),現(xiàn)有的備用門(mén)在以后可以用來(lái)包含設(shè)計(jì)中的修改。這樣就不必增加更多的邏輯。 但這種方法具有一定的局限性。
現(xiàn)行方法的局限:
1.設(shè)計(jì)人員不能預(yù)測(cè)一個(gè)模塊的最佳備用門(mén)數(shù)量,以避免ECO的中途中止; 例如,假設(shè)功能性ECO需要在一個(gè)鏈里連接10個(gè)緩沖器。 但現(xiàn)有的備用單元模組只有6個(gè)緩沖器,由于沒(méi)有緩沖器/逆變器(對(duì))所以我們必須重新轉(zhuǎn)動(dòng)SoC。基本上,這個(gè)局限在于設(shè)計(jì)人員必須要在一個(gè)模塊中放置更多冗余邏輯,或在另一個(gè)模塊中備用放置有限的備用門(mén)。
2. 規(guī)模過(guò)大的ECO必然會(huì)違反保持時(shí)間并違反設(shè)計(jì)規(guī)則,例如違反邏輯門(mén)的最大過(guò)渡或最大驅(qū)動(dòng)強(qiáng)度。 這需要額外的冗余緩沖器來(lái)解決保持時(shí)間違反問(wèn)題,或提高DRV易發(fā)生的信號(hào)壓擺率性能。
建議的解決方案:
本文欲介紹一款我們可以使用現(xiàn)有布局來(lái)省去緩沖器/逆變器(對(duì))的解決方案。
請(qǐng)記住,在備用規(guī)模塊中,可能必須增加冗余的NAND/NOR門(mén)和額外的觸發(fā)器/閂鎖,但不一定需要增加冗余的緩沖器和逆變器。
基本上,本文試圖演示一種創(chuàng)新方法,它使用優(yōu)化技術(shù),可從現(xiàn)有布局恢復(fù)緩沖器/逆變器邏輯。
算法和偽代碼
圖1: 一個(gè)(x1,y1,x2,y2)窗口大小所要實(shí)施的基本算法
生成窗口大小的偽代碼:
開(kāi)頭
x=x1;y=y1;
當(dāng) x x2,
y y2時(shí)
x’ = x + a, y’ = y + b;
x=x’,y=y’
如果 x > x2 或 y > y2
x=x2, y="y2";
結(jié)束
生成的每個(gè)窗口坐標(biāo)用 (x, y, x’, y’)表示
此處a、b需要根據(jù)具體的設(shè)計(jì)和技術(shù)而定。 如果SoC的SoG(Sea of Gates)區(qū)域是 7 mm2 或更大,設(shè)計(jì)人員在計(jì)算窗口大小時(shí)需要注意計(jì)算的復(fù)雜性。
描述:
如上面的流程圖所示,該思路的核心是如何識(shí)別非關(guān)鍵性的緩沖器(w.r.t時(shí)序余量)。 在實(shí)施ECO時(shí),我們不可避免地需要使用備用單元模組的緩沖器。 現(xiàn)在,這個(gè)緩沖器的放置是比較隨意的,使用它會(huì)違反DRV規(guī)則。
例如,我們假設(shè)使用BUFX8來(lái)驅(qū)動(dòng)5個(gè)扇出。總的容量負(fù)荷(包括線路和引腳)是200fF?,F(xiàn)在根據(jù)該緩沖器的SPICE特征,任何高于150fF的負(fù)荷都會(huì)導(dǎo)致不好的輸出壓擺。差的輸出壓擺不僅會(huì)違反最大過(guò)渡值,而且還會(huì)影響扇出驅(qū)動(dòng)電路的時(shí)序。
因此,在這種情況下,明智的做法是遵從上面的算法,這樣我們可以進(jìn)行以下步驟:
1.找出ECO的目標(biāo)點(diǎn): 我們應(yīng)當(dāng)找出開(kāi)始點(diǎn)和結(jié)束點(diǎn)位置,這是放置緩沖器元件的位置。該位置決定著窗口大小,我們應(yīng)當(dāng)在這個(gè)窗口里搜索非關(guān)鍵性緩沖器/逆變器(對(duì))。
2.決定窗口大?。?這完全由設(shè)計(jì)人員決定。 他可以根據(jù)技術(shù)選擇窗口大小。如果緩沖器能驅(qū)動(dòng)的最大負(fù)荷是200fF,那么窗口大小應(yīng)當(dāng)相應(yīng)地進(jìn)行修改。
3.緩沖器/逆變器(對(duì))的識(shí)別: 現(xiàn)在,該算法將在特定窗口上運(yùn)行,并且嘗試識(shí)別已標(biāo)記位置中出現(xiàn)的所有緩沖器/逆變器(對(duì))。
4.計(jì)算時(shí)序余量: 一旦緩沖器/逆變器(對(duì))做了標(biāo)記,算法應(yīng)嘗試通過(guò)這些標(biāo)準(zhǔn)單元找出時(shí)序余量。如果這些標(biāo)準(zhǔn)單元對(duì)時(shí)序很關(guān)鍵,那么該緩沖器/逆變器(對(duì))就不需要標(biāo)記。只要該緩沖器/逆變器(對(duì))保留為標(biāo)記狀態(tài),那么取消哪一個(gè)都不會(huì)對(duì)該設(shè)計(jì)的現(xiàn)有時(shí)序情況產(chǎn)生影響。
5.最后一步: 現(xiàn)在,帶標(biāo)記的緩沖器/逆變器(對(duì))可以用于ECO。
結(jié)論
布局優(yōu)化和冗余單元的使用可以幫助設(shè)計(jì)人員在以后數(shù)百萬(wàn)個(gè)門(mén)SOC的設(shè)計(jì)階段,消化復(fù)雜的ECO,同時(shí)避免對(duì)整個(gè)產(chǎn)品的上市時(shí)間造成影響。
評(píng)論