基于SystemC/TLM方法學(xué)的IP開(kāi)發(fā)及FPGA建模
隨著系統(tǒng)級(jí)芯片技術(shù)的出現(xiàn),設(shè)計(jì)規(guī)模正變得越來(lái)越大,因而變得非常復(fù)雜,同時(shí)上市時(shí)間也變得更加苛刻。通常RTL已經(jīng)不足以擔(dān)當(dāng)這一新的角色。上述這些因素正驅(qū)使設(shè)計(jì)師開(kāi)發(fā)新的方法學(xué),用于復(fù)雜IP(硬件和軟件)以及復(fù)雜系統(tǒng)的驗(yàn)證。ST公司建立了一個(gè)設(shè)計(jì)流,它從高級(jí)抽象開(kāi)始,易于將模型寫(xiě)入IP的精密周期或RTL模型中。當(dāng)轉(zhuǎn)入低級(jí)抽象時(shí),建模變得復(fù)雜,故IP驗(yàn)證也復(fù)雜。我們的方案最適合于這種應(yīng)用場(chǎng)景,因?yàn)樗试S人們?cè)诟鞯叵嗨频沫h(huán)境中運(yùn)行相同的測(cè)試平臺(tái)和測(cè)試場(chǎng)景,因而允許在整個(gè)開(kāi)發(fā)周期里高效地復(fù)用所有的測(cè)試范例和環(huán)境。
在半導(dǎo)體領(lǐng)域,開(kāi)發(fā)產(chǎn)品的第一步就是以高級(jí)抽象開(kāi)發(fā)規(guī)范的模型,通常用C/C++來(lái)實(shí)現(xiàn)。這里,SystemC和C++庫(kù)提供了很大幫助。它簡(jiǎn)化了共存的硬件和軟件設(shè)計(jì)的概念化。再加上實(shí)現(xiàn)事務(wù)級(jí)模型間對(duì)口連接的TLM傳送庫(kù),SystemC加速了整個(gè)驗(yàn)證過(guò)程。另一個(gè)重要方面是所有不同抽象架構(gòu)中經(jīng)過(guò)增強(qiáng)的可移植性。同一測(cè)試配置可以無(wú)縫地用于不同抽象級(jí)的設(shè)計(jì)。
本文將討論一種此類(lèi)的方法學(xué)。最終的目標(biāo)是設(shè)計(jì)和實(shí)現(xiàn)UWBMAC(媒體訪(fǎng)問(wèn)層)IP。出于架構(gòu)開(kāi)發(fā)的目的,決定用SystemC來(lái)實(shí)現(xiàn)整個(gè)IP。還開(kāi)發(fā)了抽象級(jí)具有不同程度變化的不同架構(gòu)。所付出的努力比較少,最后得到的仿真速度很快,軟件的實(shí)際編寫(xiě)也可以在設(shè)計(jì)周期非常早的階段開(kāi)始。該IP的RTL結(jié)果被移植到了SPEAr系列的FPGA中。除了ARM內(nèi)核和相應(yīng)的一系列IP,SPEAr還提供一個(gè)可配置邏輯塊,這為用戶(hù)在實(shí)現(xiàn)其邏輯功能時(shí)提供了無(wú)與倫比的靈活性。從而縮短了上市時(shí)間,同樣也實(shí)現(xiàn)了空前的成本節(jié)省。
設(shè)計(jì)開(kāi)發(fā)方法學(xué)
圖1所示的該方法學(xué)實(shí)現(xiàn)了開(kāi)發(fā)的內(nèi)核中的事務(wù)級(jí)建模(TLM)。TLM是一種對(duì)數(shù)字系統(tǒng)進(jìn)行建模的高級(jí)方案,這里將模塊之間的具體通信與功能單元或通信架構(gòu)的具體實(shí)現(xiàn)分離開(kāi)。把總線(xiàn)或FIFO這類(lèi)通信機(jī)制模型化成信道,用SystemC接口類(lèi)將這些信道提供給模塊和部件。這些信道模型的信令接口功能將取代事務(wù)請(qǐng)求,這將減少具體的低級(jí)信息交換。
圖1:IP開(kāi)發(fā)方法學(xué)流程。
在事務(wù)級(jí)建模時(shí),
*更加注重?cái)?shù)據(jù)轉(zhuǎn)移的功能-即轉(zhuǎn)移的是什么數(shù)據(jù),從那里來(lái),到那里去
*不太關(guān)注實(shí)際的實(shí)現(xiàn)-即不太關(guān)注數(shù)據(jù)轉(zhuǎn)移所用的實(shí)際協(xié)議
該方案使得系統(tǒng)設(shè)計(jì)師的實(shí)驗(yàn)變得更加容易,例如,可以利用不同的總線(xiàn)架構(gòu)(所有都支持公共的抽象接口),不一定需要對(duì)與任意總線(xiàn)進(jìn)行交互的模型進(jìn)行重新編碼,只要這些模型能夠通過(guò)公用接口與總線(xiàn)進(jìn)行交互即可。
在我們的方法中,起始點(diǎn)是對(duì)整個(gè)功能系統(tǒng)平臺(tái)進(jìn)行建模。這是利用SystemC并通過(guò)scfifo接口實(shí)現(xiàn)的。為了描述通信接口間的數(shù)據(jù)流,采用了各種架構(gòu)。這些架構(gòu)基本上都是協(xié)議需要遵守的參數(shù)和幀格式信息。圍繞IP創(chuàng)建了一個(gè)測(cè)試環(huán)境,環(huán)境中開(kāi)發(fā)了測(cè)試平臺(tái),來(lái)傳輸分別來(lái)自?xún)蓚?cè)的輸入,即發(fā)送和接收。在這兩種范例中,利用這種配置產(chǎn)生了預(yù)期的結(jié)果或參考。在抽象層,與平臺(tái)一起使用來(lái)進(jìn)行修改,快速并有效地做試驗(yàn)時(shí)將變得很容易,不過(guò)精度會(huì)降低一些。
評(píng)論