在rtl模擬中兌現多循環路徑語義的技術的制作方法
【專利摘要】本發明提供了一種包括關于多循環路徑的信息的經改善RTL模擬。在設計約束文件中可供使用的多循環路徑信息可被用于在RTL模擬中進行時序分析。該信息可有利地增大RTL模擬引擎以逼近目的地寄存器處的循環延遲,由此提供RTL級的電路表現的更現實近似。尤其,RTL模擬比門級模擬快若干數量級。此外,相比等待直到門級模擬,在RTL模擬過程中與多循環路徑關聯的設計缺陷更容易被校正。
【專利說明】在RTL模擬中兌現多循環路徑語義的技術
【背景技術】【技術領域】
[0001]本發明涉及寄存器傳輸級(RTL)模擬,尤其涉及在RTL模擬過程中納入多循環路徑信息的技術。
[0002]相關技術
[0003]集成電路(IC)設計的一些組合路徑是多循環的,即從源的轉移不期望在一個循環內到達目的地。一般來說,多循環路徑起因于實現約束因素,例如向指示設計中的具體路徑的具體延遲的工具的用戶指向。換句話說,用戶可指示一具體的源需要設定數量的循環(例如2次、3次或4次循環)來經由具體路徑將其值送至具體目的地。由用戶設定的延遲循環數可起因于路徑中出現的居間組合邏輯的類型和/或量。
[0004]這些多循環路徑在邊帶文件中提供作為對合成工具的設計約束命令,所述合成工具產生門/網表級描述,以及在時序分析中使用以驗證時序約束的時序分析工具。注意對合成和時序分析工具的代碼輸入僅提供用于連接源/目的地的路徑的源和目的地之間的組合邏輯傳遞函數。然而,當執行合成和時序分析時,合成和時序工具將訪問邊帶文件以確保設計約束命令被考慮在內。
[0005]然而,在寄存器傳輸級(RTL)模擬(其訪問RTL描述并驗證正確的系統操作),不使用該信息。具體地說,在RTL中,所有組合路徑被特征化為零延遲,即單個循環。因此,多循環路徑上的轉移在一個循環內到達目的地。不幸的是,這種較早的轉移可能導致不正確的模擬結果并可能掩蓋設計缺陷。例如,預期多循環路徑在一個循環中傳播轉移的任何設計瑕疵將錯誤地通過RTL模擬。
[0006]這些多循環路徑缺陷可能稍后在門級模擬期間被捕獲,其詳細時序被注釋給門。然而,這種分析在設計循環中非常晚并且除了非常性能密集和緩慢外通常涉及驗證、合成和布局&走線的昂貴迭代。因此,門級模擬在商業上無法實現以彌補較多量的多循環路徑缺陷。在最壞的情形下,多循環路徑缺陷可能無法被檢測到直到下線(tape out)為止,由此造成一個或多個掩模的重制(re-spin)。
【發明內容】
[0007]描述了一種用于改善寄存器傳輸級(RTL)模擬的方法。在該方法中,對于設計的RTL文件和邊帶文件可被訪問。RTL文件描述包括這些路徑的源和目的地的設計的路徑。源和目的地可包括觸發器或設計的其它狀態器件。
[0008]然后,可識別邊帶文件的設計約束。這些設計約束包括多循環路徑。可使用計算機,通過復制多循環路徑的多個部分以創建復制的多循環路徑、在復制的多循環路徑中插入延遲以及將原始多循環路徑從它們的源截斷來修正設計。在這一點,包括多循環路徑信息的經修正設計可被模擬。
[0009]多循環路徑的復制部分可包括多循環路徑的復制和組合邏輯。在一個實施例中,至少連接至多循環路徑的源的組合邏輯可被復制。在另一實施例中,多循環路徑的所有組合邏輯被復制。在又一實施例中,可將經復制的組合邏輯最小化以確保每個多循環路徑的插入延遲僅影響該多循環路徑。
[0010]插入延遲可以是可控的。在一個實施例中,這些延遲可由用戶選擇。每個延遲可落在由用戶規定的范圍內或小于由用戶規定的最大延遲。每個延遲可用于一個或多個RTL模擬。在一個實施例中,可根據多循環的值對設計進行修正。
[0011]還描述了存儲用于改善寄存器傳輸級(RTL)模擬的計算機可執行指令的計算機可讀介質。當由計算機執行時,這些指令可執行前述的步驟。還描述了一種用于改善寄存器傳輸級(RTL)模擬的系統。該系統可包括被配置成執行前述步驟的處理器。
【專利附圖】
【附圖說明】
[0012]圖1A示出包括具有居間組合邏輯的多個源和目的地的設計。在這種設計中,已指定一個多循環路徑。
[0013]圖1B示出可出現在具有指定的多循環路徑的圖1A設計中的多個單循環路徑。
[0014]圖1C示出可能導致錯誤分析的具有布局延遲的圖1B的設計。
[0015]圖2A示出具有多循環路徑的復制部分及其相關延遲的圖1B的設計。
[0016]圖2B示出具有多循環路徑的另一復制部分及其相關延遲的圖1B的設計。
[0017]圖3示出提供改善的RTL模擬的技術。
[0018]圖4解說示例性數字ASIC設計流的簡化示圖。
【具體實施方式】
[0019]根據改善的RTL模擬的一個方面,有關多循環路徑的信息可被訪問和使用。具體地說,在設計約束文件中可供使用的多循環路徑信息可被訪問和用于在RTL模擬中進行時序分析。該信息可有利地增大RTL模擬引擎以逼近目的地寄存器處的循環延遲,由此提供RTL級的電路表現的更現實近似。尤其,RTL模擬比門級模擬快幾個數量級。此外,相比等待直到門級模擬,在RTL模擬過程中更容易校正與多循環路徑關聯的設計缺陷。因此,相比傳統RTL模擬,用多循環路徑信息改善RTL模擬在驗證置信度方面提供了顯著改善。
[0020]圖1A示出一種簡化設計100,其包括多個源101-104、多個多目的地111-114以及居間組合邏輯110。注意,源和目的地可通過狀態器件實現,例如觸發器或其它寄存器。此外注意,源和目的地可具有一一對應以外的關系。例如,源101可具有兩個目的地113、114。在其它實施例中,多源可具有相同的目的地,例如源103、104具有單個目的地111。
[0021]尤其,在典型設計中,多循環路徑與單循環路徑相互混合。例如,在圖1A中,在源103和目的地112之間指定多循環路徑120。源101-104和目的地111-114 (為簡化起見未示出)之間的其它路徑是傳統的單循環路徑。
[0022]根據改善的RTL模擬,邊帶文件(例如在門級模擬期間通常使用的設計約束文件)可指示從與多循環路徑120關聯的源103的任何轉移將在N個時鐘循環(其中N是由用戶設定的正整數)后到達目的地112。該延遲值改變將被并入驅動目的地112的任何邏輯錐(即如果有的話將多個源考慮在內)。注意對于驅動目的地112的所有其它源來說,那些其它源的轉移將在單個循環內到達目的地112。在圖1A所示的配置中,目的地111、113和114關聯于單個循環路徑并因此由當前值驅動。如下面更詳細描述的那樣,只有從源103至目的地112的值(即指定的多循環路徑120)應當被延遲。[0023]圖1B示出可出現在具有多循環路徑120的設計100中的多個單循環路徑。注意,組合邏輯110 (圖1A)包括組合邏輯110A、110BUIOC和IIOD。在設計100中,源101、102和103具有通過組合邏輯IlOB至目的地111的單循環路徑。源104具有通過組合邏輯IlOD至目的地113、114的單循環路徑以及通過組合邏輯IlOC至目的地112的單循環路徑。
[0024]尤其,RTL模擬工具不具有實際的電路實現和時序細節。因此,RTL工具無法沿多循環路徑分配延遲。然而,僅在多循環路徑的輸入或輸出處設置延遲可能會導致錯誤的分析。例如,圖1C示出設置在多循環路徑120的輸入處的延遲120。不幸的是,盡管延遲120提供多循環路徑120的正確延遲,但它向源103和目的地111之間的路徑提供錯誤的信息。類似地,設置在多循環路徑120輸出處的延遲130將錯誤信息提供給源104和目的地112之間的路徑。
[0025]因此,為了確保與多循環路徑關聯的延遲不干擾任何其它路徑,改善的RTL模擬工具可復制多循環路徑的一些部分并從其源斷開/截斷原始設計中的原始多循環路徑。例如,圖2A示出設計200,該設計200復制一部分多循環路徑120以創建經修正的多循環路徑201。在該實施例中,RTL工具可復制多循環路徑120的包括組合邏輯110的部分,由此創建新的組合邏輯110A’。在這種配置中,多循環路徑201將源103經由組合邏輯IlOAIPIlOC連接至目的地112,并且延遲210可被設置在多循環路徑201的輸入處。尤其,延遲210將不影響設計200中的任何其它路徑。在這一點,多循環路徑210可在其原始源(即節點220)處被截斷,由此允許RTL工具有效地忽略其對設計200的作用。注意,這種截斷也不影響設計200中的任何其它路徑。
[0026]在另一實施例中,多循環路徑120可完全被復制(除了源和目的地),如圖2B的設計200’所示那樣。在該實施例中,經修正的多循環路徑240包括新的組合邏輯110A”和新的組合邏輯110C’。在這種配置中,經修正的多循環路徑240將源103經由組合邏輯110A”和110C’連接至目的地112,并且延遲241可被設置在多循環路徑240的輸入處。尤其,延遲241將不影響設計200’中的任何其它路徑。同樣,多循環路徑210可在其輸入(即在節點220)處被截斷,由此允許RTL工具有效地忽略其對設計200’的作用。
[0027]在一個實施例中,多循環路徑的被復制的實際部分可基于設計中出現的具體邏輯扇入(fan-1n)和扇出(fan-out)。具體地說,每個多循環路徑的被復制的部分可由最小量被復制的組合邏輯確定,所述最小量被復制的組合邏輯確保設計中沒有其它路徑受到影響。在該實施例中,RTL工具將首先創建設計200 (圖2A)并判斷是否影響到任何其它路徑。如果否,則RTL工具可將多循環路徑201保存在經修正的設計文件中以供RTL模擬期間使用。如果是,則RTL工具可復制更多的組合邏輯以創建設計200’(圖2B)。重復這個過程,直到經復制的組合邏輯導致不影響設計中的任何其它路徑的多循環路徑。在該實施例中,對于圖2A所示的配置,RTL工具將保存多循環路徑201并且不前進至圖2B所示的配置。
[0028]注意,設計200 (圖2A)和設計200’ (圖2B)在功能上與設計100 (圖1B)相同。即,
[0029]目的地11 l=f (源 101,源 102,源 103)
[0030]目的地112=f?(源 103,源 104)[0031]目的地113=f (源 104)
[0032]目的地114=f (源 104)
[0033]事實上,多循環路徑的復制部分不在所制造的IC中產生實際新的路徑。換句話說,多循環路徑的經復制部分在RTL模擬期間僅由RTL工具使用。
[0034]圖3示出提供改善的RTL模擬的示例性技術。在步驟301,RTL工具訪問用戶RTL文件(它指示設計中的所有路徑,包括源和目的地)以及邊帶文件(它包括一個或多個設計約束)。在步驟302中,RTL工具識別設計約束并修正RTL文件中提供的設計。這種修正包括:產生多循環路徑的經復制部分(它們被標識為邊帶文件中的設計約束);以及在經修正的多循環路徑的輸入處插入延遲。如前所述,多循環路徑的各個部分的復制可包括路徑的組合邏輯。原始多循環路徑可從其源被截斷。在步驟303,RTL工具模擬經修正的設計以在RTL級產生精確的時序結果。步驟304可輸出這些時序結果。
[0035]尤其,插入的延遲現在可以是完全可控的。也就是說,回來參見圖2A,用戶能容易地將延遲210規定為具有多個延遲,其中第一模擬可使用第一延遲210,第二模擬可使用第二延遲210,等等。在一個實施例中,RTL工具可對一個模擬使用由用戶規定的最大延遲值并隨后自動地使用比該最大規定的延遲更小的一個或多個延遲值來執行另外的模擬。在另一實施例中,RTL工具可使用由用戶規定的延遲值范圍內的一個或多個延遲值。如前面提到的,可在一個或多個RTL模擬中使用這些延遲。
[0036]典型的設計具有有限數量的多循環路徑,例如低于路徑總數的I %。因此,該多循環路徑的復制部分的模擬具有非常小的凈空,同時允許RTL工具將具體多循環路徑的多循環信息考慮在內,而不影響設計中的任何其它路徑。
[0037]圖4示出可包括具有多循環路徑信息的RTL模擬的示例性數字ASIC設計流的簡化示圖。在高層,該過程始于產品理念(步驟400)并且在EDA軟件設計過程中實現(步驟410)。當設計最終定稿時,其可被下線(事件440)。在下線之后,發生制造過程(步驟450)和封裝及組裝過程(步驟460),最終得到完工的芯片(結果470)。
[0038]EDA軟件設計過程(步驟410)實際包括數個步驟412-430,出于簡單起見這些步驟以線性方式示出。在實際ASIC設計過程中,特定設計可能不得不回退歷經各步驟直到通過某些測試。類似地,在任何實際的設計過程中,這些步驟可能以不同次序和組合發生。本說明書因此借助于上下文和一般化解釋來提供,而不是作為用于特定ASIC的具體或推薦的設計流來提供的。
[0039]現在將提供EDA軟件設計過程(步驟410)的組成步驟的簡要描述。系統設計(步驟412):設計人員描述他們想要實現的功能性,他們可執行假設情景(what-1f)規劃以精煉功能性、核查成本等等。硬件-軟件架構劃分可在這一級發生。在此步驟可使用的來自Synopsys 公司的不例性 EDA 軟件產品包括 Model Architect、Saber、System Studio、以及Designffare ?產品。
[0040]邏輯設計和功能驗證(步驟414):在該階段,編寫用于系統中的模塊的VHDL或Verilog代碼,并且檢查該設計的功能準確性。更具體地,檢查該設計以確保其產生正確的輸出。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括VCS、VERA,DesignWaii R fcgellan、Formality、ESP以及LEDA產品。在一個實施例中,使用多循環路徑信息的經改善RTL模擬可在步驟414中執行。[0041]合成及測試設計(步驟416):這里,VHDL/Verilog被轉譯成網表。可針對目標技術對該網表進行優化。另外,發生對測試的設計和實現以準許對完工的芯片進行檢查。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括Design Compiler PowerCompiler、DFTMAX> TetraMAX、以及 DesignWare ?產品。
[0042]網表驗證(步驟418):在此步驟,檢查網表對時序約束的順應性以及與VHDL/Verilog源代碼的對應性。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括 Formality、PrimeTime> 以及 VCS 產品。
[0043]設計規劃(步驟420):這里,構造芯片的整體平面布置圖并分析其時序和頂層走線。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括Astro和ICCompiler (編譯器)產品。
[0044]物理實現(步驟422):在此步驟發生布局(電路元件的定位)和走線(這些電路元件的連接)。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括Astro和ICCompiler 產品。
[0045]分析和提取(步驟424):在此步驟,在晶體管級驗證電路功能,這進而準許假設情景(what-1f)精煉。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括AstroRail、PrimeRail、Primetime、以及 Star RC/XT 產品。
[0046]物理驗證(步驟426):在該步驟,執行各種檢查功能以確保以下各項的正確性:制造、電氣問題、光刻問題和電路。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括Hercules產品。
[0047]分辨率增強(步驟428):此步驟涉及對版圖的幾何學操縱以改善設計的可制造性。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括Proteus、ProteusAF以及PSMGen產品。
[0048]掩模數據制備(步驟430):此步驟提供“下線”數據以用來產生光刻掩模,以用于產生完成的芯片。在此步驟可使用的來自Synopsys公司的示例性EDA軟件產品包括CATS (R)廣品系。
[0049]具有多循環路徑信息的RTL模擬可以有利地在一個或多個計算機程序中實現,該一個或多個計算機程序在包括耦合的至少一個可編程處理器的可編程系統上執行,該至少一個可編程處理器用于從和向數據存儲系統、至少一個輸入設備和至少一個輸出設備接收和發送數據和指令。每一個計算機程序都可以用高級過程或面向對象編程語言、或者在需要時用匯編或機器語言來實現;并且在任何情況下,該語言都可以是經編譯或經解釋的語言。合適的處理器包括例如通用和專用微處理器以及其它類型的微控制器。一般而言,處理器將從只讀存儲器和/或隨機存取存儲器接收指令和數據。一般而言,計算機將包括用于存儲數據文件的一個或更多個大容量存儲設備;這類設備包括諸如內置硬盤和可移動盤等磁盤、磁光盤和光盤。適于有形地實施計算機程序指令和數據的存儲設備包括所有形式的非易失存儲器,例如包括:半導體存儲設備,諸如EPROM、EEPROM和閃存設備;磁盤,諸如內置硬盤或可移動盤;磁光盤;以及⑶ROM盤。上述各項中的任一個可由專用集成電路(ASIC)補充或被結合在ASIC中。
[0050]本文中所描述的實施例不旨在是窮盡性的,或者將本發明限于所公開的確切形式。由此,許多修改和改變將是顯而易見的。因此,本發明的范圍旨在由所附權利要求書及其等效物定義。
【權利要求】
1.一種用于改善寄存器傳輸級(RTL)模擬的方法,所述方法包括: 訪問一設計的RTL文件和邊帶文件; 標識所述邊帶文件中的設計約束,所述設計約束包括多循環路徑; 使用計算機,通過復制多循環路徑的各部分以創建經修正的多循環路徑、在經修正的多循環路徑中插入延遲以及將多循環路徑從其源截斷來修正設計;以及 在所述RTL模擬過程中模擬所述經修正的設計。
2.如權利要求1所述的方法,其特征在于,復制所述多循環路徑的各部分包括復制所述多循環路徑的某些組合邏輯。
3.如權利要求2所述的方法,其特征在于,復制所述多循環路徑的各部分包括復制所述多循環路徑的全部組合邏輯。
4.如權利要求2所述的方法,其特征在于,所述延遲是可控的。
5.如權利要求2所述的方法,其特征在于,所述延遲是可由用戶選擇的。
6.如權利要求2所述的方法,其特征在于,每個延遲在由用戶規定的范圍內,并可用于一個或多個RTL模擬。
7.如權利 要求2所述的方法,其特征在于,每個延遲小于由用戶規定的最大延遲,并可用于一個或多個RTL模擬。
8.一種存儲用于改善寄存器傳輸級(RTL)模擬的計算機可執行指令的計算機可讀介質,當由計算機執行時所述指令執行下列步驟,包括: 訪問一設計的RTL文件和邊帶文件; 標識所述邊帶文件中的設計約束,所述設計約束包括多循環路徑; 通過復制多循環路徑的各部分以創建經修正的多循環路徑、在經修正的多循環路徑中插入延遲以及將多循環路徑從其源截斷來修正設計;以及 在所述RTL模擬過程中模擬所述經修正的設計。
9.如權利要求8所述的計算機可讀介質,其特征在于,復制所述多循環路徑的各部分包括復制所述多循環路徑的某些組合邏輯。
10.如權利要求9所述的計算機可讀介質,其特征在于,復制所述多循環路徑的各部分包括復制所述多循環路徑的全部組合邏輯。
11.如權利要求9所述的計算機可讀介質,其特征在于,所述延遲是可控的。
12.如權利要求9所述的計算機可讀介質,其特征在于,所述延遲是可由用戶選擇的。
13.如權利要求9所述的計算機可讀介質,其特征在于,每個延遲在由用戶規定的范圍內,并可用于一個或多個RTL模擬。
14.如權利要求9所述的計算機可讀介質,其特征在于,每個延遲小于由用戶規定的最大延遲,并可用于一個或多個RTL模擬。
15.一種用于改善寄存器傳輸級(RTL)模擬的系統,所述系統包括處理器,所述處理器被配置成執行下列步驟,包括: 訪問一設計的RTL文件和邊帶文件; 標識所述邊帶文件中的設計約束,所述設計約束包括多循環路徑; 使用計算機通過復制多循環路徑的各個部分以創建經修正的多循環路徑、在經修正的多循環路徑中插入延遲以及將多循環路徑從其源截斷來修正設計;以及在所述RTL模擬過程中模擬所述經修正的設計。
16.如權利要求15所述的系統,其特征在于,復制所述多循環路徑的各部分包括復制所述多循環路徑的某些組合邏輯。
17.如權利要求16所述的系統,其特征在于,復制所述多循環路徑的各部分包括復制所述多循環路徑的全部組合邏輯。
18.如權利要求16所述的系統,其特征在于,所述延遲是可控的。
19.如權利要求16所述的系統,其特征在于,所述延遲是可由用戶選擇的。
20.如權利要求16所述的系統,其特征在于,每個延遲在由用戶規定的范圍內,并可用于一個或多個RTL模擬。
21.如權利要求16所述的系統,其特征在于,每個延遲小于由用戶規定的最大延遲,并可用于一個或多個RTL模擬`
【文檔編號】G06F17/50GK103548026SQ201280021607
【公開日】2014年1月29日 申請日期:2012年2月28日 優先權日:2011年3月3日
【發明者】K·蒂, B·P·格帕蘭, D·戈斯瓦密 申請人:辛奧普希斯股份有限公司