Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

適用於等效性檢測的符號模擬

上網時間: 2006年06月14日     打印版  Bookmark and Share  字型大小:  

關鍵字:等效性檢查  驗證  測試基準  邏輯錐  模擬 

目前設計工程師可用的測試功能等效性方法有三種:傳統模擬、基於圓錐(cone-based)的等效性檢查和符號模擬。大多設計工程師僅熟悉前兩種方法,而符號模擬是比較新的技術,進入商用只有幾年的時間。對於上述的幾種方法,每一種方法都有其優勢,而哪種方案最有效則取決於特定的應用。

在過去幾年中,符號模擬被全定製記憶體設計團隊悄然採用。在符號模擬中,像data1、addr7或w_enable這類符號被用作為輸入向量以模擬暫存器傳輸級(RTL)或Spice級電路,而非使用二進制1和0等符號。模擬器會將這些符號從輸入傳送到轉出,同樣不再使用二進制數值。經過比較並對所有可能輸入組合進行驗證後,兩種設計都是等效的。

符號模擬的應用消除了RTL的約束和目前採用基於圓錐之等效性檢查工具的固有電路侷限性。與其它方案不同,這種經過實際驗證的技術使電路設計師能夠直接驗證大型複雜記憶體和巨集單元的功能,而不必對其RTL重新編碼或修改其電路。

另一個關鍵優勢是設計師可以在設計流程中更快速地驗證RTL與Spice模型的比較。目前的符號模擬工具會自動製作測試平台,所以設計工程師可以較早開始設計驗證,而不必等到產生RTL測試平台和Spice測試向量時。

圖1:採用傳統模擬的等效性檢查。

這些新技術可以處理目前Gb級記憶體中典型的複雜網表,因為一個符號向量可以替代2n個二進制向量,其中n是輸入的數量。由於具備巨大的容量,並具備直接讀取Verilog RTL和Spice網表的能力,使之成為記憶體驗證應用的理想方法。

本文介紹了記憶體驗證的關鍵挑戰,描述了符號模擬的實現及其底層技術在驗證全定製電路設計方面的優勢,如記憶體和巨集單元,並提供了在設計流程的早期利用符號模擬經常無法覆蓋之若干類型問題的應用實例。

傳統模擬處理

傳統模擬或許是最可用的通用型驗證方法。為了證明兩個設計等效,驗證團隊只需要在參考設計和實現設計上模擬大量隨機或手動產生的輸入向量,然後檢查相應的輸出是否相同。該結構如圖1所示。

該方法的主要好處是對參考設計或實現模型都沒有約束,除了它們具有相同的埠之外。由於使用了本地模擬器,因此可完全利用兩種語言。

這就意味著參考設計不限於Verilog或VHDL的可合成子集,而該實現可以被模擬到完美的Spice精密度。兩個設計還具有任意不同狀態編碼,甚至可以包含脈衝調變或自定時電路。

該方法的缺點在於完整性不夠。因為潛在輸入向量的數量相對於設計規模的增加呈指數成長,故無論輸入向量的數目多麼大,對設計實現完全模擬都是不可能的。這就意味著在驗證過程中存在大的缺陷,除非設計工程師花大量時間來確保測試向量組全部覆蓋了該設計所有行為。設計師經常採用模擬是因為其簡單且能處理各類設計,但由於缺乏完整性,也迫使大多數設計師尋求更為先進的方法。

基於圓錐的等效性檢查

基於圓錐的等效性檢查(也稱為靜態等效性檢查)已經成為基於單元的設計師廣為應用的方法。正如其名稱所示,基於圓錐的檢查器將參考設計和執行的設計分解為不同的邏輯錐,這些邏輯錐就是以暫存器、埠或黑盒為邊界的邏輯組。因此,每個錐代表一個暫存器的扇入邏輯或被驗證的模組或晶片的初級輸出。該過程如圖2所示。

在等效性檢查期間,每一個錐被匹配到它在其它模型中的對等物,其邏輯功能採用形式分析方法進行比較。如果兩個模型中的每個狀態單元都等同,而兩個設計中每一個單獨的錐對都是邏輯等效的,它們的後續行為將匹配。

基於圓錐的等效性檢查有兩個主要優勢:完整性和效率。當被應用於特定的設計類型時,該方法速度極快。一般地說,當滿足下列條件時,基於圓錐的等效性檢查為用戶帶來的好處最多:

圖2:設計分解成邏輯圓錐。

* 參考模型可以用合成RTL來建構;

* 實現模型中包含閘級或開關級模型;

* 參考和實現模型的狀態點或者已經排成隊列,或者可以透過自動設置方法學排成隊列。

基於圓錐的等效性檢查缺乏靈活性,它不太適合需要驗證非合成模型、電晶體級網表、具有類比行為類的單元或高度規則單元(諸如在記憶體中看到的那些單元)的應用。對於這種設計,符號模擬為設計師提供了第三種選擇。

符號模擬提供的混合方法

符號模擬可視為上述兩種方法的混合。正如在傳統的模擬中,等效性是透過模擬兩個設計並在許多週期上驗證其輸出是否匹配來確定的;而透過採用基於圓錐的等效性檢查的形式技術,符號模擬器能快速並徹底地完成比較,即便是對於超大型設計也是如此。

傳統的模擬施加0和1到輸入端,而符號模擬施加的則是符號,每一個符號可以同時代表0和1。當施加到一個具有n個輸入的模型或網表時,一個符號向量可以取代2n個二進制向量,因此能提供更全面的覆蓋。符號模擬器可將符號方程傳播到輸出以產生用於驗證等效性符號結果,如圖3所示。

輸出端上來自符號模擬器的方程式代表所有輸入組合的結果,可透過對任意符號置1或置0來製作這些不同的組合。因此,因此,其結果與透過帶有完備集之傳統向量模擬所獲得的成果是相同的,而且能以較少的模擬時間提供比傳統模擬更多的覆蓋。

例如,一個256入口的32位元SRAM至少有40個輸入,會產生2(40×4)(>1,050)種可能的4週期向量。即使傳統模擬器能在不到一秒內完成每一次執行,也需要10億個CPU用1,015兆年才能完成模擬運算,然而,對於符號模擬器來說,只需要大約一個小時就可以完成。

符號模擬能夠在任意抽象級比較兩個設計(包括行為RTL或電晶體級Spice),即使兩個設計具有根本不同的狀態編碼。該技術對於全定製記憶體驗證極為有益。正因為如此,它常與基於圓錐的等效性檢查共同驗證包含合成邏輯和全定製模組(如記憶體)的SoC設計。

選擇適當的技術

如圖4所示,上述三種方法可以被列於一個連續體上,其中基於圓錐等效性檢查位於一端而傳統模擬位於另一端。基於圓錐的等效性檢查通常是最完整和有效的方法,但是,對於某些設計類型,它的應用受到限制。傳統的模擬在對各種設計類型的支援方面不受限制,但卻存在嚴重的覆蓋率和完整性問題。

圖3:採用符號模擬的等效性檢查。

符號模擬填補了中、高等容量電晶體驗證空間的間隙。除具備驗證種類繁多的行為模型和電晶體網表外,符號模擬採用時序模型,該模型對於許多種類的全定製設計都有效,包括具有自定時電路或雙穩態類比元件(如感應放大器)的設計。

傳統模擬和符號模擬方法的侷限性在於它們只能在特定週期數上驗證等效性。另一方面,基於圓錐的等效性檢查對於無限長度的向量有效,因為它使獨立的狀態點相互關聯。儘管該方法保證兩個設計具有同樣的順序行為,但也存在侷限性,即功能性必須與設計中的一個狀態點級匹配。

然而,符號模擬卻是用於像記憶體或大多數狀態單元僅提供管線的這些直通設計理想方法。在這些設計中,一個設計順序深度可以被確定且其等效性可以由符號模擬來驗證。

一條良好的經驗法則是:基於模擬的方法最適合於大多數狀態單元保持的是數據而不是控制資訊的設計,這就包括記憶體、FIFO、暫存器檔案、管線執行單元等。

該對比還彰顯了二進制和符號模擬的另外一個好處,即RTL和電晶體網表的功能性只需要在模組邊界匹配。這種大範圍地利用變量編碼的能力,為設計團隊在選擇實現方案時提供了完全的自由。

一般地說,如果基於圓錐的等效性檢查可以滿足設計驗證需要,就應該將其作為首選的方法,因為它速度快且運算量小。然而,如果上述約束中的任何一條不能滿足,且設計主要是數位屬性,那麼,基於符號模擬的等效性檢查應該是首選。

最後,如果設計包含類比部份,如PLL、A/D和D/A,那麼,設計師可能被迫依賴具有隨機或手動產生用於等效性檢查的向量的傳統模擬方法。符號模擬技術通常適用於內含轉化為數位輸出的類比功能設計,對於這類設計,基於圓錐的等效性檢查無法良好支援。這類電路包括記憶體感應放大器、I/O電平移位器和脈衝產生器。

定製設計師面臨電路挑戰

儘管全定製數位電路(如記憶體和I/O單元)向基於圓錐的等效性檢查工具提出了許多問題,但它們特別適用於符號模擬。以下將討論以符號模擬作為首選等效性檢查方法的範例。雖然這些範例與全定製記憶體設計師關係密切,但值得注意的是庫開發人員也會從該技術獲益,因為它處理的不僅僅是標準組合閘。例如,採用基於符號模擬的工具可以方便地讀取和驗證動態邏輯。

1.行為模型

像嵌入式SRAM、ROM和暫存器檔案這樣的記憶體模型,通常都用行為語言Verilog編寫,這是因為它們易於編寫且對於全晶片模擬極為有效。通常希望這些模型能代表設計預期行為,而不是實際結構或實現,並且在大多情形下,不能被合成到觸發器和組合邏輯之中。

因為基於圓錐的等效性檢查工具要求模型被描繪成組合邏輯,故行為模型必須被轉換成基於功能等效的狀態表示法,如RTL。這可能是一項困難的任務,至少容易出錯,以至於把不必要的約束強加給邏輯設計師而使生產率降低。符號模擬直接處理行為程式碼,因而消除了這些約束。

2.脈衝觸發器

脈衝訊號常見於高性能的數據通道設計之中,而大多數脈衝訊號都是採用延遲電路產生的。因為基於圓錐的等效性檢查器不處理電路延遲,故對於基於脈衝的邏輯就無法檢查到。一個替代的方法是,要求設計師用緩衝器‘偽造’該脈衝,並將該脈衝擴大到一個時脈相位。

這大幅提升了建模工作的複雜性,並降低了驗證結果的可信度。當符號模擬與定時精確的模型一起使用時,須考慮電路延遲並驗證基於脈衝的邏輯等效性。

3.自定時電路

自定時電路常被用於改善SRAM讀取作業的定時。反向器延遲鏈路的設計很簡單,但是難以伸縮,特別是對需要產生容量為數千位元到幾百萬位元組記憶體的編譯器。此外,反向器鏈路延遲不能在整個過程中可靠地追蹤讀取電路的定時。對於先進的SRAM設計,經常採用虛擬行(dummy column)複製技術。基於圓錐的等效性檢查器不能為延遲電路或手動自定時電路建模。因此,它們無法驗證任何其定時由虛擬行確定的記憶體設計等效性。定時精確的符號模擬可以對自定時電路建模。

4.雙向電晶體

典型的行解碼器電路需要四個由行選擇訊號控制的傳遞電晶體。這些電晶體的方向依賴於記憶體當時展現的是讀取或寫入作業。雙向行為在閘級上無法方便地建模,其中最等效的很像一個多工器。

由於基於圓錐的等效性檢查器將電晶體抽象到閘級,因此除非提供相當複雜的手工模型,否則它們不能處理雙向電晶體,這進一步增加了建模的難度並降低了結果的可信度。因為符號模擬不依賴於邏輯抽象技術,故它能夠驗證邏輯功能,而不僅僅是電路拓樸。

5.感應放大邏輯

感應放大器技術在高性能數據通道電路和記憶體中日益普及。記憶體所用的放大器可以設計成電流感應放大器或者電壓感應放大器。

因為基於圓錐的等效性檢查器假設所有訊號都是全滿幅訊號,它們無法驗證具有感應放大器的電路,除非包含感測器放大器的電路模組被手動產生的模型取代。這種建模工作既冗長乏味又易於出錯,特別是將附加邏輯嵌入到感測器放大器模組之中時。儘管感測器放大器本質上是類比電路,它們還是可以透過符號模擬外加先進的電路建模技術來驗證。

6.將符號模擬應用到定製電路

符號模擬技術在整個設計過程中都可以應用。用在流程的初期,符號模擬可以識別一般模擬需要幾天才能發現的簡單錯誤。隨著模擬模型和電路設計成熟,符號模擬可以被用來標記那些只是非法定條件的虛假錯誤。

圖4:各種等效性檢查方法的整體情況。

一旦恰當地設定約束條件,這些類型的錯誤就消除了。最後,符號模擬可以被用於檢入(Check-In)測試。採用該技術,測試被編入設計流程並自動執行,以確保後級變化導入到RTL模型或Spice網表的任何錯誤,都能在它們被不正確地導入到正式的一系列模擬模型或電路設計之前被迅速發現。

7.利用符號模擬

現在的符號模擬工具可以處理範圍寬廣的定製記憶體、庫及巨集單元。單、雙或多埠RAM可以快速執行,設立時間很短。由於具有不受RTL約束或電路侷限性而直接讀取RTL模型和Spice網表的能力,使設計師能在設計流程初期使用工具而不必等到測試模型被開發出來。目前所實現的精密度和‘電路智慧’意味著設計師可以快速設置和執行工具,而不必擷取具體的電路資訊或者諸如感應放大器和脈衝產生器之類的‘黑盒’功能。

僅需少許經驗,設計師就可以設立新的邏輯模組並在數小時內執行。實現高速迴圈執行的執行速度非常快,通常為秒級或分級。這種快速周轉時間有助於快速識別基本錯誤。隨著設計成熟,執行時間通常在一或數小時內到達最高點,這個時間對於驗證複雜的記憶體和巨集是足夠的。

由於這些工具提供所有可能輸入條件下全面的模型與網表的對比分析,設計師必須清楚,對於正常的電路作業來說,哪些輸入組合不應該或不可能產生。當驗證模組級功能時尤其如此,因為符號模擬在發現設計師可能沒有考慮到的組合時非常有效。一方面,所有可能條件下都能實現的這種驗證功能,可以使驗證極為徹底,但另一方面,它也可能導致虛假的錯配。

例如,如果設計師沒有意識到不符合規定的奇怪或不尋常的輸入埠組合,並試圖驗證適當的作業的話,上述情況就有可能產生。在這樣的情形下,設計師必須花時間來約束適當的輸入,以防止這些組合被驗證。

雖然要小心應用這些基於符號模擬的工具,但除了使用它們明顯的功能之外,用它們來發現模擬模型和Spice電路之間的差異也有許多好處。例如,除錯方面的差異就是基於圓錐的工具、向量工具和符號模擬工具之間差異的具體例證。

符號模擬執行很快,因為一個符號可以替代許多向量。當發現差異時,模擬自動地在向量模型中重新執行,並棄置顯示錯配的二進制向量。然後,用這些二進制向量比較波形,使差異能夠快速查明。

從符號模擬錯誤檢測開始到驅動波形顯示的這些二進制向量的建構,時間差通常為幾分鐘或更短時間。當採用傳統的基於向量的模擬進行除錯時,設計師常常要分析已經執行了成百上千週期的巨大向量集。

這樣的錯誤在故障顯現於輸出接腳上很早之前就產生了。在這種情況下,已經證明符號模擬使生產效率改善了幾十到幾百倍,因為它會產生來證明錯誤的最簡單的可能向量,消除了巨量的無關數據。

8.發現問題的範例

在設計流程中的早期執行符號模擬已經被證明是有用的,因為該工具執行快速,並能被用來盡早地發現問題。這很重要,因為全定製數位設計包括更為高階的人工設計,而基於合成的設計傾向於在設計流程的後期由人工介入微調設計結果。

全定製記憶體設計問題被分為三類:1.匯流排貼錯標籤,行解碼器多工器輸入線被切換;記憶體單元互連線不適當地連接,線懸空及其它簡單的連接錯誤或邏輯錯誤。2.不適當的寫入/讀取順序,特殊情況未被模擬模型適當或完整地定義,介面錯配以及其它模擬模型錯誤或差異。3.位元單元作業問題,感應放大器發熱問題,自定時迴路問題以及其它電路級問題。

顯然,在投片之前找到錯誤無疑是很重要的,而能更快地標記出錯誤的工具則具有極大的好處。在這種情形下,設計師被回報以更高的生產率,因為糾正設計流程早期發現的錯誤要容易得多。符號模擬普及的另外一個原因是它在完成RTL測試基準和模擬測試模型之前就能使用。

本文小結

對於一些目前較大和較複雜的記憶體,在利用符號模擬技術完成驗證前還需要其它的設備。儘管電路除錯問題直截了當,當映射電晶體網表和RTL模型之間的差異時,很多時侯要花費比預期更多的時間。

與目前所有可用的EDA工具一樣,符號模擬工具將繼續為設計師帶來收益,包括提高性能、增強除錯能力以及幫助診斷。圖形用戶介面不僅有利於新用戶在設計階段盡早採用該工具,而且提高了有經驗用戶的效率。

作者:Paul Hoxey

VLSI設計經理

ARM公司

Clayton McDonald

電路研發經理

David Guinther

產品行銷經理

新思科技




投票數:   加入我的最愛
我來評論 - 適用於等效性檢測的符號模擬
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首