陳榮軍,劉松勁,譚洪舟,丁顏玉
(1.中山大學(xué) 南方學(xué)院,廣東 廣州 510197;2.中山大學(xué) 信息科學(xué)與技術(shù)學(xué)院,廣東 廣州 510006;3.廣州市加信電子技術(shù)有限公司,廣東 廣州 510663)
當(dāng)前芯片設(shè)計(jì)業(yè)正面臨著一系列的挑戰(zhàn),系統(tǒng)芯片SoC已經(jīng)成為IC設(shè)計(jì)業(yè)界的焦點(diǎn),SoC性能越來(lái)越強(qiáng),規(guī)模越來(lái)越大。LEON是Gaisler Research公司研發(fā)的基于SPARC V8(IEEE-1754)架構(gòu)的開源處理器IP核。它的源碼為可綜合的VHDL代碼,并且是開源的,符合SPARC標(biāo)準(zhǔn)。LEON系列處理器主要包括 3 款:LEON1,LEON2,LEON3。 目前,LEON3 憑著其諸多優(yōu)勢(shì)在FPGA和ASIC上有著巨大的應(yīng)用場(chǎng)景[1]。相比傳統(tǒng)的處理器IP核,LEON3配置靈活,成本低,性能高,更適宜SoC平臺(tái)開發(fā),文中為基于LEON3的SoC平臺(tái)設(shè)計(jì)提供一個(gè)良好的參考方案。
目前開放性源碼已經(jīng)從軟件 (Linux、GCC等)擴(kuò)展到硬件,對(duì)于嵌入式軟核處理器來(lái)說(shuō),出現(xiàn)了像OpenCores這樣專門發(fā)布免費(fèi)的IP核源代碼的組織。目前,免費(fèi)的32位嵌入式軟核處理器有:Gaisler Research公司的 LEON2/LEON3、OpenCores組織公布的OR1200和Altera公司的Nios II。這3種開放性處理器憑借其高性能,低成本,良好的可配置型和完善的開發(fā)環(huán)境,受到了學(xué)術(shù)界和工業(yè)界的普遍重視[2],表1對(duì)這3種軟核進(jìn)行比較[3]。
表1 主流32位免費(fèi)處理器比較Tab.1 Comparison of mainstream 32 free processor
由表1可以看到,對(duì)比OR1200和Nios II,LEON3擁有7級(jí)流水線,指令周期短,內(nèi)存管理單元(MMU)和浮點(diǎn)運(yùn)算單元(FPU)等,性能優(yōu)越。此外它還是開源代碼,配置、移植靈活,占用資源比較少,綜合考慮,可以看出LEON3相比其他處理器IP核,有著明顯優(yōu)勢(shì)。
LEON3內(nèi)部包含7級(jí)整數(shù)流水線。支持硬件乘/除法器以及分立的指令與數(shù)據(jù)緩存(Harvard結(jié)構(gòu))。LEON3通過(guò)高速的AMBA AHB總線連接內(nèi)存控制器、USB接口、JTAG接口等高速外部接口,低速的AMBA APB總線實(shí)現(xiàn)片上外設(shè)的接口,如定時(shí)器、串口、VGA等[4]。其系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)框圖Fig.1 System block diagram
2.2.1 系統(tǒng)開發(fā)環(huán)境
確定LEON3平臺(tái)系統(tǒng)框架后,接下來(lái)配置硬件平臺(tái)搭建環(huán)境,其開發(fā)環(huán)境如下:
1)硬件條件 使用開發(fā)板:DE2-115,F(xiàn)PGA芯片為:Cyclone II, EP2C70, Altera Inc.
2)軟件條件 在 win 7系統(tǒng)安裝虛擬機(jī):VMware 7.0,然后再虛擬機(jī)上安裝Linux系統(tǒng):Red Hat Enterprise Linux 5。在linux環(huán)境下進(jìn)行硬件配置。安裝grmon2-eval,用其下載硬件sof文件,查看硬件信息。
2.2.2 硬件平臺(tái)搭建步驟
在配置好硬件平臺(tái)開發(fā)環(huán)境后,接下來(lái)按照步驟進(jìn)行平臺(tái)搭建,其流程圖如圖2所示。
圖2 硬件平臺(tái)搭建步驟Fig.2 Procedure of designing hardware platform
在Gaisler Research官網(wǎng)上下載LEON3源代碼,然后解壓,在Linux環(huán)境下,找到目標(biāo)板的文件目錄,使用命令make xconfig進(jìn)行各個(gè)硬件模塊的配置,界面如圖3所示,配置信息會(huì)寫入config.vhd文件中[5]。
圖3 LEON3配置界面Fig.3 Configuration interface of LEON3
然后使用命令make quartus建立工程(PC機(jī)上需要預(yù)先安裝quartus ii這個(gè)軟件),使用軟件quartus ii編譯整個(gè)工程生成sof文件,最后把sof文件下載到FPGA開發(fā)板。
安裝軟件GRMON并打開,使用命令info sys,可以看到LEON3內(nèi)核的硬件地址信息,如圖4所示,說(shuō)明LEON 3硬件平臺(tái)搭建完成。
圖4 LEON3硬件地址信息Fig.4 Hardware address information of LEON3
在搭建好LEON3硬件平臺(tái)后,我們?cè)趙indows平臺(tái),編寫流水燈程序,使用sparc-elf-3.4.4-mingw進(jìn)行編譯[6],再用grmon2-eval下載到FPGA目標(biāo)板,使用命令go,運(yùn)行程序,可以看到LED燈依次閃爍,說(shuō)明驗(yàn)證成功。
1)硬件條件
① 開發(fā)板:DE2-115
② FPGA:Cyclone II,EP2C70,Altera Inc.
2)軟件條件
①Cygwin
②sparc-elf-3.4.4-mingw
③grmon2-eval
使用grmon2-eval得到的LEON3各個(gè)模塊以及PIO的地址信息,編寫流水燈程序。LEON3的PIO偏移地址信息如表2所示。
表2 PIO偏移地址信息Tab.2 Offset address information of PIO
硬件地址信息映射PIO部分代碼:
安裝sparc-elf-gcc,使用命令:sparc-elf-gcc-g-O2 LED.co LED-msoft-float編譯代碼LED.c生成可執(zhí)行程序LED。
打開軟件GRMON,使用命令:load LED把可執(zhí)行程序LED下載到目標(biāo)系統(tǒng)。最后使用命令:go,運(yùn)行程序,如圖5所示。
圖5 下載并運(yùn)行程序Fig.5 Download and run the program
運(yùn)行程序后,如圖6所示,可以觀察到測(cè)試平臺(tái)上8盞LED燈依次閃爍,SOC平臺(tái)驗(yàn)證成功。
LEON3處理器以其高性能,低成本和配置靈活等優(yōu)勢(shì)在SoC應(yīng)用上有著廣泛的應(yīng)用。本文使用開源的硬件代碼,提出了一個(gè)比較詳細(xì)的基于LEON3平臺(tái)的精簡(jiǎn)的,靈活的SoC平臺(tái)開發(fā)流程,并編寫流水燈程序,驗(yàn)證平臺(tái)搭建成功,為L(zhǎng)EON3開發(fā)提供了很好的參考[7]。
圖6 LED燈Fig.6 LED lights
[1]LUO Pei,ZHANG Jian.A high reliable SOC on-board computer based on Leon3[C]//IEEE International Conference on Computer Science and Automation Engineering (CSAE),2012.
[2]徐敏,孫愷.開源軟核處理器OpenRisc的SOPC設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.
[3]1-CODE TECHNOLOGIES.Soft CPU Cores for FPGA.1-CODE TECHNOLOGIES.[EB/OL].(2012).http://www.1-core.com/library/digital/soft-cpu-cores/
[4]LI Xue-mei,HOU Li-gang.The FPGA prototyping implementation of LEON3 SoC[C]//IEEE Conference Publications on Industrial Control and Electronics Engineering (ICICEE),2012.
[5]ZHOU Zhong-hua,WU Wu-chen.A SoPC design based on LEON3 SoC platform [C]//1st Asia Pacific Conference on Postgraduate Research in Microelectronics and Electronics,2009.
[6]李林,張曉林,楊希.基于LEON開源軟核的SoC平臺(tái)構(gòu)建與測(cè)試[J].單片機(jī)與嵌入系統(tǒng)用,2007(1):32-35.
LI Lin,ZHANG Xiao-lin,YANG Xi.Construction and testing of SoC platform based on the LEON open source soft-core[J].Microcontroller and Embedded Systems Applications,2007.
[7]熊來(lái)紅,高健,汪皓鈺.COM技術(shù)和遺傳算法在無(wú)功優(yōu)化軟件開發(fā)中的應(yīng)用[J].陜西電力,2011(12):22-26,75.
XIONG Lai-hong,GAO Jian,WANG Hao-yu.Application of com technology and genetic algorithms in power reactive optimization software design[J].Shaanxi Electric Power,2011(12):22-26,75.