專利名稱:并入soc分層設計的定時約束的制作方法
并入soc分層設計的定時約束
背景技術:
很多設計,尤其是基于平臺的邏輯設計,具有很大比例的可重 復使用知識產(chǎn)權(IP)模塊。這些IP模塊形成了可用于更大型設計 的預設計功能模塊。當把這些IP模塊提供給設計綜合者時,他們具 有幾種不同類型的信息。這些不同類型信息中的一種是一組定時約 束。
電子設計自動化(EDA)工具要求對它們正在工作的實體進行定 時約束。這可以是針對整個設計的,或其可以是合并到設計內(nèi)的中間 層分層模塊(chiplet)。這些實體通常不對應單個IP模塊。需要定 時約束的EDA工具的示例是物理合成、布局布線和定時分析。這些均 工作在chiplet層次或全芯片層次,這也就是他們需要約束的層次。 通常約束不針對整個設計存在,而針對設計內(nèi)的分離的IP模塊存在。
需要有效的方法來合并這些分離的約束,以使它們針對更高的層次。 現(xiàn)存工具例如通過定時預算可以操縱針對整個設計的約束,從
而為chiplet或更低的設計層次創(chuàng)建約束。但是現(xiàn)存工具不能從較低 層次的定時約束得出一組針對設計的較高層次的定時約束。當前,這 必須手動完成。由于只有一些定時約束需要被傳播到較高層次,所以 這不是簡單的級聯(lián)過程。這是耗時的、易出錯的過程,經(jīng)常需要幾個
人花幾個星期才能完成和驗證。只要改變設計使輸入稍微不同就要重 復該過程。
發(fā)明內(nèi)容
在此所公開和所申請的本發(fā)明, 一方面其包括一種方法,該方
法將定時約束從較低層次設計模塊傳播到較高層次設計模塊。對包含 多個設計模塊的電路進行設計,使多個設計模塊的每一個均具有與其
相關的一組定時約束。根據(jù)己被建立的傳播規(guī)則集,由與多個設計模塊的每一個相關每組定時約束來為該電路創(chuàng)建定時約束的復合組。
連同以下附圖,參考接下來的詳細描述,可獲得關于本發(fā)明的 方法和設備的更完整的理解,其中 圖1是設計操縱系統(tǒng)的框圖; 圖2圖示了類型I定時約束的實施; 圖3圖示了類型II定時約束的實施;圖4是圖示了類型III定時約束的傳播的流程圖;以及 圖5是圖示了類型III定時約束的沖突分解的流程圖。
具體實施方式
現(xiàn)在參見附圖,尤其參見圖1,其描述了在設計操縱系統(tǒng)內(nèi)實施的本發(fā)明系統(tǒng)。在被稱為設計操縱系統(tǒng)(DMS) 102的計算機程序中 已經(jīng)實現(xiàn)了本公開。DMS系統(tǒng)102能夠采用各種現(xiàn)存IP模塊的組合 來設計系統(tǒng)。生成的設計將根據(jù)各種己建立的定時約束104來進行工 作,DMS系統(tǒng)102還利用其他設計功能106。在此,根據(jù)在SDC (Synopsis Design Constraint, Synopsis 設計約束)格式中定時約束的實施來描述定時約束。具有四種定時約 束。類型I定時約束108取決于定義該類型定時約束所針對的模塊。 類型I定時約束包括,但不限于,諸如set—input-delay、 set—load 或set—driving_Cell之類的約束。雖然不總是,但是它們經(jīng)常是根 據(jù)IP模塊的端口來定義的。如果在層次化設計中舉例說明了 IP模塊, 則這些定時約束應該從前后關系推斷出來,除了當它們直接映射到較 髙層次的邊界時。類型II定時約束110不取決于實例前后關系。這些約束包括, 但是不限于,set—case—analysis、 set—false—path禾口 set—multicy cle—path??筛鶕?jù)IP模塊的端口、較低層次IP模塊或葉單元的實例 管腳、網(wǎng)或時鐘,來定義這些定時約束。這些定時約束不能由前后關 系推斷出來,并且必須被傳播到設計的更高層次。類型III定時約束112不能由前后關系推斷出來,但可能與來 自前后關系的約束沖突,這種類型的約束是諸如create—clock或cr eat一generatecLclock之類的約束。通常IP模塊具有由輸入管腳定 義的時鐘約束,該時鐘約束的周期對應于IP模塊將運行的最大頻率。 在系統(tǒng)中,這個輸入管腳可與用不同頻率定義的時鐘連接。最后,類 型IV定時約束沒有分層源點。這些約束的示例包括,但不限于set— wire—load—model或set—operating—conditions。定時約束的前三種類型具有根據(jù)模塊端口、實例管腳或網(wǎng)絡所 規(guī)定的特定的源點(或多個源點)。第四種類型的約束沒有特定的源 點。為了確定定時約束是否適用于目標層次的邊界,定義了 "連接云 (connected cloud)"。連接云包括直接與定時約束的源點連接的 網(wǎng)絡、管腳和端口。葉單元(程序庫或黑盒)實例管腳或頂層端口對 連接云進行了范圍限制。中間分層層次不限制連接云?,F(xiàn)在參見圖2,其圖示了類型I定時約束的實施。模塊低層204 的端口 C 202是類型I定時約束的源。連接云包括頂層208的端口 A 206、中間層212的端口 B 210和中間層212的端口 E 214。連接云 不包括中間層212的端口 D 216,這是因為連接云在緩沖器218的輸 入端停止。如下將描述用于處理為低層模塊204定義的類型I定時約 束和基于這些較低層次定時約束為模塊中間層212創(chuàng)建定時約束的 過程。如果連接云的任何部分出現(xiàn)在目標層次的邊界,則定時約束被 傳播。如果連接云未到達該邊界,則定時約束被刪除,并且其不會傳 遞到上一層次。例如,如果中間層212是目標層,并且為模塊低層2 04的端口 C 202定義了 set—i叩ut延時約束(類型I),則所設置的 輸入延時約束被傳播到下一層次模塊中間層212的端口 B 210。如果 為實例12 220的管腳Q定義set—output—delay約束(類型I),則 刪除該約束,這是因為連接云在緩沖器222處停止,不會到達其邊界?,F(xiàn)在參見圖3,其圖示了類型II定時約束的實現(xiàn)。類型II定時 約束均被傳播。根據(jù)需要增加(或去除)分層層次。定義在較低層次 模塊的端口上的類型II定時約束可以成為在目標層次的實例管腳上 的約束。必須通過連接表對假路徑和多循環(huán)路徑進行跟蹤,以識別它們進入或離開目標層次的位置。該跟蹤不在組合邏輯停止。該跟蹤繼 續(xù),直到其到達時鐘元件,或到達頂層的端口,或同一假路徑的另一 端口。在圖3中,更完整地圖示了傳播類型II約束的過程示例。例如,如果為中間層次302定義了約束,并且頂層304是目標層次,則 在中間層次302內(nèi)部從實例管腳I1/A到12/D定義的假路徑將成為從 I3/I1/A到更高層次的管腳I3/I2/D的假路徑。從實例管腳I1/B到 中間層次302的端口 C定義的假路徑308變?yōu)閺腎3/I1/B到管腳13/ C的假路徑。如果為頂層304定義了類型II約束,并且中間層次30 2是目標層次,則從實例引腳I3/I1/A到I3/I2/D定義的假路徑306 變?yōu)閺膶嵗苣_I1/A到12/D的假路徑。從實例管腳I3/I1/B到管腳 14/E定義的假路徑變?yōu)閺膶嵗苣_I1/B到端口 C的假路徑308?,F(xiàn)在參見圖4,其圖示了描述類型III約束的傳播的流程圖。當 在詢問步驟400確定了類型III時鐘約束時,在步驟402,從初始源 開始通過任何緩沖器或反相器(即非分支組合邏輯)對網(wǎng)絡進行向回 跟蹤,直到在詢問步驟404發(fā)現(xiàn)驅(qū)動源點。這可以是頂層端口、時鐘 控制葉(leaf)實例或組合實例。在步驟406,從這個新的源點開始 通過任何組合邏輯向前跟蹤網(wǎng)絡到其控制的所有時鐘控制實例。在步 驟408,任何被運用于組合邏輯的常量值的存在對該向前跟蹤進行修 改。例如,如果組合元件是多路復用器并且在選擇線路上存在常量值, 則服從該選擇。這些常量值可以來自于連接表(例如來自Verilog 中的l, bO的常量零),或來自于其他約束(例如set_case—analys is)。由于網(wǎng)絡被跟蹤,在步驟410,每個被訪問的網(wǎng)絡被標記為時 鐘或常量值。當詢問步驟400確定了常量約束被定義時,不對該約束 向回跟蹤到源。只在步驟406通過組合邏輯對該約束進行向前跟蹤。當來自多于一個IP模塊的約束正在被傳播時,可能存在沖突。 例如,每個IP模塊可能具有其各自的時鐘定義,但是這些均是由同 一源驅(qū)動的。如圖5所圖示,每個時鐘的定義源在解決這種沖突時是 非常重要的。當在步驟502讀取時鐘定義時,在步驟504將其定義源 與先前跟蹤的時鐘進行比較。在步驟506,如果定義源對應于跟蹤的 源,則在步驟508,將這個新讀取的時鐘作為主時鐘來代替向回跟蹤到該源的其他時鐘。其中的一個示例是當存在時鐘產(chǎn)生模塊時,用 定義為來自此模塊的時鐘來代替任何在由該時鐘驅(qū)動的其他IP模塊 中定義的時鐘。如果定義的源不是先前被跟蹤的源,但是先前時鐘己 通過該源被跟蹤,則在步驟510刪除該時鐘。因此在其中讀取約束的 序列是重要的。這可能是這種情況兩個或多個IP模塊中的每一個 均具有其各自的定義,而這些定義實際上是關于同一時鐘的。類型iv定時約束不需要被修改以適用于更高層次。如果對于同一約束類型,存在多個不同的值,諸如不同工作條件,則將最具有限 制性的約束傳播出去。經(jīng)常傳播虛擬時鐘(即不用特定源進行定義的 時鐘)。一些設計工具需要端口 (例如非時鐘輸入端)來具有相對于時 鐘而規(guī)定的特定約束。如果該端口不具有通過從被定義的約束進行傳 播來發(fā)現(xiàn)的這種約束,則產(chǎn)生一種約束。這可通過(從輸出端向后、 從輸入端向前)跟蹤到時鐘控制元件來完成。采用這些元件的最高頻 率時鐘,并且創(chuàng)建延時約束作為這個周期的一部分??梢栽谕獠慨a(chǎn)生針對設計的時鐘,并且通過焊盤將它們引入芯 片上,或者可以在內(nèi)部例如用PLL來產(chǎn)生針對設計的時鐘。提供給這 些時鐘產(chǎn)生源中的任何一個的任何定時約束必須高于從其他IP模塊 跟蹤的時鐘約束。這是因為提供給IP模塊的約束可能針對不適用于當前設計實例的方案。例如,存儲控制器能夠在250MHz下運行,但 是設計僅需要225MHz。在類型III定時約束的過程中,這種情況被 覆蓋了,在解決沖突時,類型III定時約束考慮了時鐘的定義源。該方法可以用于任何分層設計中,其中向單獨的IP模塊提供定 時約束,以及頂層或chiplet層次均需要約束。這種設計包括基于平 臺的設計,諸如Nexperia Home或Nexperia Mobile設計。上述的本發(fā)明和方法的多個變形和實施例是可能的。雖然只有 本發(fā)明和方法的特定實施例在附圖中被圖示以及在上述詳細描述中 被描述了,但是應該理解的是,本發(fā)明不限于所公開的實施例,而是 在不脫離權利要求所定義和提出的本發(fā)明的情況下,能夠進行另外的 重新布局、修改和替換。因此,應該理解,本發(fā)明的范圍包括所有這10種布局并且僅被權利要求所限制。
權利要求
1.一種將定時約束從較低層次設計模塊傳播到較高層次設計模塊的方法,其包括以下步驟設計包含多個設計模塊的電路,多個設計模塊中的每一個均具有與其相關的一組定時約束(104);以及根據(jù)已經(jīng)建立的傳播規(guī)則集,由與多個設計模塊中的每一個相關的每組定時約束來為所述電路創(chuàng)建定時約束(104)的復合組。
2. 根據(jù)權利要求1所述的方法,其中所述創(chuàng)建步驟還包括解決 與多個設計模塊中的每一個相關的多組定時約束(104)之間的沖突 的步驟。
3. 根據(jù)權利要求1所述的方法,其中所述創(chuàng)建步驟還包括以下步驟對于取決于與定時約束相關的模塊實例(204 )的定時約束 (108),確定用于一個定時約束的源點的連接云;確定所述連接云是否到達了電路的至少一個設計模塊(204)的邊界;如果所述連接云到達了所述電路的至少一個設計模塊(204)的 邊界,則將所述定時約束(108)傳播到下一設計模塊(212);以及如果所述連接云未到達所述電路的至少一個設計模塊(204)的 邊界,則刪除所述定時約束(108)。
4. 根據(jù)權利要求1所述的方法,其中所述創(chuàng)建步驟還包括以下 步驟對于不取決于實例前后關系的定時約束(110),沿路徑傳播 定時約束(110),直到至少到達時鐘控制元件、頂層設計的端口或 所述路徑的另一部分中的一個。
5. 根據(jù)權利要求1所述的方法,其中所述創(chuàng)建步驟還包括以下步驟對于不能被推斷出的定時約束(112),確定定時約束是時鐘約 束還是常量約束;如果所述定時約束(112)是時鐘約束; 從初始源向回跟蹤所述定時約束(112)到驅(qū)動源; 將所述定時約束(112)從所述驅(qū)動源向前傳播到所述定時約束 (112)控制的所有時鐘控制實例;如果所述定時約束(112)是常量約束;以及則將所述定時約束(112)從所述初始源向前傳播到所述定時約 束(112)控制的所有時鐘控制實例。
6. 根據(jù)權利要求1所述的方法,其中所述創(chuàng)建步驟還包括以下步驟對于不具有分層源點的定時約束(114),確定定時約束(114)是否具有多個不同的值;以及如果所述定時約束(114)具有多個不同的值,則傳播最具有限 制性的值。
7. 根據(jù)權利要求1所述的方法,其中所述創(chuàng)建步驟還包括由已 定義的定時約束(104)創(chuàng)建延時約束的步驟。
8. 根據(jù)權利要求1所述的方法,其中所述創(chuàng)建步驟還包括用內(nèi) 部或外部產(chǎn)生的時鐘約束來取代從其他設計模塊跟蹤的時鐘約束。
9. 一種設備,用于將定時約束從較低層次設計模塊傳播到較高 層次設計模塊,其包括-計算機可讀介質(zhì),其包含機器可讀代碼,所述機器可讀代碼對 通用計算機進行配置以設計包含多個設計模塊的電路,多個設計模塊中的每一個均具 有與其相關的一組定時約束(104);以及根據(jù)已經(jīng)建立的傳播規(guī)則集,由與多個設計模塊中的每一個相 關的每組定時約束來為所述電路創(chuàng)建定時約束(104)的復合組。
10. 根據(jù)權利要求9所述的設備,其中所述機器可讀代碼進一 步對通用計算機進行配置,以解決與多個設計模塊中的每一個相關的多組定時約束(104)之間的沖突。
11. 根據(jù)權利要求9所述的設備,其中所述機器可讀代碼進一步對通用計算機進行配置以對于取決于與定時約束相關的模塊實例(204)的定時約束 (108),確定用于一個定時約束的源點的連接云;確定所述連接云是否到達了電路的至少一個設計模塊(204)的邊界;如果所述連接云到達了所述電路的至少一個設計模塊(204)的 邊界,則將所述定時約束(108)傳播到下一設計模塊(212);以及如果所述連接云未到達所述電路的至少一個設計模塊(204)的 邊界,則刪除所述定時約束(108)。
12. 根據(jù)權利要求9所述的設備,其中所述機器可讀代碼進一 步對通用計算機進行配置以對于不取決于實例前后關系的定時約 束,沿路徑傳播定時約束(110),直到至少到達時鐘控制元件、頂 層設計的端口或所述路徑的另一部分中的一個。
13. 根據(jù)權利要求9所述的設備,其中所述機器可讀代碼進一 步對通用計算機進行配置以對于不能被推斷出的定時約束(112),確定定時約束是時鐘約 束還是常量約束;如果所述定時約束(112)是時鐘約束; 從初始源向回跟蹤所述定時約束(112)到驅(qū)動源; 將所述定時約束(112)從所述驅(qū)動源向前傳播到所述定時約束(112)控制的所有時鐘控制實例;如果所述定時約束(112)是常量約束;則將所述定時約束(112)從所述初始源向前傳播到所述定時約 束(112)控制的所有時鐘控制實例。
14. 根據(jù)權利要求9的設備,其中所述機器可讀代碼進一步對 通用計算機進行配置以對于不具有分層源點的定時約束(114),確定定時約束(114)是否具有多個不同的值;以及如果所述定時約束(114)具有多個不同的值,則傳播最具有限制性的值。
15. 根據(jù)權利要求9所述的設備,其中所述機器可讀代碼進一 步對通用計算機進行配置以由己定義的定時約束(104)創(chuàng)建延時約 束。
16. 根據(jù)權利要求9所述的設備,其中所述機器可讀代碼進一 步對通用計算機進行設置以用內(nèi)部或外部產(chǎn)生的時鐘約束來取代從 其他設計模塊跟蹤的時鐘約束。
全文摘要
一種將定時約束從較低層次設計模塊傳播到較高層次設計模塊的方法,其包括設計包含多個設計模塊的電路的步驟。多個設計模塊中的每一個均具有與其相關的一組定時約束。根據(jù)已經(jīng)建立的傳播規(guī)則集,由與多個設計模塊的每一個相關的每組定時約束來為該電路創(chuàng)建定時約束的復合組。
文檔編號G06F17/50GK101317179SQ200680044499
公開日2008年12月3日 申請日期2006年11月30日 優(yōu)先權日2005年11月30日
發(fā)明者尼蘭詹·A·普塔斯瓦米, 朱迪思·理查森 申請人:Nxp股份有限公司