引言 下一個(gè)抽象級別建立在事務(wù)級建模(TLM)基礎之上。創(chuàng )建TLM IP作為黃金源碼后,設計團隊可簡(jiǎn)化IP創(chuàng )建和復用,在功能驗證上節省人力物力,并減少bug。設計迭代減少,原因是TLM驗證比RTL驗證快得多,且架構選擇在RTL驗證進(jìn)行之前就能得到確定。此外,事務(wù)級模型可用于軟硬件協(xié)同驗證,并可組成用于早期軟件開(kāi)發(fā)的虛擬平臺的一部分。所有這些優(yōu)勢將大幅提升設計效率。 TLM通過(guò)函數調用而非信號或線(xiàn)路進(jìn)行模塊間通信。它允許用戶(hù)分析讀或寫(xiě)這些事務(wù),而不用擔心底層邏輯的實(shí)現和時(shí)序。SystemC是開(kāi)發(fā)可復用、可互用 TLM IP的最佳語(yǔ)言標準。此外,因為SystemC建立在C++基礎上,它還允許對C語(yǔ)言算術(shù)函數的完全復用。開(kāi)放SystemC行動(dòng)(OSCI)為T(mén)LM模型定義了若干抽象層,分別是程序員視角(無(wú)定時(shí))模型、寬松定時(shí)模型和近似定時(shí)模型。 Cadence設計系統公司目前提供一種全面的SystemC TLM驅動(dòng)式IP設計與驗證解決方案,包括方法學(xué)指南、高階綜合、有TLM感知的驗證以及客戶(hù)服務(wù),推動(dòng)用戶(hù)向TLM驅動(dòng)設計與驗證流程轉變。 要求對RTL進(jìn)行改變的關(guān)鍵難題 在RTL中,有限狀態(tài)機的結構要進(jìn)行充分描述。這意味著(zhù),在編寫(xiě)RTL時(shí)需關(guān)注微架構詳情,如存儲器結構、流水線(xiàn)、控制狀態(tài)或最終實(shí)現中使用的ALU等。 這一要求導致更長(cháng)、可復用性更低的設計與驗證流程。 有時(shí)當TLM用于當前流程時(shí),現有的基于RTL的流程需要進(jìn)行兩次設計意圖手工輸入——一次在系統級、一次在RTL級。這種過(guò)程粗笨低效且易出錯。架構直至產(chǎn)生RTL后才能確定,而重新確定IP目標成本很高。一個(gè)真正的TLM驅動(dòng)式設計與驗證流程將只需要一次設計意圖簡(jiǎn)單的表達,并提供一條自動(dòng)化的轉換方法。 從RTL開(kāi)始查找和解決架構問(wèn)題過(guò)程長(cháng),代價(jià)高 RTL驅動(dòng)式設計方法學(xué)的一大問(wèn)題是,一種架構是否能實(shí)現,直到建立了RTL并對其進(jìn)行驗證后才能確認。由于RTL是架構的直接表示,大部分RTL設計師不得不同時(shí)探究功能正確性、架構和設計目標。這導致很長(cháng)的周期,始于做出架構決定,終止于驗證功能性。通常,設計與驗證團隊會(huì )發(fā)現需要修改架構的功能性 bug,每次發(fā)現這樣的bug就需要重新開(kāi)始整個(gè)周期。 在RTL上復用IP設計限制了架構靈活性 當今SoC中,可能有高達90%的IP模塊來(lái)自以前項目的復用。但是,當IP的黃金源碼為微架構級別時(shí),復用是很困難的。重定RTL IP的微架構目標費力且容易出錯。目標系統應用可能差別很大,意味著(zhù)不通過(guò)重新架構,僅通過(guò)簡(jiǎn)單復用,新的SoC設計目標是不能達到的。例如,RTL設計師可能需要將設計重新分割成RTL塊、改變流水線(xiàn)級數、或創(chuàng )建新的存儲器架構,因為在原有IP中,這些微架構詳情都是固定和預先決定的。 RTL功能驗證時(shí)間比當前技術(shù)的最高吞吐量增加得更快 在很多SoC項目中,功能驗證已成為主要瓶頸。RTL功能驗證開(kāi)始時(shí),在系統級的大量驗證投入已然損失。雖然驗證規劃、指標驅動(dòng)式驗證等方法使設計團隊尚能應付當前的大部分驗證難題,但時(shí)間限制和日益增多的門(mén)數正在使驗證變得難以為繼。RTL功能驗證所需時(shí)間可能隨設計的增大而呈指數式增長(cháng),因為相互作用的各種模式及該IP需要測試的許多軟硬件配置導致了各種極端情形,它們也需要進(jìn)行驗證。 RTL是有精確時(shí)鐘周期的,涉及的代碼行遠多于TLM邏輯。對RTL模型進(jìn)行仿真時(shí),仿真器檢查所有事件或時(shí)鐘周期,即使在協(xié)議級上并未發(fā)生任何重大情況。仿真器要在微架構詳情上浪費大量機器周期,而這些需要在架構確定后才能確認。TLM仿真在更高抽象級別進(jìn)行,能更早完成,并提供更高性能。 TLM正是需要的解決方案 TLM驅動(dòng)的設計和驗證流程可實(shí)現在功能級別上描述IP,然后在快速仿真中驗證事務(wù)的功能行為。TLM流程的主要優(yōu)點(diǎn)包括能更快創(chuàng )建設計;減少了黃金源碼中的代碼行;bug更少;表達設計意圖更容易,且僅需一次;更快的仿真和調試;功耗預估可更早進(jìn)行;支持軟硬件協(xié)同驗證;可將模型納入虛擬平臺;RTL生成前可進(jìn)行架構驗證;在RTL驗證中可復用TLM驗證IP;無(wú)需微架構重新設計即可進(jìn)行IP復用;ECO模式下產(chǎn)生的RTL變化很小。 基于TLM的流程與高層次綜合(HLS)配合,可將抽象級別提高。這是大約15年前設計師轉向RTL后的又一次重大轉變,根據之前的經(jīng)驗,這次轉變有可能使設計效率呈現數量級的提升(見(jiàn)圖1)。 ![]() 下面幾部分描述了TLM驅動(dòng)式設計和驗證流程的具體屬性和優(yōu)勢。 創(chuàng )建TLM作為黃金源碼——更快的IP創(chuàng )建與設計IP復用 與RTL不同的是,TLM不描述最終實(shí)現的微架構詳情。不描述微架構詳情大幅提高了TLM設計在要求各不相同的多個(gè)項目間的可復用性,因為相同的TLM IP可重新定為不同微架構的RTL代碼。而且,得益于更高的抽象程度,正確地創(chuàng )建功能要容易得多。TLM模型具有的代碼行比對應的RTL模型要少得多,從而在最終設計中實(shí)現了編碼效率和品質(zhì)的同步提高。 開(kāi)發(fā)與維護作為IP模塊黃金源碼的TLM所需的綜合和驗證解決方案,需要產(chǎn)生有品質(zhì)保證的結果并驗證其正確性,且無(wú)須編輯RTL或門(mén)級設計。這使設計團隊在TLM環(huán)境內就能做出所有決定,并可通過(guò)將TLM源碼復用于系統來(lái)約束完全不同的其他設計。 SystemC是描述事務(wù)級設計的最佳標準,并連接到實(shí)現,提供了最好的可復用機會(huì )。它可對硬件的并發(fā)特性進(jìn)行建模,并針對進(jìn)程、管腳、線(xiàn)程和控制邏輯描述定時(shí)或非定時(shí)的行為。TLM 1.0和2.0標準提供了創(chuàng )建可互用IP模型的能力。最終,需要有一個(gè)合格的可綜合TLM IP庫,及可綜合TLM標準(或事實(shí)上的)子集。 對TLM IP的功能驗證可應對驗證吞吐量的爆發(fā) TLM IP驗證相對RTL驗證具有很多優(yōu)勢。首先,仿真運行更快——相對RTL仿真有數量級的提升,從而允許驗證更多功能性實(shí)例。同時(shí),在TLM抽象級別上進(jìn)行的調試比RTL調試更容易、更快速。 通過(guò)在更高抽象級別上編碼,TLM IP需要的代碼行更少,bug也更少。功能性bug在設計早期就能被發(fā)現和解決。因而可大幅減少驗證工作的總體投入。 在TLM抽象級別上,定位和理解bug更容易,修正bug也更容易,原因是需要處理的詳情更少。TLM流程允許在最合適的抽象級別來(lái)驗證各關(guān)注重點(diǎn),如TLM用來(lái)驗證功能、信號級驗證用于驗證接口等。 TLM驗證流程始自算法功能驗證,允許用軟件進(jìn)行功能驗證,然后轉向TLM功能驗證(見(jiàn)圖2)。通過(guò)C-to-Silicon Compiler的編譯,用戶(hù)可轉向微架構RTL驗證和RTL到門(mén)級等效性檢查。除支持仿真很快的非定時(shí)建模外,TLM還允許用戶(hù)進(jìn)行改進(jìn),逐漸包含微架構詳情,并改進(jìn)時(shí)序精確性。 ![]() 軟硬件協(xié)同驗證及早期軟件開(kāi)發(fā) TLM模型抽象級別高、執行快,足夠執行切實(shí)可行的軟硬件協(xié)同仿真。設計師能將嵌入式軟件與TLM硬件模型進(jìn)行協(xié)同仿真,來(lái)檢查軟硬件依賴(lài)性,并對依賴(lài)于硬件的軟件進(jìn)行早期調試。有可能將這些技術(shù)當做對軟硬件交互的隨機化激勵與覆蓋進(jìn)行應用。 用于早期軟件開(kāi)發(fā)和調試的虛擬平臺可能包含由SystemC TLM模型組成的子系統。得益于它們的快速執行,為創(chuàng )建硬件設計而開(kāi)發(fā)的模型也可用來(lái)加速軟件設計。 支持TLM和RTL混合驗證 在SoC級別需要TLM和RTL混合功能驗證,是因為有大量將被復用的遺留RTL IP,且仍有必要針對設計各部分進(jìn)行詳細RTL功能驗證。某些驗證任務(wù)將只能在RTL上才能完成,包括針對存儲器存取順序或狀態(tài)遷移覆蓋等屬性的微架構結構驗證。 由于大部分驗證工具如驗證計劃(vPlan)、開(kāi)放驗證方法學(xué)(OVM)驗證組件、testbench、序列、測試、檢查和覆蓋等在各種抽象級別都能復用,因此TLM/RTL混合信號驗證也變得更容易實(shí)現。功能驗證規劃與管理跨TLM與RTL兩個(gè)級別,允許團隊在混合級別設計中的各級別上對驗證進(jìn)行跟蹤和控制,并在需要時(shí)對結果進(jìn)行整合,確保了整體品質(zhì)。 用于SystemVerilog的OVM已得到擴充,可支持包括e與SystemC在內的多種語(yǔ)言。OVM庫也支持TLM。目前,OVM方法學(xué)描述正在進(jìn)行擴充,以顯示怎樣在一個(gè)綜合性回歸解決方案中整合TLM和RTL模型。這將有助于創(chuàng )建工作于多語(yǔ)言、TLM/RTL混合驗證環(huán)境的驗證IP(VIP)。 多級功能驗證testbench基于事務(wù),當它連接到基于RTL的IP、總線(xiàn)或接口時(shí),需要一個(gè)事務(wù)處理器在事務(wù)級域和管腳精確的RTL域之間進(jìn)行轉換。類(lèi)似地,需要事務(wù)處理器將TLM IP塊連接到RTL IP塊上的總線(xiàn)或接口;赥LM的方法學(xué)必須考慮,這些事務(wù)處理器該怎樣工作,以獲得混合TLM/RTL驗證的最大收益。有些事務(wù)處理器可通過(guò)購買(mǎi)取得,而有些則是專(zhuān)有的,由項目團隊創(chuàng )建,并作為驗證庫組件進(jìn)行管理。 很多項目實(shí)現TLM僅僅是為了新IP,從而逐漸建立起一個(gè)TLM IP庫,許多團隊針對新的IP采用了TLM的方法學(xué),并且逐漸豐富TLM IP庫,而有些團隊在事關(guān)成敗的關(guān)鍵項目中采用了TLM方法學(xué),用于所有重要的IP模塊。最終,SoC的所有IP黃金源碼都來(lái)自于TLM級。在這些情況下,品質(zhì)、效率及容易調試的優(yōu)點(diǎn)將比TLM/RTL混合項目中更加明顯。SoC TLM功能驗證,包括SoC級架構分析和優(yōu)化,將可能實(shí)現。 從TLM到RTL驗證進(jìn)行VIP復用 VIP復用現已成為主流,因為創(chuàng )建高質(zhì)量驗證環(huán)境的時(shí)間經(jīng)常超過(guò)創(chuàng )建設計IP本身的時(shí)間。標準協(xié)議的廣泛使用推動(dòng)了商業(yè)VIP市場(chǎng)的快速發(fā)展。當前,大部分VIP是寄存器傳輸級的。由TLM得到的VIP也將有一定需求,但必須可復用于TLM/RTL混合功能驗證。 在RTL功能驗證中,使用約束隨機激勵生成的先進(jìn)testbench占據了主導地位。由TLM得到的VIP在用于TLM、TLM/RTL混合及RTL功能驗證的testbench中應該都是可操作的。這樣的VIP需允許指標驅動(dòng)式驗證的應用,因為客戶(hù)會(huì )在驗證抽象的所有級別上使用覆蓋指標。最后,對于和架構及軟件工程團隊工作密切相關(guān)的驗證團隊,輔助的嵌入式軟件和定向測試也是必需的。 從算法到微架構的漸進(jìn)式設計改進(jìn) TLM IP設計和驗證流程有若干獨特的步驟:算法驗證、架構驗證、微架構驗證(見(jiàn)圖3)。第一步(算法驗證)可能涉及C++或Matlab或Simulink這樣的產(chǎn)品。用戶(hù)可為關(guān)鍵算法特性制定一個(gè)vPlan,驗證I/O的功能,并為關(guān)鍵實(shí)例應用激勵序列。 ![]() 第二步(架構驗證),設計師使用TLM驅動(dòng)式IP建模(TDIP)方法學(xué)來(lái)定義架構和接口協(xié)議。他們復用算法vPlan,并應用額外的激勵、檢查、斷言與覆蓋,還為關(guān)鍵架構和接口協(xié)議特性制定vPlan。在第三步(微架構驗證),設計師通過(guò)C-to-Silicon Compiler進(jìn)行綜合,復用算法和架構vPlan,然后推廣至激勵、檢查、斷言與覆蓋中的微架構詳情。 Cadence TLM產(chǎn)品 Cadence TLM驅動(dòng)式IP設計與驗證解決方案包含方法學(xué)指南、C-to-Silicon Compiler、Cadence Incisive功能驗證平臺以及TLM驅動(dòng)式IP設計與驗證服務(wù)。 統一的TLM驅動(dòng)式IP設計、驗證、復用方法學(xué)及編碼指南 Cadence將為T(mén)LM驅動(dòng)式IP設計與驗證提供方法學(xué)指南,幫助設計團隊在最短時(shí)間內以最高效率啟動(dòng)和完成他們初始的TLM項目,并避免采用新方法學(xué)的常見(jiàn)錯誤。從TLM IP設計編碼風(fēng)格、建模指南及綜合子集開(kāi)始,用戶(hù)能夠創(chuàng )建TLM IP,其架構利用了高層次綜合所提供的能力。在整個(gè)TLM驅動(dòng)的IP方法學(xué)中都考慮了對設計和驗證IP的復用。 C-to-Silicon Compiler利用TLM黃金源碼創(chuàng )建高質(zhì)量的RTL C-to-Silicon Compiler是一個(gè)高層次綜合產(chǎn)品,它采用TLM SystemC IP描述和約束,并創(chuàng )建可用于標準RTL實(shí)現流程的RTL。為確保結果的質(zhì)量,它利用Cadence Incisive RTL Compiler技術(shù)來(lái)創(chuàng )建邏輯,并提取該邏輯的時(shí)序與功耗信息來(lái)決定最終RTL的架構詳情。 C-to-Silicon Compiler GUI顯示了原始SystemC和根據它生成的RTL代碼行之間的對應關(guān)系。這種獨特的對照功能鼓勵系統設計師和RTL設計師之間的溝通,并有助于保持 SystemC TLM作為黃金源碼。它還將調試提升到更高的抽象水平,并使設計師可以評估SystemC源碼的變化對RTL產(chǎn)生的影響。 C-to-Silicon Compiler提供了增量綜合能力,可大幅簡(jiǎn)化工程更改(ECO)過(guò)程并盡可能減少對RTL代碼的更改。其他大多數HLS工具都要求對整個(gè)算法進(jìn)行重新綜合,意味著(zhù)源代碼中的微小變化也會(huì )導致完全不同的RTL。在這些情形下,必須重做邏輯綜合和RTL驗證。因而很難將SystemC代碼保持為黃金源碼。相比之下,C-to-Silicon Compiler僅對算法的改變部分生成RTL代碼,而不修改設計的其他部分。 C-to-Silicon Compiler能通過(guò)應用新約束,生成新RTL,將TLM設計IP轉移到新的微架構目標。通過(guò)指定不同時(shí)序、面積和功耗約束或不同微架構指導如流水線(xiàn)級數,就能生成新的RTL。這樣,設計團隊就能重復利用IP,且人力投入更少,RTL質(zhì)量更高,時(shí)間更少。通過(guò)嘗試不同微架構,設計師還可運行假設實(shí)驗。 最后,C-to-Silicon Compiler能自動(dòng)生成周期準確的SystemC快速硬件模型(Fast Hardware Models, FHM),能以非定時(shí)TLM模型的80%~90%的速度執行。這些SystemC模型允許早期快速驗證和軟硬件協(xié)同開(kāi)發(fā)。FHM配有來(lái)自Cadence Incisive環(huán)境的擴展,使變量和信號的顯示更加明顯,以方便分析和調試。 Incisive指標驅動(dòng)式從TLM到收斂驗證解決方案 Cadence Incisive功能驗證平臺是完全集成化的多語(yǔ)言、多級別功能驗證解決方案。利用指標驅動(dòng)式驗證、專(zhuān)注于硬件的定向測試、軟件定向測試或軟硬件協(xié)同驗證,Cadence Incisive Enterprise Simulator可完整驗證符合OSCI TLM 2.0的設計IP。 特別設計的事務(wù)級分析和統一的調試特性有助于TLM IP的創(chuàng )建和驗證,無(wú)論設計是完整的TLM IP或僅僅是遺留RTL SoC中的一個(gè)TLM IP模塊。Incisive Enterprise Simulator在其調試環(huán)境中自動(dòng)識別TLM 2.0構件,可提供保存/重啟及重置功能,并針對SystemC/C++進(jìn)行了擴展。該仿真器可推斷事務(wù)信息,并提供有可感知TLM控制、可見(jiàn)性和調試特性。通過(guò)事務(wù)級的控制和調試操作,用戶(hù)能夠調試SystemC TLM 2.0設計中的所有互動(dòng)元素。 通過(guò)Cadence Incisive Software Extensions,設計師能夠運行嵌入式軟件的處理器模型和TLM硬件模型的協(xié)同仿真。Incisive Software Extensions使驗證testbench可使用在處理器模型下運行的軟件、并為軟硬件協(xié)同仿真提供了指標驅動(dòng)式驗證、偽隨機測試生成、驗證覆蓋等功能。 Cadence Incisive Enterprise Manager提供了TLM、TLM/RTL與RTL功能驗證技術(shù),以成功獲得收斂。對于具有大規模RTL遺留IP的SoC,使用Cadence Incisive Palladium或Cadence Incisive Xtreme,可用快速RTL檢驗對TLM仿真進(jìn)行補充。這些硬件平臺所允許的周期精確驗證的運行速度,也能允許低階軟件驗證的運行。 幫助規劃和實(shí)施項目關(guān)鍵更改的服務(wù) 一次一個(gè)IP模塊地過(guò)渡到TLM驅動(dòng)式設計與驗證,能降低一些風(fēng)險和成本。但是,有些項目必須進(jìn)一步減少風(fēng)險,并借助豐富經(jīng)驗的幫助,來(lái)規劃、執行并擴大最優(yōu)方法驗證。Cadence在全球都可提供TLM驅動(dòng)式設計和驗證的專(zhuān)家服務(wù),以擴大成功機率,減少運行時(shí)間、人力投入和風(fēng)險。 結語(yǔ) TLM驅動(dòng)式設計與驗證將最終使TLM取代RTL作為大多數設計組件的黃金源碼。其優(yōu)勢是明顯的——快得多的設計與驗證時(shí)間、IP復用更容易、bug更少。工作效率將實(shí)現RTL設計出現以來(lái)的最大跨越。但這一過(guò)渡不可能一蹴而就。TLM驅動(dòng)式設計和驗證方法在新IP被創(chuàng )建出來(lái)時(shí),一次運行一個(gè)IP模塊。而有些設計組件直接以RTL形式設計將是最好的方式。因此,必然要有將新TLM IP與遺留的RTL IP在設計與驗證環(huán)境中進(jìn)行合并的可能。 通過(guò)提供方法學(xué)指南、高層次綜合、有TLM感知的驗證和調試及采用服務(wù),Cadence將提供幫助,使RTL到TLM驅動(dòng)式設計和驗證方法學(xué)的過(guò)渡更容易。 作者:Cadence設計系統公司 Steven Brown 來(lái)源:電子設計應用2009年第12期 |