陳曉靜,吳愛平
(長江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
?
基于Nios Ⅱ的SOPC實(shí)驗(yàn)教學(xué)平臺(tái)設(shè)計(jì)
陳曉靜,吳愛平
(長江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
提出了以EP4CE30F248N FPGA為核心的SOPC實(shí)驗(yàn)教學(xué)平臺(tái)設(shè)計(jì)方案,介紹了平臺(tái)的硬件組成和軟件開發(fā)工具,以定時(shí)中斷為實(shí)驗(yàn)案例介紹了SOPC實(shí)驗(yàn)的具體流程。該平臺(tái)由核心板、底板和擴(kuò)展板組成,可實(shí)現(xiàn)的實(shí)驗(yàn)項(xiàng)目包括基本模塊實(shí)驗(yàn)和創(chuàng)新型實(shí)驗(yàn)。其中基本模塊實(shí)驗(yàn)類似于單片機(jī)實(shí)驗(yàn),如定時(shí)器、鍵盤、數(shù)碼管顯示模塊等,目的是幫助學(xué)生理解SOPC系統(tǒng)基本設(shè)計(jì)方法;創(chuàng)新型實(shí)驗(yàn)項(xiàng)目是將FPGA并行數(shù)據(jù)處理和Nios Ⅱ處理器靈活控制功能相結(jié)合的實(shí)驗(yàn),如多通道數(shù)據(jù)采集、高精度頻率計(jì)、頻譜儀設(shè)計(jì)等,旨在幫助學(xué)生進(jìn)一步掌握SOPC系統(tǒng)設(shè)計(jì)的精髓。該方案既能實(shí)現(xiàn)SOPC系統(tǒng)基本模塊的實(shí)驗(yàn),又能為電子設(shè)計(jì)競賽和實(shí)際項(xiàng)目開發(fā)提供創(chuàng)新性平臺(tái),有助于培養(yǎng)學(xué)生的SOPC綜合設(shè)計(jì)能力。
SOPC;Nios Ⅱ;FPGA;實(shí)驗(yàn)教學(xué)平臺(tái)
SOPC(System On a Programmable Chip)即片上可編程系統(tǒng),該技術(shù)使用FPGA(Field Programmable Gate Array)的邏輯單元以及植入FPGA內(nèi)部的軟核處理器、存儲(chǔ)模塊和DSP模塊,設(shè)計(jì)出可裁剪、可擴(kuò)充、可升級(jí)的嵌入式處理系統(tǒng)[1]。該系統(tǒng)不僅具有可編程系統(tǒng)的的靈活性,而且具有高速并行處理數(shù)據(jù)的能力。近年來,SOPC技術(shù)在數(shù)據(jù)采集、目標(biāo)跟蹤、電能質(zhì)量監(jiān)測等領(lǐng)域得到了廣泛的應(yīng)用[2~4]。
SOPC系統(tǒng)中的處理器通常有硬核和軟核2種:硬核是指嵌入在可編程芯片內(nèi)部的具有固定掩模版圖的處理器內(nèi)核,如ARM內(nèi)核;軟核是指以硬件描述語言文件的形式存在,需經(jīng)過編譯下載,最終固化到可編程芯片內(nèi)部才可使用的處理器內(nèi)核,如Altera公司推出的Nios Ⅱ嵌入式軟核。雖然硬核的處理性能更高,但由于用戶需支付額外的知識(shí)產(chǎn)權(quán)的費(fèi)用,其推廣應(yīng)用受到限制。相比之下,Nios Ⅱ軟核由Altera公司免費(fèi)提供,用戶只使用很少的邏輯資源就可獲得一個(gè)功能強(qiáng)大的處理器,因此基于Nios Ⅱ軟核的SOPC系統(tǒng)設(shè)計(jì)具有較大的實(shí)際應(yīng)用價(jià)值。
近年來,為了使教學(xué)實(shí)驗(yàn)跟上高新技術(shù)發(fā)展的步伐,許多高校已經(jīng)把SOPC技術(shù)引入到了教學(xué)實(shí)驗(yàn)中。文獻(xiàn)[5]提出了基于Nios Ⅱ的SOPC實(shí)驗(yàn)平臺(tái)的構(gòu)建方法,在該平臺(tái)上可以實(shí)現(xiàn)SOPC系統(tǒng)的基本模塊實(shí)驗(yàn)比如PIO、定時(shí)器、中斷等,但是由于FPGA芯片和外圍設(shè)備被裝配到同一塊電路板上,系統(tǒng)檢修和升級(jí)都不方便。文獻(xiàn)[6]提出了EDA、單片機(jī)以及SOPC一體化實(shí)驗(yàn)的模式,硬件平臺(tái)由FPGA核心板和功能底板組成,具有擴(kuò)展靈活、升級(jí)方便的優(yōu)點(diǎn)。但該實(shí)驗(yàn)平臺(tái)主要是基于8051單片機(jī)IP(Intellectual Property)軟核實(shí)現(xiàn)的,因此該實(shí)驗(yàn)系統(tǒng)本質(zhì)上仍然是單片機(jī)實(shí)驗(yàn),而不是SOPC系統(tǒng)實(shí)驗(yàn),也沒有利用到Nios Ⅱ軟核的處理優(yōu)勢。為此,筆者設(shè)計(jì)了一種基于Nios Ⅱ軟核的新型實(shí)驗(yàn)教學(xué)平臺(tái)設(shè)計(jì)方法。
圖1 SOPC實(shí)驗(yàn)教學(xué)平臺(tái)的設(shè)計(jì)框圖
根據(jù)易擴(kuò)展、易升級(jí)的原則,SOPC實(shí)驗(yàn)教學(xué)平臺(tái)由核心板、底板和擴(kuò)展板3部分組成。其中核心板是一個(gè)FPGA最小系統(tǒng),主要包括EP4CE30F248N FPGA芯片、64Mbit的EPCS64配置芯片、4Mbit SRAM存儲(chǔ)器、256MbitSDRAM存儲(chǔ)器、128MbitCFI FLASH存儲(chǔ)器、主動(dòng)編程AS接口、在系統(tǒng)編程JTAG接口;底板設(shè)計(jì)能夠滿足基本SOPC實(shí)驗(yàn)?zāi)K的實(shí)現(xiàn),主要包括鍵盤、LED燈、七段數(shù)碼管、12864LCD顯示、RS232串口、步進(jìn)電機(jī)驅(qū)動(dòng)、直流電機(jī)驅(qū)動(dòng);擴(kuò)展板是為擴(kuò)展底板的功能使其滿足某些創(chuàng)新型實(shí)驗(yàn)而設(shè)計(jì),包括多通道數(shù)據(jù)采集板(板1)、多通道數(shù)模轉(zhuǎn)換板(板2)、USB2.0擴(kuò)展板(板3)。該平臺(tái)的設(shè)計(jì)框圖如圖1所示,能夠?qū)崿F(xiàn)的實(shí)驗(yàn)項(xiàng)目及其硬件配置如表1所示。
表1 實(shí)驗(yàn)項(xiàng)目及硬件配置
在上述硬件平臺(tái)上,可以完成表1的每個(gè)實(shí)驗(yàn)項(xiàng)目的SOPC設(shè)計(jì)。不同于傳統(tǒng)的嵌入式系統(tǒng)設(shè)計(jì)方式,SOPC系統(tǒng)是硬件和軟件的協(xié)同設(shè)計(jì),遵循如圖2所示的流程。硬件設(shè)計(jì)使用Quartus Ⅱ 11.0和SOPC Builder軟件,其中SOPC Buider可以通過Quartus Ⅱ中子菜單項(xiàng)啟動(dòng)。Quartus Ⅱ可完成基于Nios Ⅱ軟核處理器的嵌入式系統(tǒng)的綜合、優(yōu)化、適配、下載和調(diào)試等,SOPC Builder可完成Nios Ⅱ系統(tǒng)的配置和生成,允許設(shè)計(jì)者在很短時(shí)間內(nèi)創(chuàng)建高度定制的可編程片上系統(tǒng)。軟件開發(fā)在Nios Ⅱ IDE集成開發(fā)環(huán)境中進(jìn)行,該環(huán)境提供易用的圖形用戶界面和GCC編譯器,并能根據(jù)Nios Ⅱ的硬件配置自動(dòng)生成硬件抽象層HAL(Hardware Abstraction Layer)以提供底層硬件訪問的驅(qū)動(dòng)程序,并提供實(shí)時(shí)操作系統(tǒng)和TCP/IP協(xié)議棧的支持。從圖2中還可以看出,SOPC設(shè)計(jì)與FPGA設(shè)計(jì)的區(qū)別在于多了對(duì)軟核處理器和外設(shè)IP模塊的配置步驟,體現(xiàn)了SOPC設(shè)計(jì)的可裁剪和可配置特性。
圖2 SOPC設(shè)計(jì)流程
實(shí)驗(yàn)項(xiàng)目設(shè)計(jì)中一個(gè)關(guān)鍵的環(huán)節(jié)是外設(shè)IP模塊的選擇和配置。Nios Ⅱ系統(tǒng)的外設(shè)可以分為標(biāo)準(zhǔn)外設(shè)和自定義外設(shè)。標(biāo)準(zhǔn)外設(shè)是由Altera公司所提供的一系列免費(fèi)使用的外設(shè)IP,也是其他微控制器系統(tǒng)中通常會(huì)用到的外設(shè),如定時(shí)器、串行通信接口、通用I/O口等。自定義外設(shè)是指當(dāng)標(biāo)準(zhǔn)外設(shè)不能滿足用戶的需求時(shí),用戶使用可編程邏輯資源自己定義外設(shè)集成到Nios Ⅱ系統(tǒng)之中。筆者所提出的實(shí)驗(yàn)項(xiàng)目中基本實(shí)驗(yàn)項(xiàng)目可以選擇標(biāo)準(zhǔn)外設(shè)來設(shè)計(jì),如流水燈實(shí)驗(yàn)可以選擇PIO內(nèi)核,定時(shí)器中斷使用定時(shí)器內(nèi)核,而創(chuàng)新型實(shí)驗(yàn)項(xiàng)目中沒有現(xiàn)成的外設(shè)模塊可以使用,因此需要用戶自定義相應(yīng)外設(shè),如多通道數(shù)據(jù)采集和傳輸實(shí)驗(yàn)可以通過設(shè)計(jì)具有FIFO(First Input First Output,先進(jìn)先出)存儲(chǔ)結(jié)構(gòu)和Avalon總線接口的外設(shè)模塊實(shí)現(xiàn),多通道任意波形發(fā)生器實(shí)驗(yàn)需要具有多路波形數(shù)字量的輸出和鎖存功能的外設(shè)模塊。自定義外設(shè)IP設(shè)計(jì)是SOPC設(shè)計(jì)的難點(diǎn),要求學(xué)生具有邏輯設(shè)計(jì)和接口設(shè)計(jì)的基礎(chǔ)。
為具體說明SOPC實(shí)驗(yàn)設(shè)計(jì)流程,筆者介紹一個(gè)具體的實(shí)驗(yàn)項(xiàng)目實(shí)例——定時(shí)器中斷實(shí)驗(yàn)。該實(shí)驗(yàn)要求每定時(shí)1s,LED燈狀態(tài)發(fā)生反轉(zhuǎn)。
1)首先利用Quartus Ⅱ軟件建立一個(gè)新的工程以及頂層.bdf文件。頂層文件用于描述Nios Ⅱ系統(tǒng)和LPM模塊(Library of Parameterized Modules,參數(shù)化模塊庫)、用戶邏輯設(shè)計(jì)模塊之間的連接關(guān)系。
2)啟動(dòng)SOPC Builder構(gòu)建一個(gè)Nios Ⅱ系統(tǒng)。從組件庫中選取如下組件:1個(gè)Nios Ⅱ處理器、1個(gè)片上RAM存儲(chǔ)器、4個(gè)PIO內(nèi)核,1個(gè)定時(shí)器組件、1個(gè)在系統(tǒng)編程JTAG組件、1個(gè)EPCS控制器組件,各組件在SOPC Builder中互聯(lián)情況如圖3所示。組件加入后需對(duì)其屬性進(jìn)行配置,如Nios Ⅱ處理器選型和復(fù)位地址、異常地址的設(shè)置,RAM存儲(chǔ)器的容量和數(shù)據(jù)位寬的設(shè)置,PIO內(nèi)核的數(shù)據(jù)寬度和數(shù)據(jù)傳輸方向的設(shè)置,定時(shí)器Timer組件的計(jì)數(shù)寬度、初值和預(yù)置模式的設(shè)置等。組件加入并配置完畢后,進(jìn)行自動(dòng)分配地址和中斷,最后點(diǎn)擊generate按鈕產(chǎn)生Nios Ⅱ系統(tǒng)。
3)在頂層文件中加入鎖相環(huán)符號(hào)niosp Ⅱ和Nios Ⅱ系統(tǒng)符號(hào)niosprj,鎖相環(huán)可通過MegaWizard Plug-In Manager工具加入,用于對(duì)板上晶振50MHz進(jìn)行倍頻產(chǎn)生Nios Ⅱ系統(tǒng)的100MHz工作時(shí)鐘。將鎖相環(huán)和Nios Ⅱ系統(tǒng)連接,并進(jìn)行引腳分配,結(jié)果如圖4所示。接下來對(duì)Quartus Ⅱ工程進(jìn)行編譯,編譯成功后生成.sof配置文件和.ptf硬件描述文件。最后利用Programmer工具將.sof配置文件下載到FPGA的RAM中形成SOPC系統(tǒng)的硬件電路部分,至此SOPC系統(tǒng)硬件平臺(tái)已經(jīng)生成。
圖3 SOPC Builder中的組件連接和地址分配
圖4 Quartus Ⅱ工程中的頂層文件
4)啟動(dòng)Nios Ⅱ IDE集成開發(fā)環(huán)境,建立新的工程C/C++Application,指定目標(biāo)硬件為剛生成的ptf文件,并選擇hello world模板;為實(shí)現(xiàn)定時(shí)中斷控制LED燈反轉(zhuǎn),需改寫hello world.c文件代碼:
#include
#include“system.h”#include“altera_avalon_pio_regs.h”
#include“altera_avalon_timer_regs.h”
#include“sys/alt_irq.h”
Void Timer_init();
Void Timer_interrupts(void *context, alt_u32 id);
int i2=0;
Void Timer_init()
{alt_irq_register(TIMER_0_IRQ,0,Timer_interrupts); //中斷注冊(cè)函數(shù)
IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE,0x0000); //清0定時(shí)器狀態(tài)
IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_0_BASE,0x5f5);
IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_0_BASE,0x0e100);//定時(shí)1s
IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_0_BASE,0x0007);//啟動(dòng)連續(xù)定時(shí)
}
Void Timer_interrupts(void *context, alt_u32 id)//中斷服務(wù)函數(shù)
{IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE,0); //清0定時(shí)器狀態(tài)
i2=~i2; //狀態(tài)變量取反
i2&=0x01;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE,i2); //狀態(tài)變量輸出
}
int main()
{
printf(“Hello from Nios Ⅱ!N”);
Timer_init();
while(1);
return 0;
}
該C文件中包含了標(biāo)準(zhǔn)C頭文件,如輸入輸出頭文件stdio.h,設(shè)備地址和中斷號(hào)定義頭文件system.h,內(nèi)核寄存器訪問頭文件altera_avalon_pio_regs.h, altera_avalon_timer_regs.h,中斷頭文件sys/alt_irq.h。這些文件是由Nios Ⅱ IDE對(duì)文件進(jìn)行編譯后自動(dòng)生成,用戶無需對(duì)其進(jìn)行修改。編譯Nios Ⅱ工程將產(chǎn)生可執(zhí)行.elf文件,若在用戶應(yīng)用程序文件夾上點(diǎn)擊右鍵執(zhí)行run as-Nios Ⅱ Hardware,可以觀察Nios Ⅱ的C程序在目標(biāo)硬件上全速執(zhí)行的結(jié)果。
實(shí)驗(yàn)表明,不同的實(shí)驗(yàn)項(xiàng)目所遵循的實(shí)驗(yàn)流程大致相同,其主要區(qū)別體現(xiàn)在3點(diǎn):①頂層文件所包含的模塊和連接方式不同;②SOPC Builder中所加入的外設(shè)IP模塊不同;③Nios Ⅱ IDE中的C程序設(shè)計(jì)不同。而這些區(qū)別也正好體現(xiàn)了SOPC軟硬件設(shè)計(jì)的靈活性,學(xué)生的SOPC系統(tǒng)綜合設(shè)計(jì)能力的不同也能在這3個(gè)方面的設(shè)計(jì)中得以體現(xiàn)。
筆者所提出的SOPC實(shí)驗(yàn)教學(xué)平臺(tái)在實(shí)踐中通過2種開設(shè)方式使用:①隨課實(shí)驗(yàn),即在SOPC系統(tǒng)理論課程中設(shè)置部分實(shí)驗(yàn)學(xué)時(shí);該部分實(shí)驗(yàn)難度不大,平臺(tái)中的基本實(shí)驗(yàn)?zāi)K就能夠滿足需求,同時(shí)理論和實(shí)驗(yàn)相結(jié)合加深了對(duì)SOPC系統(tǒng)的理解,有利于學(xué)生的入門級(jí)學(xué)習(xí)。②創(chuàng)新型實(shí)驗(yàn),這一部分作為SOPC設(shè)計(jì)競賽的訓(xùn)練題目使用,安排在開放式創(chuàng)新實(shí)驗(yàn)室進(jìn)行;該部分實(shí)驗(yàn)要求學(xué)生有較好的專業(yè)基礎(chǔ),并配以專任輔導(dǎo)教師進(jìn)行輔導(dǎo),其目的是提高學(xué)生運(yùn)用先進(jìn)的SOPC設(shè)計(jì)技術(shù)創(chuàng)造性解決實(shí)際問題的能力。
提出了一種新型的SOPC實(shí)驗(yàn)教學(xué)平臺(tái)的設(shè)計(jì)方法,介紹了該平臺(tái)的具體硬軟件設(shè)計(jì),并提供一個(gè)具體的實(shí)驗(yàn)例程說明該平臺(tái)實(shí)驗(yàn)項(xiàng)目的設(shè)計(jì)流程。該平臺(tái)能夠?qū)崿F(xiàn)基本實(shí)驗(yàn)項(xiàng)目和創(chuàng)新型實(shí)驗(yàn)項(xiàng)目,這2類實(shí)驗(yàn)項(xiàng)目可以通過不同的實(shí)驗(yàn)開設(shè)形式進(jìn)行開展,滿足了不同層次的學(xué)生的需求,在高校SOPC實(shí)驗(yàn)教學(xué)中有良好的應(yīng)用前景。
[1]韋思健,張馳,韓文龍,等.最新的SOPC技術(shù)與EDA實(shí)驗(yàn)教學(xué)[J].實(shí)驗(yàn)技術(shù)與管理,2006,23(1):113~115.
[2] 王銳,雷金奎.基于軟核Nios Ⅱ的SOPC數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2008,16(8):1199~1202.
[3] 賀明,王新賽.Nios Ⅱ的紅外圖像實(shí)時(shí)跟蹤系統(tǒng)設(shè)計(jì)[J].電光與控制,2008,15(3):90~96.
[4] 金燕,葛遠(yuǎn)香,梁玲飛,等.基于SOPC的電能質(zhì)量在線監(jiān)測儀的設(shè)計(jì)[J].浙江工業(yè)大學(xué)學(xué)報(bào),2008,36(6):664~668.
[5] 卓興旺,李廣軍.基于NIOS的SOPC實(shí)驗(yàn)平臺(tái)的構(gòu)建[J].實(shí)驗(yàn)科學(xué)與技術(shù),2004(4):30~33.
[6] 唐續(xù),趙芳斌,王嘉.EDA與單片機(jī)及SOPC一體化實(shí)驗(yàn)教學(xué)平臺(tái)研制[J].實(shí)驗(yàn)技術(shù)與管理,2013,30(1):73~77.
[編輯]洪云飛
2016-04-27
湖北省教育廳科學(xué)技術(shù)研究重點(diǎn)項(xiàng)目(D20141303)。
陳曉靜(1980-),女,講師,博士生,現(xiàn)主要從事電磁測量與儀器方面的教學(xué)與研究工作。
吳愛平(1977-),男,副教授,博士,現(xiàn)主要從事信號(hào)采集與處理方面的教學(xué)與研究工作;E-mail:wuaping@yangtzeu.edu.cn。
TP368.1
A
1673-1409(2016)22-0009-05
[引著格式]陳曉靜,吳愛平.基于Nios Ⅱ的SOPC實(shí)驗(yàn)教學(xué)平臺(tái)設(shè)計(jì)[J].長江大學(xué)學(xué)報(bào)(自科版),2016,13(22):9~13.