趙新超,陳 嵐,馮 燕,彭智聰
(中國科學(xué)院微電子研究所,北京 100029)
基于混合原型平臺(tái)的UART IP核設(shè)計(jì)與驗(yàn)證
趙新超,陳嵐,馮燕,彭智聰
(中國科學(xué)院微電子研究所,北京 100029)
傳統(tǒng)的軟硬件設(shè)計(jì)方法已無法滿足SoC快速驗(yàn)證的應(yīng)用需求。針對此現(xiàn)狀,闡述了虛擬平臺(tái)與硬件平臺(tái)相結(jié)合的混合原型驗(yàn)證技術(shù),主要介紹了UART IP混合驗(yàn)證方案,分析了UART IP核協(xié)議、功能模塊設(shè)計(jì)以及FPGA平臺(tái)搭建,最后通過構(gòu)建虛擬平臺(tái)和編寫測試腳本,對IP核進(jìn)行混合原型驗(yàn)證。驗(yàn)證結(jié)果表明,該IP核復(fù)用性好,完全可以應(yīng)用于SoC設(shè)計(jì)中。
UART IP核驗(yàn)證;混合原型平臺(tái);硬件原型;虛擬原型
隨著片上系統(tǒng)(System on Chip,SoC)設(shè)計(jì)復(fù)雜度的增加,驗(yàn)證過程也變得更加復(fù)雜。傳統(tǒng)的軟硬件設(shè)計(jì)方法是在軟硬件劃分之后,軟件和硬件同步進(jìn)行設(shè)計(jì),直到硬件(指芯片或開發(fā)板)完成后才可以與軟件集成測試;如果此時(shí)發(fā)現(xiàn)軟件或者硬件設(shè)計(jì)中存在缺陷需要重新修改設(shè)計(jì)時(shí),勢必增加設(shè)計(jì)周期,影響產(chǎn)品的上市時(shí)間。所以,當(dāng)前迫切需要一種在硬件流片之前,便可以對SoC設(shè)計(jì)進(jìn)行軟硬件協(xié)同驗(yàn)證的方法?;旌显万?yàn)證便是很好的解決方案。
混合原型驗(yàn)證是虛擬原型與硬件原型相結(jié)合的一種驗(yàn)證技術(shù),通常情況下,SoC設(shè)計(jì)由硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分組成,硬件設(shè)計(jì)主要采用寄存器傳輸級(Register Transfer Level,RTL)代碼實(shí)現(xiàn),軟件設(shè)計(jì)主要在中央處理器(Central Process Unit,CPU)中實(shí)現(xiàn),并通過加載Linux內(nèi)核、編譯驅(qū)動(dòng)和應(yīng)用程序來控制硬件與外界進(jìn)行交互?;旌显万?yàn)證是兩者功能相結(jié)合的一種驗(yàn)證方法,可以進(jìn)行軟硬件協(xié)同開發(fā)與調(diào)試。下面介紹混合原型驗(yàn)證平臺(tái)的設(shè)計(jì)方法,并以 UART IP核為例,詳細(xì)闡述其驗(yàn)證過程和驗(yàn)證結(jié)果,為IP核設(shè)計(jì)用戶提供一種新型的驗(yàn)證方案。
如圖1所示,混合原型驗(yàn)證平臺(tái)由硬件平臺(tái)和虛擬平臺(tái)兩部分組成,兩者之間通過高速接口 Transactors (XACTOR)互聯(lián)。其中硬件平臺(tái)基于HAPS(High-performance ASIC Prototyping System,HAPS)原型驗(yàn)證系統(tǒng)實(shí)現(xiàn),平臺(tái)中有一款容量高達(dá) 450萬門的 Virtex-6 LX760 FPGA (Filed Programmable Gate Array),可以為用戶提供較大容量的RTL驗(yàn)證;虛擬平臺(tái)主要由一套完善的開發(fā)工具包組成,在添加虛擬模型時(shí),通過引入已經(jīng)搭建好的虛擬軟件開發(fā)包,為軟件開發(fā)人員將虛擬原型演變?yōu)橐惶赚F(xiàn)成可用的參考開發(fā)工具[1];XACTOR接口通過高速總線UMRBus(Universal Multi-Resource Bus)進(jìn)行數(shù)據(jù)傳輸[2],UMRBus是一種高性能、低延時(shí)通信總線,它能為所有板載FPGA、存儲(chǔ)器、寄存器和其他資源提供連接功能,其傳輸協(xié)議基于 AMBA(Advanced Microcontroller Bus Architecture)協(xié)議實(shí)現(xiàn)。
圖1 混合原型驗(yàn)證平臺(tái)示意圖
1.1硬件平臺(tái)
HAPS原型驗(yàn)證系統(tǒng)由一套 HAPS-61高性能 ASIC原型驗(yàn)證平臺(tái)和一套復(fù)雜的支撐軟件組成,支撐軟件包括:Certify FPGA代碼分割工具、Synplify FPGA綜合工具、Xilinx ISE布局布線工具、Confpro下載工具以及 I-dentify在線調(diào)試工具。HAPS-61原型驗(yàn)證系統(tǒng)的主要特點(diǎn)包括:容納高達(dá)450萬門的門級電路;843個(gè)用戶I/O接口;12個(gè)外部差分時(shí)鐘輸出;一個(gè)100 MHz的晶振,2個(gè)PLLs能夠產(chǎn)生高達(dá)700 MHz的時(shí)鐘頻率;可配置的電源網(wǎng)絡(luò);高速UMRBus數(shù)據(jù)傳輸。
1.2虛擬平臺(tái)
與傳統(tǒng)RTL級驗(yàn)證相比,虛擬平臺(tái)的驗(yàn)證建立在電子系統(tǒng)級(Electronic System Level,ESL)之上,運(yùn)用 SystemC庫和 TLM 2.0標(biāo)準(zhǔn),可以進(jìn)行快速的系統(tǒng)建模,仿真速度比RTL高很多。虛擬平臺(tái)是由一套虛擬軟件開發(fā)包(Virtualizer Development Kits,VDK)組成,可以提供軟件的調(diào)試、分析和仿真功能,憑借 ARM Cortex處理器的高性能模型、基于AMBA協(xié)議的總線以及DesignWare IP,開發(fā)者可以方便地將其基于ARM處理器的設(shè)計(jì)分割到虛擬平臺(tái)和硬件平臺(tái)中。在虛擬平臺(tái)中單獨(dú)仿真時(shí),通過搭建已經(jīng)驗(yàn)證好的TLM模型,用戶可以脫離硬件進(jìn)行仿真;在與硬件進(jìn)行協(xié)同仿真時(shí),通過引入TLM Library,然后在TLM Creator中模擬PHY或測試設(shè)備,再把模擬好的 I/O模型映射到基于FPGA的硬件原型 HAPS上,最后通過HAPS端口連接真實(shí)的外部世界,從而實(shí)現(xiàn)軟件和硬件之間的協(xié)同開發(fā),加快了系統(tǒng)開發(fā)進(jìn)度。
2.1整體方案設(shè)計(jì)
為了驗(yàn)證已經(jīng)設(shè)計(jì)好的UART IP核,構(gòu)建如圖2所示的混合驗(yàn)證方案。圖中,中間部分為HAPS硬件平臺(tái),包含了全部FPGA硬件實(shí)現(xiàn),其中UART IP核是自主設(shè)計(jì)的基于 APB(Advanced Peripheral Bus)接口的待驗(yàn)證IP核,XACTOR是由本系統(tǒng)提供的接口IP,兩端分別通過APB總線連接UART IP核,再通過UMRBus高速總線連接虛擬平臺(tái);Clock/Reset是由 HAPS提供的時(shí)鐘和復(fù)位模塊。左半部分為虛擬平臺(tái),通過基于標(biāo)準(zhǔn)TLM2.0的XACTOR接口,用戶可以訪問硬件單元,從而實(shí)現(xiàn)基于事務(wù)級模型的協(xié)同仿真。虛擬平臺(tái)中事務(wù)級建模測試方法可以由2種方法實(shí)現(xiàn):基于GFRBM(Generic File Reader Bus Master)模式的Testbench輸入和基于Linux內(nèi)核的UART驅(qū)動(dòng)加載,分別可以對硬件RTL中的寄存器讀寫功能和IP核數(shù)據(jù)傳輸功能進(jìn)行測試。右半部分為連接RS-232串口的超級終端,通過Minicom工具來觀測IP核數(shù)據(jù)收發(fā)的正確性,進(jìn)而協(xié)助虛擬平臺(tái)完成整個(gè)系統(tǒng)驗(yàn)證[3]。
圖2 UART IP核混合驗(yàn)證方案
2.2UART IP核設(shè)計(jì)
2.2.1UART協(xié)議
UART接口是計(jì)算機(jī)串行通信廣泛使用的接口,包含了 RS-232、RS-422、RS-485等串口。本設(shè)計(jì)采用Verilog來開發(fā)符合 RS-232標(biāo)準(zhǔn)的 UART IP核。UART傳輸只需要兩條信號(hào)線(RXD,TXD)就可以完成數(shù)據(jù)的相互通信,接收與發(fā)送是全雙工實(shí)現(xiàn)。其工作原理是將傳輸數(shù)據(jù)的每個(gè)字符進(jìn)行編碼,一位接著一位的傳輸,傳輸?shù)乃俾视刹ㄌ芈蕰r(shí)鐘控制[4]。其中各比特的意義如圖3所示。
圖3 異步串行通信協(xié)議數(shù)據(jù)傳輸模式
起始位:低電平信號(hào)發(fā)起,表示傳輸字符開始;
數(shù)據(jù)位:起始位后緊接著數(shù)據(jù)位,位數(shù)由7~8位構(gòu)成一個(gè)字符,由時(shí)鐘控制從低位開始傳送;
奇偶校驗(yàn)位:數(shù)據(jù)位加上這一位后,得出“1”的位數(shù)為偶數(shù)或者奇數(shù),以此來校驗(yàn)數(shù)據(jù)傳輸?shù)恼_性;
停止位:可以是 1位、1.5位、2位的高電平,是一個(gè)數(shù)據(jù)幀結(jié)束的標(biāo)志;
空閑位:處于高電平狀態(tài),表示當(dāng)前線路上沒有數(shù)據(jù)傳送,若空閑位后出現(xiàn)低電平,則表示下一個(gè)數(shù)據(jù)幀的起始位。
2.2.2功能模塊設(shè)計(jì)
為了簡化IP核設(shè)計(jì),在具備基本異步串行收發(fā)功能的前提下,去掉了Modem控制器功能模塊。IP核內(nèi)部設(shè)計(jì)結(jié)構(gòu)如圖4所示,主要由波特率發(fā)生模塊、線路狀態(tài)與控制模塊、接收模塊、發(fā)送模塊、接收 FIFO模塊、發(fā)送 FIFO模塊、中斷控制模塊等組成[5]。
各模塊之間的工作關(guān)系如下:當(dāng)發(fā)送數(shù)據(jù)時(shí),APB總線把數(shù)據(jù)寫入發(fā)送FIFO中,當(dāng)發(fā)送移位寄存器是空時(shí),先由發(fā)送邏輯根據(jù)線路狀態(tài)對數(shù)據(jù)進(jìn)行配置,即在數(shù)據(jù)頭部加上起始位,在數(shù)據(jù)尾部加上奇偶校驗(yàn)位和停止位,然后把數(shù)據(jù)壓入到發(fā)送移位寄存器中,最后在發(fā)送時(shí)鐘的控制下,通過Data_out線把數(shù)據(jù)發(fā)送出去;接收數(shù)據(jù)時(shí),在接收時(shí)鐘的控制下,串行數(shù)據(jù)通過Data_in線逐位送入接收移位寄存器中,當(dāng)檢測到停止位時(shí),數(shù)據(jù)被轉(zhuǎn)換為并行數(shù)據(jù)并送入接收FIFO模塊中,并被總線讀取,后面進(jìn)入空閑狀態(tài),等待下一次任務(wù)。
圖4 UART IP核內(nèi)部設(shè)計(jì)結(jié)構(gòu)圖
線路狀態(tài)與控制模塊通過地址選通信號(hào)鎖存片選信號(hào)和地址信號(hào),當(dāng)片選信號(hào)有效時(shí),鎖存讀、寫選通信號(hào),當(dāng)檢測到讀或?qū)懙臄?shù)據(jù)到來時(shí),進(jìn)行相關(guān)寄存器操作。
中斷控制模塊要求當(dāng)任何中斷發(fā)生時(shí),中斷使能寄存器根據(jù)中斷優(yōu)先級的不同,允許對應(yīng)的中斷發(fā)生。UART IP核的中斷申請可以分為4個(gè)優(yōu)先級,從高至低的順序?yàn)椋篒NT0(接收器狀態(tài)錯(cuò)誤),INT1(接收數(shù)據(jù)準(zhǔn)備好),INT2(發(fā)送器空),INT3(Modem控制中斷)。
2.2.3構(gòu)建UART IP核的FPGA工程
設(shè)計(jì)完基于APB接口的UART IP核后,為使虛擬平臺(tái)能夠通過UMRBus總線訪問IP核,需要把IP核添加到頂層文件包含UMRBus高速接口的FPGA工程中。該功能模塊是由例化的XACTOR實(shí)現(xiàn),XACTOR是由本平臺(tái)提供的接口IP,主要通過AMBA協(xié)議實(shí)現(xiàn)軟件平臺(tái)與硬件平臺(tái)之間的數(shù)據(jù)傳輸,每一個(gè) XACTOR由一個(gè)CAPIM(Client Application Interface Module)組成,系統(tǒng)總共提供了5類 XACTOR供用戶使用:APB、AHB、AXI、GPIO、INT。用戶需要根據(jù)自己設(shè)計(jì)的IP核接口類型,選擇對應(yīng)的XACTOR添加到自己的工程中,然后修改相應(yīng)的端口、時(shí)鐘、reset信號(hào)等,從而產(chǎn)生包含UMRBus高速接口的FPGA工程。
2.3虛擬平臺(tái)設(shè)計(jì)
2.3.1搭建虛擬平臺(tái)
本方案需要在虛擬平臺(tái)中創(chuàng)建虛擬模型,并分別搭建能夠?qū)τ布TL寄存器讀寫功能測試和對IP核數(shù)據(jù)傳輸功能測試的虛擬平臺(tái)。其中,對硬件RTL寄存器讀寫功能測試的虛擬平臺(tái)如圖5所示。圖中,i_GFRBM_TLM2作為事件發(fā)起方(Initiator),通過連接 tlm2bus總線,可以與硬件平臺(tái)進(jìn)行操作;i_ClockGenerator是虛擬時(shí)鐘產(chǎn)生模塊,為總線和 Initiator提供時(shí)鐘單元;i_ResetGenerator是虛擬模型復(fù)位模塊,提供系統(tǒng)的復(fù)位功能;i_TlmTarget2UmrAMBA和i_IntInitiator2Umr是基于SystemC實(shí)現(xiàn)的并與硬件 CAPIM相對應(yīng)的 XACTOR,通過標(biāo)準(zhǔn)的TLM2.0 Socket接口,實(shí)現(xiàn)軟件平臺(tái)與硬件平臺(tái)的數(shù)據(jù)交互功能。
圖5 進(jìn)行寄存器讀寫操作的虛擬平臺(tái)
2.3.2設(shè)計(jì)腳本
虛擬平臺(tái)搭建完成后,需要在i_GFRBM_TLM2中寫入測試腳本訪問硬件寄存器,以測試IP核寄存器設(shè)計(jì)是否正確。在 GFRBM模式下,Testbench采用標(biāo)準(zhǔn)的STL 2.0(Socket Transactor Language)語言實(shí)現(xiàn),STL是由OCPIP(Open Core Protocol International Partnership)組織提出的標(biāo)準(zhǔn)Socket語言,主要由3個(gè)不同的子集組成:
(1)Basic commands:基于單指令任務(wù)的控制傳輸模式;
(2)Macro statements:采用短指令的突發(fā)傳輸序列;
(3)Behavioral statements:用戶自定義控制指令。
根據(jù)本設(shè)計(jì)需要,UART IP核可以被訪問的寄存器名字和地址如表1所示。
表1 UART可訪問寄存器名稱及地址
可訪問的寄存器確定完成后,采用STL語言編寫測試腳本,示例如圖6所示。
圖6 基于STL語言的測試腳本
混合原型驗(yàn)證方案中,對IP核進(jìn)行混合驗(yàn)證之前,首先需要使用仿真器對RTL代碼進(jìn)行仿真。當(dāng)仿真通過之后,才可以在硬件平臺(tái)上進(jìn)行混合原型驗(yàn)證。硬件實(shí)現(xiàn)時(shí),首先采用 Certify工具進(jìn)行代碼分割,再使用Synplify工具進(jìn)行代碼綜合,然后使用ISE工具進(jìn)行布局布線并產(chǎn)生可加載的.bin文件,最后使用Confpro工具配置硬件系統(tǒng)。當(dāng)硬件系統(tǒng)配置完成后,按照圖2所示的方式進(jìn)行連接,并啟動(dòng)虛擬平臺(tái)開始混合原型驗(yàn)證。
3.1寄存器讀寫功能測試
在虛擬平臺(tái)中通過GFRBM模式對UART IP核進(jìn)行寄存器讀寫訪問時(shí),參照 2.3.1節(jié)中搭建的虛擬平臺(tái)和2.3.2節(jié)中給出的測試腳本,分別采用固定值讀寫和隨機(jī)數(shù)讀寫兩種方式測試寄存器,結(jié)果如下:
(1)固定值讀寫測試:分別對表1給出的寄存器寫入固定值0x0000、0x5555、0xaaaa、0xffff,然后讀取該寄存器的值。經(jīng)對比,讀出值與寫入值完全一致。
(2)隨機(jī)值讀寫測試:分別對表1給出的寄存器寫入隨機(jī)值$random,然后讀取該寄存器的值。經(jīng)對比,讀出值與寫入值完全一致。
3.2UART數(shù)據(jù)傳輸測試
與寄存器讀寫功能測試不同,在測試UART IP核的傳輸功能時(shí),首先仿照 2.3.1節(jié)的方法,構(gòu)建包含處理器IP核模型的虛擬平臺(tái),然后在虛擬平臺(tái)中加載ARM? CortexTM處理器 IP模型,并編譯 UART軟件環(huán)境,包括操作系統(tǒng)、驅(qū)動(dòng)以及應(yīng)用程序等。測試時(shí),首先在虛擬平臺(tái)中對IP核進(jìn)行傳輸配置,包括傳輸速率、數(shù)據(jù)位、奇偶校驗(yàn)等,并把發(fā)送數(shù)據(jù)通過IP核發(fā)送到TXD端口,再通過串口傳送到上位機(jī)超級終端進(jìn)行顯示;接收數(shù)據(jù)時(shí),超級終端發(fā)送數(shù)據(jù)至IP核的RXD端口,虛擬平臺(tái)讀取IP核接收的數(shù)據(jù),然后把數(shù)據(jù)在虛擬平臺(tái)中打印出來,從而確定IP核傳輸功能的正確性。下面分別采用單端發(fā)送和回環(huán)傳輸兩種方法進(jìn)行測試。
(1)單端發(fā)送測試:即從虛擬平臺(tái)發(fā)送數(shù)據(jù),通過UART IP核傳送至超級終端 Minicom,在 Minicom中顯示發(fā)送的數(shù)據(jù)是否正確。虛擬平臺(tái)中,對UART IP核數(shù)據(jù)傳輸協(xié)議配置如下:傳輸速率9 600 b/s、8 bit數(shù)據(jù)、無校驗(yàn)位、1 bit停止位,同樣在 Minicom中配置相同的傳輸參數(shù)。經(jīng)測試,Minicom接收的數(shù)據(jù)與發(fā)送數(shù)據(jù)完全一致。測試結(jié)果如圖7所示。
(2)回環(huán)測試:即從虛擬平臺(tái)發(fā)送數(shù)據(jù),通過 UART IP核傳送至 Minicom,Minicom接收到數(shù)據(jù)后,再把接收到的數(shù)據(jù)發(fā)送至UART IP核,虛擬平臺(tái)讀取 IP核接收的數(shù)據(jù),然后在虛擬平臺(tái)顯示窗口進(jìn)行收發(fā)數(shù)據(jù)對比,以此確定回環(huán)傳輸?shù)恼_性。同樣在虛擬平臺(tái)和 Minicom中配置如下參數(shù):傳輸速率 9 600 b/s、8 bit數(shù)據(jù)、無校驗(yàn)位、1 bit停止位。經(jīng)測試,虛擬平臺(tái)接收的數(shù)據(jù)與發(fā)送數(shù)據(jù)完全一致,從而確定整個(gè)通路傳輸是正確的。
圖7 虛擬平臺(tái)發(fā)送數(shù)據(jù)和Minicom接收數(shù)據(jù)示意圖
本文介紹了基于虛擬平臺(tái)與硬件平臺(tái)相結(jié)合的混合原型驗(yàn)證技術(shù),并以UART IP核為例,對設(shè)計(jì)過程進(jìn)行分析并對結(jié)果進(jìn)行驗(yàn)證。由于采用了混合原型驗(yàn)證技術(shù),使得SoC設(shè)計(jì)人員在開發(fā)早期便可發(fā)現(xiàn)設(shè)計(jì)的缺陷或故障,進(jìn)而改進(jìn)系統(tǒng)的功能和性能,降低開發(fā)風(fēng)險(xiǎn)。另外,本方案開發(fā)的IP核完全采用 Verilog語言設(shè)計(jì),移植性好,其接口采用標(biāo)準(zhǔn)的APB總線接口協(xié)議,所以不需要用戶進(jìn)行修改,便可很好地應(yīng)用于SoC設(shè)計(jì)中,具有較高的應(yīng)用價(jià)值。
[1]Nithya Ruff.SoC設(shè)計(jì):虛擬原型成為主流[J].電子產(chǎn)品世界,2013(1):25-27.
[2]UMRBus Communication System Handbook.2012,V3.14 [DB/OL].http://www.synopsys.com.
[3]吳君欽,李艷麗.一種SoC軟硬件協(xié)同驗(yàn)證方法的設(shè)計(jì)[J].江西理工大學(xué)學(xué)報(bào),2011,32(3):65-68.
[4]朱勤,錢敏.嵌入式 UART的設(shè)計(jì)及FPGA驗(yàn)證[J].通信技術(shù),2012,45(241):150-153.
[5]董大成,張建東,史國慶.基于FPGA的 UART IP核的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2012,20(8):2251-2253.
Design and verification of UART IP core based on hybird ptototyping platform
Zhao Xinchao,Chen Lan,F(xiàn)eng Yan,Peng Zhicong
(Institute of Microelectronics of Chinese Academy of Sciences,Beijing 100029,China)
So far,the hardware and software design in traditional method is unable to meet the application requirements of fast SoC verification.In this situation,the mixed prototyping verification technology is provided which comprised of the virtual platform and the hardware platform.This paper mainly introduces the hybrid verification scheme of UART IP,analysis of the UART IP core protocol,the design of function modules,and the establishment of FPGA platform.Finally,the UART IP core is verified in hybird prototyping method by constructing a virtual platform and writing testsbench.According to the verification results,the IP core is of good reusability and can be applied in SoC design.
UART IP core verification;hybird prototyping platform;hardware prototype;virtual prototype
TN402
A
10.16157/j.issn.0258-7998.2015.10.009
(2015-02-15)
趙新超(1981-),男,碩士研究生,助理研究員,主要研究方向:集成電路IP核標(biāo)準(zhǔn)、SoC混合原型驗(yàn)證。
陳嵐(1968-),通信作者,女,博士生導(dǎo)師,研究員,主要研究方向:超深亞微米芯片設(shè)計(jì)方法學(xué)及計(jì)算機(jī)體系結(jié)構(gòu),E-mail:chenlan@ime.ac.cn。
馮燕(1980-),女,碩士研究生,助理研究員,主要研究方向:IP核標(biāo)準(zhǔn)與 IP核共性技術(shù)。
中文引用格式:趙新超,陳嵐,馮燕,等.基于混合原型平臺(tái)的 UART IP核設(shè)計(jì)與驗(yàn)證[J].電子技術(shù)應(yīng)用,2015,41 (10):39-42.
英文引用格式:Zhao Xinchao,Chen Lan,F(xiàn)eng Yan,et al.Design and verification of UART IP core based on hybird ptototyping platform[J].Application of Electronic Technique,2015,41(10):39-42.