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