TLM驅(qū)動(dòng)式的新方案探討
引言
本文引用地址:http://m.butianyuan.cn/article/185583.htmCadence設(shè)計(jì)系統(tǒng)公司提供一種全面的SystemC TLM驅(qū)動(dòng)式IP設(shè)計(jì)與驗(yàn)證解決方案,包括方法學(xué)指南、高階綜合、有TLM感知的驗(yàn)證以及客戶服務(wù),推動(dòng)用戶向TLM驅(qū)動(dòng)設(shè)計(jì)與驗(yàn)證流程轉(zhuǎn)變。
下一個(gè)抽象級(jí)別建立在事務(wù)級(jí)建模(TLM)基礎(chǔ)之上。創(chuàng)建TLM IP作為黃金源碼后,設(shè)計(jì)團(tuán)隊(duì)可簡(jiǎn)化IP創(chuàng)建和復(fù)用,在功能驗(yàn)證上節(jié)省人力物力,并減少bug。設(shè)計(jì)迭代減少,原因是TLM驗(yàn)證比RTL驗(yàn)證快得多,且架構(gòu)選擇在RTL驗(yàn)證進(jìn)行之前就能得到確定。此外,事務(wù)級(jí)模型可用于軟硬件協(xié)同驗(yàn)證,并可組成用于早期軟件開發(fā)的虛擬平臺(tái)的一部分。所有這些優(yōu)勢(shì)將大幅提升設(shè)計(jì)效率。
TLM通過函數(shù)調(diào)用而非信號(hào)或線路進(jìn)行模塊間通信。它允許用戶分析讀或?qū)戇@些事務(wù),而不用擔(dān)心底層邏輯的實(shí)現(xiàn)和時(shí)序。SystemC是開發(fā)可復(fù)用、可互用TLM IP的最佳語(yǔ)言標(biāo)準(zhǔn)。此外,因?yàn)镾ystemC建立在C++基礎(chǔ)上,它還允許對(duì)C語(yǔ)言算術(shù)函數(shù)的完全復(fù)用。開放SystemC行動(dòng)(OSCI)為TLM模型定義了若干抽象層,分別是程序員視角(無定時(shí))模型、寬松定時(shí)模型和近似定時(shí)模型。
要求對(duì)RTL進(jìn)行改變的關(guān)鍵難題
在RTL中,有限狀態(tài)機(jī)的結(jié)構(gòu)要進(jìn)行充分描述。這意味著,在編寫RTL時(shí)需關(guān)注微架構(gòu)詳情,如存儲(chǔ)器結(jié)構(gòu)、流水線、控制狀態(tài)或最終實(shí)現(xiàn)中使用的ALU等。 這一要求導(dǎo)致更長(zhǎng)、可復(fù)用性更低的設(shè)計(jì)與驗(yàn)證流程。
有時(shí)當(dāng)TLM用于當(dāng)前流程時(shí),現(xiàn)有的基于RTL的流程需要進(jìn)行兩次設(shè)計(jì)意圖手工輸入——一次在系統(tǒng)級(jí)、一次在RTL級(jí)。這種過程粗笨低效且易出錯(cuò)。架構(gòu)直至產(chǎn)生RTL后才能確定,而重新確定IP目標(biāo)成本很高。一個(gè)真正的TLM驅(qū)動(dòng)式設(shè)計(jì)與驗(yàn)證流程將只需要一次設(shè)計(jì)意圖簡(jiǎn)單的表達(dá),并提供一條自動(dòng)化的轉(zhuǎn)換方法。
從RTL開始查找和解決架構(gòu)問題過程長(zhǎng),代價(jià)高
RTL驅(qū)動(dòng)式設(shè)計(jì)方法學(xué)的一大問題是,一種架構(gòu)是否能實(shí)現(xiàn),直到建立了RTL并對(duì)其進(jìn)行驗(yàn)證后才能確認(rèn)。由于RTL是架構(gòu)的直接表示,大部分RTL設(shè)計(jì)師不得不同時(shí)探究功能正確性、架構(gòu)和設(shè)計(jì)目標(biāo)。這導(dǎo)致很長(zhǎng)的周期,始于做出架構(gòu)決定,終止于驗(yàn)證功能性。通常,設(shè)計(jì)與驗(yàn)證團(tuán)隊(duì)會(huì)發(fā)現(xiàn)需要修改架構(gòu)的功能性bug,每次發(fā)現(xiàn)這樣的bug就需要重新開始整個(gè)周期。
在RTL上復(fù)用IP設(shè)計(jì)限制了架構(gòu)靈活性
當(dāng)今SoC中,可能有高達(dá)90%的IP模塊來自以前項(xiàng)目的復(fù)用。但是,當(dāng)IP的黃金源碼為微架構(gòu)級(jí)別時(shí),復(fù)用是很困難的。重定RTL IP的微架構(gòu)目標(biāo)費(fèi)力且容易出錯(cuò)。目標(biāo)系統(tǒng)應(yīng)用可能差別很大,意味著不通過重新架構(gòu),僅通過簡(jiǎn)單復(fù)用,新的SoC設(shè)計(jì)目標(biāo)是不能達(dá)到的。例如,RTL設(shè)計(jì)師可能需要將設(shè)計(jì)重新分割成RTL塊、改變流水線級(jí)數(shù)、或創(chuàng)建新的存儲(chǔ)器架構(gòu),因?yàn)樵谠蠭P中,這些微架構(gòu)詳情都是固定和預(yù)先決定的。
RTL功能驗(yàn)證時(shí)間比當(dāng)前技術(shù)的最高吞吐量增加得更快
在很多SoC項(xiàng)目中,功能驗(yàn)證已成為主要瓶頸。RTL功能驗(yàn)證開始時(shí),在系統(tǒng)級(jí)的大量驗(yàn)證投入已然損失。雖然驗(yàn)證規(guī)劃、指標(biāo)驅(qū)動(dòng)式驗(yàn)證等方法使設(shè)計(jì)團(tuán)隊(duì)尚能應(yīng)付當(dāng)前的大部分驗(yàn)證難題,但時(shí)間限制和日益增多的門數(shù)正在使驗(yàn)證變得難以為繼。RTL功能驗(yàn)證所需時(shí)間可能隨設(shè)計(jì)的增大而呈指數(shù)式增長(zhǎng),因?yàn)橄嗷プ饔玫母鞣N模式及該IP需要測(cè)試的許多軟硬件配置導(dǎo)致了各種極端情形,它們也需要進(jìn)行驗(yàn)證。
RTL是有精確時(shí)鐘周期的,涉及的代碼行遠(yuǎn)多于TLM邏輯。對(duì)RTL模型進(jìn)行仿真時(shí),仿真器檢查所有事件或時(shí)鐘周期,即使在協(xié)議級(jí)上并未發(fā)生任何重大情況。仿真器要在微架構(gòu)詳情上浪費(fèi)大量機(jī)器周期,而這些需要在架構(gòu)確定后才能確認(rèn)。TLM仿真在更高抽象級(jí)別進(jìn)行,能更早完成,并提供更高性能。
TLM正是需要的解決方案
TLM驅(qū)動(dòng)的設(shè)計(jì)和驗(yàn)證流程可實(shí)現(xiàn)在功能級(jí)別上描述IP,然后在快速仿真中驗(yàn)證事務(wù)的功能行為。TLM流程的主要優(yōu)點(diǎn)包括能更快創(chuàng)建設(shè)計(jì);減少了黃金源碼中的代碼行;bug更少;表達(dá)設(shè)計(jì)意圖更容易,且僅需一次;更快的仿真和調(diào)試;功耗預(yù)估可更早進(jìn)行;支持軟硬件協(xié)同驗(yàn)證;可將模型納入虛擬平臺(tái);RTL生成前可進(jìn)行架構(gòu)驗(yàn)證;在RTL驗(yàn)證中可復(fù)用TLM驗(yàn)證IP;無需微架構(gòu)重新設(shè)計(jì)即可進(jìn)行IP復(fù)用;ECO模式下產(chǎn)生的RTL變化很小。
基于TLM的流程與高層次綜合(HLS)配合,可將抽象級(jí)別提高。這是大約15年前設(shè)計(jì)師轉(zhuǎn)向RTL后的又一次重大轉(zhuǎn)變,根據(jù)之前的經(jīng)驗(yàn),這次轉(zhuǎn)變有可能使設(shè)計(jì)效率呈現(xiàn)數(shù)量級(jí)的提升(見圖1)。
下面幾部分描述了TLM驅(qū)動(dòng)式設(shè)計(jì)和驗(yàn)證流程的具體屬性和優(yōu)勢(shì)。
創(chuàng)建TLM作為黃金源碼
——更快的IP創(chuàng)建與設(shè)計(jì)IP復(fù)用
與RTL不同的是,TLM不描述最終實(shí)現(xiàn)的微架構(gòu)詳情。不描述微架構(gòu)詳情大幅提高了TLM設(shè)計(jì)在要求各不相同的多個(gè)項(xiàng)目間的可復(fù)用性,因?yàn)橄嗤腡LM IP可重新定為不同微架構(gòu)的RTL代碼。而且,得益于更高的抽象程度,正確地創(chuàng)建功能要容易得多。TLM模型具有的代碼行比對(duì)應(yīng)的RTL模型要少得多,從而在最終設(shè)計(jì)中實(shí)現(xiàn)了編碼效率和品質(zhì)的同步提高。
開發(fā)與維護(hù)作為IP模塊黃金源碼的TLM所需的綜合和驗(yàn)證解決方案,需要產(chǎn)生有品質(zhì)保證的結(jié)果并驗(yàn)證其正確性,且無須編輯RTL或門級(jí)設(shè)計(jì)。這使設(shè)計(jì)團(tuán)隊(duì)在TLM環(huán)境內(nèi)就能做出所有決定,并可通過將TLM源碼復(fù)用于系統(tǒng)來約束完全不同的其他設(shè)計(jì)。
SystemC是描述事務(wù)級(jí)設(shè)計(jì)的最佳標(biāo)準(zhǔn),并連接到實(shí)現(xiàn),提供了最好的可復(fù)用機(jī)會(huì)。它可對(duì)硬件的并發(fā)特性進(jìn)行建模,并針對(duì)進(jìn)程、管腳、線程和控制邏輯描述定時(shí)或非定時(shí)的行為。TLM 1.0和2.0標(biāo)準(zhǔn)提供了創(chuàng)建可互用IP模型的能力。最終,需要有一個(gè)合格的可綜合TLM IP庫(kù),及可綜合TLM標(biāo)準(zhǔn)(或事實(shí)上的)子集。
評(píng)論