《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > EDA與制造 > 設(shè)計應(yīng)用 > 基于混合原型平臺的UART IP核設(shè)計與驗證
基于混合原型平臺的UART IP核設(shè)計與驗證
2015年電子技術(shù)應(yīng)用第10期
趙新超,陳 嵐,馮 燕,彭智聰
(中國科學(xué)院微電子研究所,北京100029)
摘要: 傳統(tǒng)的軟硬件設(shè)計方法已無法滿足SoC快速驗證的應(yīng)用需求。針對此現(xiàn)狀,闡述了虛擬平臺與硬件平臺相結(jié)合的混合原型驗證技術(shù),主要介紹了UART IP混合驗證方案,分析了UART IP核協(xié)議、功能模塊設(shè)計以及FPGA平臺搭建,最后通過構(gòu)建虛擬平臺和編寫測試腳本,對IP核進行混合原型驗證。驗證結(jié)果表明,該IP核復(fù)用性好,完全可以應(yīng)用于SoC設(shè)計中。
中圖分類號: TN402
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.10.009

中文引用格式: 趙新超,陳嵐,馮燕,等. 基于混合原型平臺的UART IP核設(shè)計與驗證[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.
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
Abstract: 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.
Key words : UART IP core verification;hybird prototyping platform;hardware prototype;virtual prototype

 

0 引言

  隨著片上系統(tǒng)(System on Chip,SoC)設(shè)計復(fù)雜度的增加,驗證過程也變得更加復(fù)雜。傳統(tǒng)的軟硬件設(shè)計方法是在軟硬件劃分之后,軟件和硬件同步進行設(shè)計,直到硬件(指芯片或開發(fā)板)完成后才可以與軟件集成測試;如果此時發(fā)現(xiàn)軟件或者硬件設(shè)計中存在缺陷需要重新修改設(shè)計時,勢必增加設(shè)計周期,影響產(chǎn)品的上市時間。所以,當(dāng)前迫切需要一種在硬件流片之前,便可以對SoC設(shè)計進行軟硬件協(xié)同驗證的方法?;旌显万炞C便是很好的解決方案。

  混合原型驗證是虛擬原型硬件原型相結(jié)合的一種驗證技術(shù),通常情況下,SoC設(shè)計由硬件設(shè)計和軟件設(shè)計兩部分組成,硬件設(shè)計主要采用寄存器傳輸級(Register Transfer Level,RTL)代碼實現(xiàn),軟件設(shè)計主要在中央處理器(Central Process Unit,CPU)中實現(xiàn),并通過加載Linux內(nèi)核、編譯驅(qū)動和應(yīng)用程序來控制硬件與外界進行交互?;旌显万炞C是兩者功能相結(jié)合的一種驗證方法,可以進行軟硬件協(xié)同開發(fā)與調(diào)試。下面介紹混合原型驗證平臺的設(shè)計方法,并以UART IP核為例,詳細闡述其驗證過程和驗證結(jié)果,為IP核設(shè)計用戶提供一種新型的驗證方案。

1 混合原型驗證平臺


001.jpg

  如圖1所示,混合原型驗證平臺由硬件平臺和虛擬平臺兩部分組成,兩者之間通過高速接口Transactors(XACTOR)互聯(lián)。其中硬件平臺基于HAPS(High-performance ASIC Prototyping System,HAPS)原型驗證系統(tǒng)實現(xiàn),平臺中有一款容量高達450萬門的Virtex-6 LX760 FPGA(Filed Programmable Gate Array),可以為用戶提供較大容量的RTL驗證;虛擬平臺主要由一套完善的開發(fā)工具包組成,在添加虛擬模型時,通過引入已經(jīng)搭建好的虛擬軟件開發(fā)包,為軟件開發(fā)人員將虛擬原型演變?yōu)橐惶赚F(xiàn)成可用的參考開發(fā)工具[1];XACTOR接口通過高速總線UMRBus(Universal Multi-Resource Bus)進行數(shù)據(jù)傳輸[2],UMRBus是一種高性能、低延時通信總線,它能為所有板載FPGA、存儲器、寄存器和其他資源提供連接功能,其傳輸協(xié)議基于AMBA(Advanced Microcontroller Bus Architecture)協(xié)議實現(xiàn)。

  1.1 硬件平臺

  HAPS原型驗證系統(tǒng)由一套HAPS-61高性能ASIC原型驗證平臺和一套復(fù)雜的支撐軟件組成,支撐軟件包括:Certify FPGA代碼分割工具、Synplify FPGA綜合工具、Xilinx ISE布局布線工具、Confpro下載工具以及Identify在線調(diào)試工具。HAPS-61原型驗證系統(tǒng)的主要特點包括:容納高達450萬門的門級電路;843個用戶I/O接口;12個外部差分時鐘輸出;一個100 MHz的晶振,2個PLLs能夠產(chǎn)生高達700 MHz的時鐘頻率;可配置的電源網(wǎng)絡(luò);高速UMRBus數(shù)據(jù)傳輸。

  1.2 虛擬平臺

  與傳統(tǒng)RTL級驗證相比,虛擬平臺的驗證建立在電子系統(tǒng)級(Electronic System Level,ESL)之上,運用SystemC庫和TLM 2.0標準,可以進行快速的系統(tǒng)建模,仿真速度比RTL高很多。虛擬平臺是由一套虛擬軟件開發(fā)包(Virtualizer Development Kits,VDK)組成,可以提供軟件的調(diào)試、分析和仿真功能,憑借ARM Cortex處理器的高性能模型、基于AMBA協(xié)議的總線以及DesignWare IP,開發(fā)者可以方便地將其基于ARM處理器的設(shè)計分割到虛擬平臺和硬件平臺中。在虛擬平臺中單獨仿真時,通過搭建已經(jīng)驗證好的TLM模型,用戶可以脫離硬件進行仿真;在與硬件進行協(xié)同仿真時,通過引入TLM Library,然后在TLM Creator中模擬PHY或測試設(shè)備,再把模擬好的I/O模型映射到基于FPGA的硬件原型HAPS上,最后通過HAPS端口連接真實的外部世界,從而實現(xiàn)軟件和硬件之間的協(xié)同開發(fā),加快了系統(tǒng)開發(fā)進度。

2 UART IP核混合驗證方案

  2.1 整體方案設(shè)計


002.jpg

  為了驗證已經(jīng)設(shè)計好的UART IP核,構(gòu)建如圖2所示的混合驗證方案。圖中,中間部分為HAPS硬件平臺,包含了全部FPGA硬件實現(xiàn),其中UART IP核是自主設(shè)計的基于APB(Advanced Peripheral Bus)接口的待驗證IP核,XACTOR是由本系統(tǒng)提供的接口IP,兩端分別通過APB總線連接UART IP核,再通過UMRBus高速總線連接虛擬平臺;Clock/Reset是由HAPS提供的時鐘和復(fù)位模塊。左半部分為虛擬平臺,通過基于標準TLM2.0的XACTOR接口,用戶可以訪問硬件單元,從而實現(xiàn)基于事務(wù)級模型的協(xié)同仿真。虛擬平臺中事務(wù)級建模測試方法可以由2種方法實現(xiàn):基于GFRBM(Generic File Reader Bus Master)模式的Testbench輸入和基于Linux內(nèi)核的UART驅(qū)動加載,分別可以對硬件RTL中的寄存器讀寫功能和IP核數(shù)據(jù)傳輸功能進行測試。右半部分為連接RS-232串口的超級終端,通過Minicom工具來觀測IP核數(shù)據(jù)收發(fā)的正確性,進而協(xié)助虛擬平臺完成整個系統(tǒng)驗證[3]。

  2.2 UART IP核設(shè)計

  2.2.1 UART協(xié)議

  UART接口是計算機串行通信廣泛使用的接口,包含了RS-232、RS-422、RS-485等串口。本設(shè)計采用Verilog來開發(fā)符合RS-232標準的UART IP核。UART傳輸只需要兩條信號線(RXD,TXD)就可以完成數(shù)據(jù)的相互通信,接收與發(fā)送是全雙工實現(xiàn)。其工作原理是將傳輸數(shù)據(jù)的每個字符進行編碼,一位接著一位的傳輸,傳輸?shù)乃俾视刹ㄌ芈蕰r鐘控制[4]。其中各比特的意義如圖3所示。

003.jpg

  起始位:低電平信號發(fā)起,表示傳輸字符開始;

  數(shù)據(jù)位:起始位后緊接著數(shù)據(jù)位,位數(shù)由7~8位構(gòu)成一個字符,由時鐘控制從低位開始傳送;

  奇偶校驗位:數(shù)據(jù)位加上這一位后,得出“1”的位數(shù)為偶數(shù)或者奇數(shù),以此來校驗數(shù)據(jù)傳輸?shù)恼_性;

  停止位:可以是1位、1.5位、2位的高電平,是一個數(shù)據(jù)幀結(jié)束的標志;

  空閑位:處于高電平狀態(tài),表示當(dāng)前線路上沒有數(shù)據(jù)傳送,若空閑位后出現(xiàn)低電平,則表示下一個數(shù)據(jù)幀的起始位。

  2.2.2 功能模塊設(shè)計

004.jpg

  為了簡化IP核設(shè)計,在具備基本異步串行收發(fā)功能的前提下,去掉了Modem控制器功能模塊。IP核內(nèi)部設(shè)計結(jié)構(gòu)如圖4所示,主要由波特率發(fā)生模塊、線路狀態(tài)與控制模塊、接收模塊、發(fā)送模塊、接收FIFO模塊、發(fā)送FIFO模塊、中斷控制模塊等組成[5]。

  各模塊之間的工作關(guān)系如下:當(dāng)發(fā)送數(shù)據(jù)時,APB總線把數(shù)據(jù)寫入發(fā)送FIFO中,當(dāng)發(fā)送移位寄存器是空時,先由發(fā)送邏輯根據(jù)線路狀態(tài)對數(shù)據(jù)進行配置,即在數(shù)據(jù)頭部加上起始位,在數(shù)據(jù)尾部加上奇偶校驗位和停止位,然后把數(shù)據(jù)壓入到發(fā)送移位寄存器中,最后在發(fā)送時鐘的控制下,通過Data_out線把數(shù)據(jù)發(fā)送出去;接收數(shù)據(jù)時,在接收時鐘的控制下,串行數(shù)據(jù)通過Data_in線逐位送入接收移位寄存器中,當(dāng)檢測到停止位時,數(shù)據(jù)被轉(zhuǎn)換為并行數(shù)據(jù)并送入接收FIFO模塊中,并被總線讀取,后面進入空閑狀態(tài),等待下一次任務(wù)。

  線路狀態(tài)與控制模塊通過地址選通信號鎖存片選信號和地址信號,當(dāng)片選信號有效時,鎖存讀、寫選通信號,當(dāng)檢測到讀或?qū)懙臄?shù)據(jù)到來時,進行相關(guān)寄存器操作。

  中斷控制模塊要求當(dāng)任何中斷發(fā)生時,中斷使能寄存器根據(jù)中斷優(yōu)先級的不同,允許對應(yīng)的中斷發(fā)生。UART IP核的中斷申請可以分為4個優(yōu)先級,從高至低的順序為:INT0(接收器狀態(tài)錯誤),INT1(接收數(shù)據(jù)準備好),INT2(發(fā)送器空),INT3(Modem控制中斷)。

  2.2.3 構(gòu)建UART IP核的FPGA工程

  設(shè)計完基于APB接口的UART IP核后,為使虛擬平臺能夠通過UMRBus總線訪問IP核,需要把IP核添加到頂層文件包含UMRBus高速接口的FPGA工程中。該功能模塊是由例化的XACTOR實現(xiàn),XACTOR是由本平臺提供的接口IP,主要通過AMBA協(xié)議實現(xiàn)軟件平臺與硬件平臺之間的數(shù)據(jù)傳輸,每一個XACTOR由一個CAPIM(Client Application Interface Module)組成,系統(tǒng)總共提供了5類XACTOR供用戶使用:APB、AHB、AXI、GPIO、INT。用戶需要根據(jù)自己設(shè)計的IP核接口類型,選擇對應(yīng)的XACTOR添加到自己的工程中,然后修改相應(yīng)的端口、時鐘、reset信號等,從而產(chǎn)生包含UMRBus高速接口的FPGA工程。

  2.3 虛擬平臺設(shè)計

  2.3.1 搭建虛擬平臺

005.jpg

  本方案需要在虛擬平臺中創(chuàng)建虛擬模型,并分別搭建能夠?qū)τ布TL寄存器讀寫功能測試和對IP核數(shù)據(jù)傳輸功能測試的虛擬平臺。其中,對硬件RTL寄存器讀寫功能測試的虛擬平臺如圖5所示。圖中,i_GFRBM_TLM2作為事件發(fā)起方(Initiator),通過連接tlm2bus總線,可以與硬件平臺進行操作;i_ClockGenerator是虛擬時鐘產(chǎn)生模塊,為總線和Initiator提供時鐘單元;i_ResetGenerator是虛擬模型復(fù)位模塊,提供系統(tǒng)的復(fù)位功能;i_TlmTarget2UmrAMBA和i_IntInitiator2Umr是基于SystemC實現(xiàn)的并與硬件CAPIM相對應(yīng)的XACTOR,通過標準的TLM2.0 Socket接口,實現(xiàn)軟件平臺與硬件平臺的數(shù)據(jù)交互功能。

  2.3.2 設(shè)計腳本

  虛擬平臺搭建完成后,需要在i_GFRBM_TLM2中寫入測試腳本訪問硬件寄存器,以測試IP核寄存器設(shè)計是否正確。在GFRBM模式下,Testbench采用標準的STL 2.0(Socket Transactor Language)語言實現(xiàn),STL是由OCPIP(Open Core Protocol International Partnership)組織提出的標準Socket語言,主要由3個不同的子集組成:

  (1)Basic commands:基于單指令任務(wù)的控制傳輸模式;

  (2)Macro statements:采用短指令的突發(fā)傳輸序列;

  (3)Behavioral statements:用戶自定義控制指令。

  根據(jù)本設(shè)計需要,UART IP核可以被訪問的寄存器名字和地址如表1所示。

008.jpg

  可訪問的寄存器確定完成后,采用STL語言編寫測試腳本,示例如圖6所示。

006.jpg

3 驗證過程與結(jié)果分析

  混合原型驗證方案中,對IP核進行混合驗證之前,首先需要使用仿真器對RTL代碼進行仿真。當(dāng)仿真通過之后,才可以在硬件平臺上進行混合原型驗證。硬件實現(xiàn)時,首先采用Certify工具進行代碼分割,再使用Synplify工具進行代碼綜合,然后使用ISE工具進行布局布線并產(chǎn)生可加載的.bin文件,最后使用Confpro工具配置硬件系統(tǒng)。當(dāng)硬件系統(tǒng)配置完成后,按照圖2所示的方式進行連接,并啟動虛擬平臺開始混合原型驗證。

  3.1 寄存器讀寫功能測試

  在虛擬平臺中通過GFRBM模式對UART IP核進行寄存器讀寫訪問時,參照2.3.1節(jié)中搭建的虛擬平臺和2.3.2節(jié)中給出的測試腳本,分別采用固定值讀寫和隨機數(shù)讀寫兩種方式測試寄存器,結(jié)果如下:

  (1)固定值讀寫測試:分別對表1給出的寄存器寫入固定值0x0000、0x5555、0xaaaa、0xffff,然后讀取該寄存器的值。經(jīng)對比,讀出值與寫入值完全一致。

  (2)隨機值讀寫測試:分別對表1給出的寄存器寫入隨機值$random, 然后讀取該寄存器的值。經(jīng)對比,讀出值與寫入值完全一致。

  3.2 UART數(shù)據(jù)傳輸測試

  與寄存器讀寫功能測試不同,在測試UART IP核的傳輸功能時,首先仿照2.3.1節(jié)的方法,構(gòu)建包含處理器IP核模型的虛擬平臺,然后在虛擬平臺中加載ARM?誖CortexTM處理器IP模型,并編譯UART軟件環(huán)境,包括操作系統(tǒng)、驅(qū)動以及應(yīng)用程序等。測試時,首先在虛擬平臺中對IP核進行傳輸配置,包括傳輸速率、數(shù)據(jù)位、奇偶校驗等,并把發(fā)送數(shù)據(jù)通過IP核發(fā)送到TXD端口,再通過串口傳送到上位機超級終端進行顯示;接收數(shù)據(jù)時,超級終端發(fā)送數(shù)據(jù)至IP核的RXD端口,虛擬平臺讀取IP核接收的數(shù)據(jù),然后把數(shù)據(jù)在虛擬平臺中打印出來,從而確定IP核傳輸功能的正確性。下面分別采用單端發(fā)送和回環(huán)傳輸兩種方法進行測試。

  (1)單端發(fā)送測試:即從虛擬平臺發(fā)送數(shù)據(jù),通過UART IP核傳送至超級終端Minicom,在Minicom中顯示發(fā)送的數(shù)據(jù)是否正確。虛擬平臺中,對UART IP核數(shù)據(jù)傳輸協(xié)議配置如下:傳輸速率9 600 b/s、8 bit數(shù)據(jù)、無校驗位、1 bit停止位,同樣在Minicom中配置相同的傳輸參數(shù)。經(jīng)測試,Minicom接收的數(shù)據(jù)與發(fā)送數(shù)據(jù)完全一致。測試結(jié)果如圖7所示。

007.jpg

  (2)回環(huán)測試:即從虛擬平臺發(fā)送數(shù)據(jù),通過UART IP核傳送至Minicom,Minicom接收到數(shù)據(jù)后,再把接收到的數(shù)據(jù)發(fā)送至UART IP核,虛擬平臺讀取IP核接收的數(shù)據(jù),然后在虛擬平臺顯示窗口進行收發(fā)數(shù)據(jù)對比,以此確定回環(huán)傳輸?shù)恼_性。同樣在虛擬平臺和Minicom中配置如下參數(shù):傳輸速率9 600 b/s、8 bit數(shù)據(jù)、無校驗位、1 bit停止位。經(jīng)測試,虛擬平臺接收的數(shù)據(jù)與發(fā)送數(shù)據(jù)完全一致,從而確定整個通路傳輸是正確的。

4 結(jié)論

  本文介紹了基于虛擬平臺與硬件平臺相結(jié)合的混合原型驗證技術(shù),并以UART IP核為例,對設(shè)計過程進行分析并對結(jié)果進行驗證。由于采用了混合原型驗證技術(shù),使得SoC設(shè)計人員在開發(fā)早期便可發(fā)現(xiàn)設(shè)計的缺陷或故障,進而改進系統(tǒng)的功能和性能,降低開發(fā)風(fēng)險。另外,本方案開發(fā)的IP核完全采用Verilog語言設(shè)計,移植性好,其接口采用標準的APB總線接口協(xié)議,所以不需要用戶進行修改,便可很好地應(yīng)用于SoC設(shè)計中,具有較高的應(yīng)用價值。

參考文獻

  [1] Nithya Ruff.SoC設(shè)計:虛擬原型成為主流[J].電子產(chǎn)品世界,2013(1):25-27.

  [2] UMRBus Communication System Handbook.2012,V3.14[DB/OL].http://www.synopsys.com.

  [3] 吳君欽,李艷麗.一種SoC軟硬件協(xié)同驗證方法的設(shè)計[J].江西理工大學(xué)學(xué)報,2011,32(3):65-68.

  [4] 朱勤,錢敏.嵌入式UART的設(shè)計及FPGA驗證[J].通信技術(shù),2012,45(241):150-153.

  [5] 董大成,張建東,史國慶.基于FPGA的UART IP核的設(shè)計與實現(xiàn)[J].計算機測量與控制,2012,20(8):2251-2253.


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