《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > EDA與制造 > 設(shè)計(jì)應(yīng)用 > CLB總線事務(wù)級(jí)建模及其仿真平臺(tái)的設(shè)計(jì)
CLB總線事務(wù)級(jí)建模及其仿真平臺(tái)的設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2011年第11期
蘭光洋,, 魏繼增,, 郭 煒
(天津大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300072)
摘要: 提出了采用事務(wù)級(jí)建模的方法對(duì)國(guó)內(nèi)具有自主知識(shí)產(chǎn)權(quán)的國(guó)芯CLB總線進(jìn)行建模的方案,,并利用多時(shí)鐘技術(shù)來保證模型的周期精確。同時(shí)對(duì)所建模型進(jìn)行了VCI接口協(xié)議的封裝,,便于其在不同平臺(tái)上的移植,。為了驗(yàn)證本設(shè)計(jì)的正確性,在電子系統(tǒng)級(jí)平臺(tái)上實(shí)現(xiàn)了基于CLB的SoC,。實(shí)驗(yàn)結(jié)果表明,,本模型可以大大提高軟、硬件協(xié)同開發(fā)驗(yàn)證的效率,,增強(qiáng)IP模塊的復(fù)用性,。
中圖分類號(hào): TP399
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2011)11-0134-03
Transaction level modeling and the simulation platform design of CLB bus
Lan Guangyang, Wei Jizeng, Guo Wei
School of Computer Science and Technology, Tianjin University, Tianjin 300072, Chin
Abstract: This paper using the method of TLM models the Guoxin’s CLB bus which is authored by our own country, and multi-clock is used to confirm the cycle accurate of this model. Besides, this paper encapsulates this model with VCI protocol in order to facilitate its transplantation between different platforms. To verify the correctness of our design, this paper realized the SoC of CLB bus on electronic system level platform. The results show that this model does not only promote the efficiency of the co-design and verification of HW and SW, but also increases the reusability of the IP module.
Key words : systemC language; CLB bus; IP reuse; transaction level modeling(TLM); VCI interface


    隨著集成電路設(shè)計(jì)和工藝的不斷發(fā)展,人們已經(jīng)可以把復(fù)雜的電子系統(tǒng)集成到一個(gè)芯片上,,即片上系統(tǒng)SoC(System on Chip),。SoC的設(shè)計(jì)以應(yīng)該是一個(gè)軟件、硬件協(xié)同設(shè)計(jì)的過程,,而傳統(tǒng)的以寄存器傳輸級(jí)(RTL)建模為基礎(chǔ)的設(shè)計(jì)方法,,只有在全部的硬件設(shè)計(jì)完成后才能進(jìn)行軟件測(cè)試和系統(tǒng)集成,降低了開發(fā)的效率,,延長(zhǎng)了產(chǎn)品面市的時(shí)間,。
    近來,,為了解決上述問題,國(guó)內(nèi)外提出了很多不同的方法,。其中,,電子系統(tǒng)級(jí)設(shè)計(jì)(ESL)被認(rèn)為是用來解決諸如系統(tǒng)級(jí)仿真和驗(yàn)證、架構(gòu)探測(cè),、片上總線設(shè)計(jì)和系統(tǒng)性能評(píng)估等系統(tǒng)級(jí)問題最有前途的一種方法,。ESL的關(guān)鍵就是用事務(wù)級(jí)建模(TLM)來建立一個(gè)SoC系統(tǒng)的模型。所謂事務(wù),,一方面指把低層次的信息傳輸組合成較高級(jí)別的傳輸,,例如把讀寫一大塊數(shù)據(jù)作為一個(gè)事務(wù),包含總線上的若干次突發(fā)傳輸,,每個(gè)突發(fā)傳輸又會(huì)包含地址連續(xù)的多個(gè)數(shù)據(jù)傳輸,;另一方面指不牽涉具體的信號(hào),而是把傳輸中涉及到的信息分類作為整體表示,。在事務(wù)級(jí)的傳輸機(jī)制可以通過信道來完成,,模塊之間的通信則可以通過調(diào)用接口函數(shù)來完成,這樣可以大大提高仿真的速度[1],。
    在事務(wù)級(jí)建模領(lǐng)域,,國(guó)內(nèi)外做了大量的研究。OSCI組織推出的SystemC語言為SoC的事務(wù)級(jí)建模提供了良好的語言支持,,Synopsys公司已經(jīng)推出AMBA的事務(wù)級(jí)模型,。國(guó)內(nèi)在事務(wù)級(jí)建模方面也取得了一些成就[2-3]。國(guó)芯CLB總線具有優(yōu)良的數(shù)據(jù)傳輸性能和可擴(kuò)展性,,因此,,它具有很強(qiáng)的發(fā)展?jié)摿Α5?,如何建立CLB周期精確的事務(wù)級(jí)模型仍是一個(gè)有待解決的問題,。
1 CLB事務(wù)級(jí)模型的建立
1.1 建模語言

    本文采用SystemC建立國(guó)芯CLB總線的事務(wù)級(jí)模型。SystemC在C++的基礎(chǔ)上發(fā)展而來,,可以支持門級(jí),、RTL級(jí)和系統(tǒng)級(jí)等不同抽象層次的建模和仿真。在SystemC TLM 2.0中,,定義了非定時(shí)模型,、近似定時(shí)模型、松散定時(shí)模型和周期精確定時(shí)模型,,分別用于滿足不同級(jí)別精度的需要,,并且支持多個(gè)時(shí)鐘之間的任意相位關(guān)系[4]。同時(shí),,SystemC具有所有硬件描述語言所共有的基本特征,,包括模塊,、進(jìn)程、端口和信號(hào)等,,這使得SystemC可以很好地完成CLB的事務(wù)級(jí)建模,。
1.2 CLB總線
    CLB總線是基于我國(guó)具有自主知識(shí)產(chǎn)權(quán)的32位RISC嵌入式CPU-C*Core的SoC平臺(tái)中使用的層次化片上總線體系結(jié)構(gòu)[4]研制的。CLB總線采用了高效的流水線 (Pipeline)結(jié)構(gòu),,能在讀寫數(shù)據(jù)的同時(shí)產(chǎn)生下一訪問的地址信號(hào);總線支持字節(jié),、半字和字三種類型的數(shù)據(jù)傳輸;總線接口支持C*Core和系統(tǒng)中的其他設(shè)備之間的數(shù)據(jù)同步傳輸,內(nèi)部分布的時(shí)鐘信號(hào)用來提供邏輯時(shí)序,。
  圖1所示為CLB的工作示意圖,其中BCU(Bus Control Unit)相當(dāng)于總線仲裁器,,由它控制總線的使用權(quán),;Slave0、Slave1的選擇由CLB內(nèi)部的地址譯碼邏輯完成,。

1.3 CLB的VCI封裝及建模的設(shè)計(jì)
     IP(Intellectual Property)是構(gòu)成SoC的基本單元,,IP的復(fù)用可以有效縮短產(chǎn)品的開發(fā)時(shí)間、減少產(chǎn)品投放市場(chǎng)的時(shí)間,、降低產(chǎn)品的開發(fā)成本,。因此,IP復(fù)用是SoC設(shè)計(jì)的一個(gè)重要的組成部分,。為了增加CLB總線模型的可復(fù)用性,,本文對(duì)其進(jìn)行了標(biāo)準(zhǔn)的VCI封裝。根據(jù)VCI協(xié)議的標(biāo)準(zhǔn)[5],本文將CLB的VCI封裝設(shè)計(jì)成BCU,、CLB Initiator Wrapper和CLB Target Wrapper三個(gè)部分,,如圖2所示。

    圖中BCU負(fù)責(zé)總線的控制部分,,包括總線的仲裁和地址譯碼,。地址譯碼部分通過存儲(chǔ)器映射機(jī)制完成,每一個(gè)從設(shè)備都有一個(gè)屬于它自己的存儲(chǔ)器映射地址,。這樣,,通過總線上的地址就可以很容易地確定所需要選擇的從設(shè)備。Initiator Wrapper的作用則是把接收到的外部VCI信號(hào)轉(zhuǎn)換成為能夠在CLB總線上進(jìn)行傳輸?shù)腃LB總線信號(hào),。這就涉及到不同協(xié)議之間信號(hào)時(shí)序的轉(zhuǎn)換與匹配的問題,。對(duì)此,本文采用以下策略:(1)對(duì)于協(xié)議兩側(cè)功能相同,、時(shí)序上無差別的信號(hào),,將其直連; (2)對(duì)于協(xié)議兩側(cè)功能有對(duì)應(yīng)關(guān)系,、時(shí)序上無差別的信號(hào),,采取組合邏輯的方法進(jìn)行轉(zhuǎn)換,;(3)對(duì)于協(xié)議兩側(cè)功能上有對(duì)應(yīng)關(guān)系而時(shí)序上又有一定差別的信號(hào),采用有限狀態(tài)機(jī)的方法對(duì)其進(jìn)行時(shí)序的轉(zhuǎn)換,; (4)對(duì)于協(xié)議兩側(cè)無對(duì)應(yīng)關(guān)系的信號(hào),對(duì)其進(jìn)行舍去或者懸空處理[6],。
    在進(jìn)行協(xié)議轉(zhuǎn)換時(shí),如果采用同一時(shí)鐘進(jìn)行轉(zhuǎn)換,,會(huì)導(dǎo)致CLB總線上信號(hào)時(shí)序與實(shí)際的時(shí)序有較大的差異,。為了保證系統(tǒng)模型時(shí)序的周期精確,本文采用多時(shí)鐘技術(shù),,將系統(tǒng)時(shí)鐘和控制總線的時(shí)鐘分離,,并采用一個(gè)四倍于系統(tǒng)時(shí)鐘的虛擬時(shí)鐘來控制總線狀態(tài)的轉(zhuǎn)換。這樣,,可以使有限狀態(tài)機(jī)能夠有充足的時(shí)間進(jìn)行協(xié)議的轉(zhuǎn)換,,也能保證時(shí)序的周期精確。
  在進(jìn)行信號(hào)轉(zhuǎn)換時(shí),,有限狀態(tài)機(jī)由transition()和genMealy()兩個(gè)方法來描述,。其中transition()方法根據(jù)狀態(tài)機(jī)中寄存器的當(dāng)前值和從輸入端口得到的值來計(jì)算寄存器下一時(shí)刻的值,并可用來控制狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換;而genMealy()方法則根據(jù)狀態(tài)機(jī)內(nèi)部寄存器的值和輸入端口的輸入值來計(jì)算輸出端口的輸出信號(hào)的值,,并可用來產(chǎn)生狀態(tài)機(jī)的輸出,。同樣Target Wrapper也可以采用相同的策略來實(shí)現(xiàn)。
2 仿真驗(yàn)證平臺(tái)的設(shè)計(jì)
  在完成了對(duì)CLB的事務(wù)級(jí)建模后,,將對(duì)其進(jìn)行仿真和驗(yàn)證,。本文采用的驗(yàn)證環(huán)境為SoCLib平臺(tái)。SoCLib平臺(tái)是一個(gè)由法國(guó)TIMA Lab,、Lip6等研究機(jī)構(gòu)與STMicroelectronics等知名企業(yè)聯(lián)合開發(fā),、用于多核SoC系統(tǒng)架構(gòu)設(shè)計(jì)的開放式ESL建模仿真平臺(tái)。
    本文所建立的基于SoCLib的仿真驗(yàn)證平臺(tái)如圖3所示,。其中,,CLB/VCI和BCU組成整個(gè)SoC的片上總線,它帶有標(biāo)準(zhǔn)的VCI接口協(xié)議的封裝,,負(fù)責(zé)整個(gè)SoC的通信工作,;C*Core ISS是C*Core的指令集仿真器,用來執(zhí)行編譯好的C*Core的程序代碼;RAM是整個(gè)SoC的片上存儲(chǔ)器,用來存儲(chǔ)編譯好的程序,;TTY是一個(gè)虛擬的可視化終端,,可用它來觀察程序運(yùn)行的結(jié)果;TIMER則是一個(gè)定時(shí)器,,用來記錄程序運(yùn)行的時(shí)間,,便于性能分析。所有這些模塊均帶有標(biāo)準(zhǔn)的VCI接口協(xié)議的封裝。


    系統(tǒng)在運(yùn)行時(shí),,首先將編譯好的程序代碼加載到RAM中,,通過總線將RAM中的指令傳輸?shù)紺*Core ISS仿真器,最后,,C*Core ISS通過總線將運(yùn)算結(jié)果輸出到TTY上,,同時(shí),TIMER完成程序運(yùn)行時(shí)間的計(jì)時(shí)工作,。
3 結(jié)果分析
    利用搭建好的SoCLib平臺(tái),,對(duì)所建立的CLB模型進(jìn)行了大量仿真和測(cè)試,其結(jié)果表明CLB模型的功能完全正確,。為了驗(yàn)證所建立模型與實(shí)際波形在時(shí)序周期上是否精確,,可在頂層配置文件加入產(chǎn)生波形文件的語句,并用這些語句將仿真信息輸出到一個(gè)擴(kuò)展名為.vcd的文件中,。最后,利用Debussy將SoCLib仿真產(chǎn)生的波形文件與國(guó)芯公司提供的CLB的RTL級(jí)的仿真平臺(tái)NCVerilog產(chǎn)生的波形文件進(jìn)行比較,。其仿真波形對(duì)比如圖4所示,。

 

 


    從圖中可以看出,在第一個(gè)時(shí)鐘周期的上升沿,,處理器核將所有訪問的地址(0x80001234)及所要進(jìn)行的操作(讀/寫)置于總線上,,并在第二個(gè)時(shí)鐘周期到所需要的數(shù)據(jù)(0x12345678)。而在SoCLib平臺(tái)上,,由于采用了多時(shí)鐘的方法控制CLB的傳輸狀態(tài)的轉(zhuǎn)換,,因此能夠做到周期精確。此外,,兩個(gè)平臺(tái)上運(yùn)行相同的國(guó)芯公司提供的測(cè)試程序所用的時(shí)間如表1所示,。


    從表中可以看出,由于在SoCLib平臺(tái)上事務(wù)級(jí)總線每次的讀,、寫均是以事務(wù)進(jìn)行,,NCVerilog平臺(tái)上的總線則是按位進(jìn)行的,因此SoCLib平臺(tái)的仿真速度要比NCVerilog平臺(tái)的仿真速度快很多。
    與寄存器傳輸級(jí)(RTL)模型相比,CLB總線事務(wù)級(jí)模型(TLM)是在更高的抽象層次對(duì)系統(tǒng)硬件進(jìn)行建模,,相比RTL模型更容易開發(fā),在設(shè)計(jì)初期就可得到系統(tǒng)的硬件模型,,并且事務(wù)級(jí)平臺(tái)的仿真速度要比RTL級(jí)快很多,因此該模型非常適合于架構(gòu)和性能分析及早期的軟硬件協(xié)同設(shè)計(jì)和驗(yàn)證,。另外,,對(duì)CLB進(jìn)行標(biāo)準(zhǔn)的VCI協(xié)議的封裝,提高了CLB模塊的復(fù)用性,,也可以為SoCLib提供一種新的片上總線的模型,;同時(shí),此次建模也是首次對(duì)國(guó)內(nèi)具有自主知識(shí)產(chǎn)權(quán)CPU的片上總線CLB的事務(wù)級(jí)建模,對(duì)推動(dòng)我國(guó)自主CPU的發(fā)展和使用具有重要的意義,。
參考文獻(xiàn)
[1] CHANG C Y, HSIAO C Y, LEE K J.  Transaction level  modeling and design space exploration for SoC test architectures[C]. Asian Test Symposium, 2009.
[2] Home page of OSCI [EB/OL].http://www.systemc.org,,2010
[3] 朱小虎,曹陽,,羅娟. 基于SystemC的周期精確事務(wù)級(jí)AMBA總線建模[J]. 武漢大學(xué)學(xué)報(bào)(理學(xué)版),,2005,50(5):629-632.
[4] C*Core Technology(Suzhou) Co., Ltd. C*Core 310 User manual version 1.0 [R], 2009.
[5] Virtual Socket Interface Alliance. VSI alliance virtual component Interface Standard Version 2.0(OCB 2.2.0)[S]. OnChip Bus Development Working Group, 2001.
[6] Zhang Qingli, Yu Mingyan, Wang Jinxiang. The design of AMBA AHB/VCI wrapper [C]. 5th International Conference on ASIC, 2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。