王 培元
(襄樊學(xué)院 物理與電子工程學(xué)院,湖北 襄樊 441053)
基于FPGA的SOPC設(shè)計(jì)
王 培元
(襄樊學(xué)院 物理與電子工程學(xué)院,湖北 襄樊 441053)
本SOPC系統(tǒng)在Altera 公司Cyclone 系列芯片EP1C6Q240中移植Nios II嵌入式處理器,作為核心控制電路;利用FPGA豐富的可編程邏輯資源和IP軟核構(gòu)成嵌入式處理器的接口模塊,實(shí)現(xiàn)對SDRAM存儲器、FLASH存儲器、LCD液晶顯示器、獨(dú)立鍵盤、LED等硬件的控制;軟件設(shè)計(jì)采用開源的uC/OS-II嵌入式實(shí)時操作系統(tǒng),完成一個嵌入式系統(tǒng)硬件設(shè)計(jì). 經(jīng)調(diào)試運(yùn)行,在該系統(tǒng)上成功進(jìn)行了推箱子游戲,驗(yàn)證了基于FPGA硬件設(shè)計(jì)的可行性,實(shí)現(xiàn)嵌入式實(shí)時多任務(wù)軟件的開發(fā).
FPGA;SOPC;Nios II;uC/OS-II
SOPC(System-on-a-Programmable-Chip),全稱是可編程片上系統(tǒng). 首先它是片上系統(tǒng)(SOC),即由單個芯片完成整個系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁減、可擴(kuò)充、可升級,并具備軟硬件在系統(tǒng)可編程的功能[1]. 隨著FPGA芯片的發(fā)展,SOPC技術(shù)的得到了飛速發(fā)展,利用FPGA設(shè)計(jì)SOPC,為現(xiàn)在越來越復(fù)雜的產(chǎn)品所帶來的競爭壓力提供了高效的解決方案,在高速等高端產(chǎn)品中應(yīng)用越來越廣泛.
SOPC設(shè)計(jì)是nios系統(tǒng)+硬實(shí)時部分+邏輯電路的一個組合體. 其中硬實(shí)時部分和邏輯電路在FPGA芯片內(nèi)可以完美的得到實(shí)現(xiàn). 本設(shè)計(jì)采用ALTERA公司的Nios II軟核和FPGA芯片EP1C6Q240實(shí)現(xiàn)了一個SOPC的設(shè)計(jì).
本 SOPC系統(tǒng)主要實(shí)現(xiàn)推箱子游戲,系統(tǒng)由一個 32bit NiosII軟核處理器、液晶顯示器、SDRAM、FLASH、鍵盤等組成。設(shè)計(jì)的關(guān)鍵是定制Nios II軟核處理器以及處理器與外圍器件的接口電路.
1.1 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)總體硬件結(jié)構(gòu)如圖1所示. 整個系統(tǒng)由FPGA的片上系統(tǒng)和片外硬件電路構(gòu)成[5]. FPGA片外電路包括LCD液晶顯示電路、獨(dú)立鍵盤電路、系統(tǒng)運(yùn)行指示電路、SDRAM存儲器電路、FLASH存儲器電路、EPCS存儲器、復(fù)位電路及時鐘源電路、調(diào)試接口及所需要的電源電路等. FPGA片上系統(tǒng)包括Nios II軟核處理器、延遲復(fù)位模塊、PLL鎖相環(huán)模塊、鍵盤消抖模塊等[2-4].
1.2 Nios II軟核處理器的定制
系統(tǒng)中的 Nios II軟核處理器作為核心控制器件,連接了鍵盤和液晶屏等輸入輸出設(shè)備及 FLASH、SDRAM、EPCS等存儲器,控制著整個系統(tǒng). Nios II軟核處理器的定制是通過ALTERA公司的SOPC Builder系統(tǒng)綜合軟件來完成的. 在定制中要注意處理器的時鐘頻率,外部RAM總線(Avalon三態(tài)橋)、外部RAM接口、外部Flash接口、鍵盤PIO、LCD數(shù)據(jù)線及控制信號線、LED PIO、定時器、System ID的參數(shù)設(shè)置.
1.3 液晶顯示器接口
液晶顯示器以其低功耗、體積小、顯示內(nèi)容豐富、模塊化和接口電路簡單等優(yōu)點(diǎn)在各個領(lǐng)域得到廣泛的應(yīng)用. 本系統(tǒng)液晶顯示規(guī)格為320*240,接口如圖2所示,LCD_WR、LCD_RD、LCD_CD、LCD_RST分別為液晶顯示器的寫、讀、命令/數(shù)據(jù)選擇和復(fù)位等端口,LCD_D0~ LCD_D7為8bit數(shù)據(jù)端口,這些端口都與FPGA連接. FPGA與液晶之間通過電阻實(shí)現(xiàn)3v與5v電平匹配.
1.4 SDRAM存儲器
系統(tǒng)使用的SDRAM是HYNIX公司的HY57V641620,這是一款具有64Mbit容量16位寬的SDRAM,最高工作時鐘可達(dá)200M. 設(shè)計(jì)中建立了一個SDRAM與Avalon總線的結(jié)合體,對Avalon端的地址、數(shù)據(jù)線操作,Avalon總線便會完成對SDRAM的讀寫. FPGA與SDRAM連接圖如圖3所示.
圖1 系統(tǒng)總體結(jié)構(gòu)
圖 2 液晶顯示電路
圖3 SDRAM與FPGA連接圖
1.5 FLASH存儲器
本設(shè)計(jì)中采用的FLASH是Intel公司的JS28F640,具有8MByte容量,其數(shù)據(jù)線可以8bit或16bit方式連接到處理器上,兼容32MByte. 系統(tǒng)中用一個Avalon三態(tài)橋和FLASH控制器實(shí)現(xiàn)Nios II處理器與FPGA片外的FLASH讀寫操作. FPGA與FLASH連接圖如圖4所示.
圖4 FLASH與FPGA連接圖
Nios II系統(tǒng)支持uC/OS-II、uCLinux、eCOS等嵌入式實(shí)時操作系統(tǒng),其中Altera提供對uC/OS-II的完整支持. uC/OS-II是一個完整的、可移植、固化和裁減的占先式實(shí)時多任務(wù)內(nèi)核.
2.1 任務(wù)劃分
按照系統(tǒng)所要求實(shí)現(xiàn)的功能,將整個系統(tǒng)劃分為幾個并行存在的任務(wù),系統(tǒng)創(chuàng)建了4個任務(wù). 分別實(shí)現(xiàn)系統(tǒng)初始化任務(wù)、鍵盤處理、系統(tǒng)運(yùn)行標(biāo)志處理等.
系統(tǒng)初始化任務(wù)主要用來對系統(tǒng)中所使用的I/O端口、LCD液晶、外部按鍵中斷、任務(wù)創(chuàng)建的進(jìn)行初始化設(shè)置;鍵盤處理任務(wù)是根據(jù)外部鍵盤中斷產(chǎn)生的按鍵值,以信號量的方式發(fā)送出去,實(shí)現(xiàn)簡單的通信;系統(tǒng)運(yùn)行標(biāo)志處理任務(wù),主要標(biāo)志uC/OS-II時刻都在運(yùn)行著. 系統(tǒng)軟件設(shè)計(jì)流程圖如圖5所示.
2.2 推箱子游戲的實(shí)現(xiàn)
LCD液晶顯示器分成2部分,左半邊64×64點(diǎn)作為游戲圖形界面的顯示,右半邊作為游戲信息等漢字顯示區(qū)域. 左半邊需要顯示8×8的模擬圖形,以左上角為原點(diǎn),以橫向?yàn)閤軸,以縱向?yàn)閥軸,建立一個橫向坐標(biāo)范圍0~7,縱向坐標(biāo)范圍0~7的游戲界面區(qū)域. 右半邊可以隨意顯示任何信息,包括游戲的等級數(shù)、設(shè)計(jì)者等. 在推箱子游戲中使用了5個模擬圖形,依次為人物、磚頭、箱子、目標(biāo)、成功. 這些圖形由8×8點(diǎn)陣形式顯示.
在構(gòu)建完成游戲界面后,可以通過向上、向下、向左、向右的按鍵控制人物去尋找箱子,并將箱子推到目的地. 系統(tǒng)中游戲設(shè)置了8個等級,操作者可以一關(guān)一關(guān)的進(jìn)行游戲,也可以通過選關(guān)按鍵選擇游戲的等級.
圖5 系統(tǒng)軟件設(shè)計(jì)流程圖
系統(tǒng)完成基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)后,通過調(diào)試完成各項(xiàng)功能. 不僅體現(xiàn)了FPGA在硬件環(huán)節(jié)中設(shè)計(jì)的方便性,在軟件環(huán)節(jié)中更是完整地支持了開源的uC/OS-II.
雖然系統(tǒng)功能已經(jīng)基本實(shí)現(xiàn),但是仍然存在不足之處,還需要改進(jìn). 鍵盤消抖電路使用計(jì)數(shù)延時的方法處理鍵盤抖動,但實(shí)際仍出現(xiàn)一定的誤差,有待改進(jìn). 系統(tǒng)使用變壓器電源,可將電源改進(jìn)后采用小型電源供電,系統(tǒng)就可成為便攜式設(shè)備.
[1] 周立功. SOPC嵌入式系統(tǒng)實(shí)驗(yàn)教程(一)[M]. 北京: 北京航空航天大學(xué)出版社, 2007.
[2] 怯肇乾. FPGA-SOPC軟硬件協(xié)同設(shè)計(jì)縱橫談[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用. 2008(9): 8-11.
[3] 楊志坤, 曾 博, 湯國文. 基于FPGA的嵌入式系統(tǒng)USB接口設(shè)計(jì)[J]. 電子設(shè)計(jì)工程, 2010(01): 30-34.
[4] 利劍清, 宋 躍, 林明仁, 等. 基于FPGA/SOPC-Nios II的頻率計(jì)數(shù)器設(shè)計(jì)[J]. 東莞理工學(xué)院學(xué)報(bào), 2008, 15(3): 53-57.
[5] Altera Corporation. Nios II Hardware Development Tutorial[M/OL]. Version 6.0. [S.l.]: [s.n.], 2006[2010-05-05]. http://www. Docin/p-35566317. html.
Design for Embedded System Based on FPGA
WANG Pei-yuan
(School of Physics and Electronic Engineering, Xiangfan University, Xiangfan 441053, China)
In the system of SOPC, Nios II embedded processor as the controlling core is embedded into a EP1C6Q240 of Altera Cyclone series. And the abundant programmable logical resources and IP core make up of the processor of peripheral interface controlling circuit, which provide SDRAM controlling, FLASH controlling, LCD display controlling, keyboard controlling, LED controlling, and so on. The system of the hardware design is realized and validated successfully by the result of testing that the game can play in the system and the software design of embedded multi-tasking operating system is realized, too.
FPGA;Embedded;Nois II;IP core;uC/ OS-II
TN47
A
1009-2854(2010)08-0042-03
2010-06-18;
2010-08-08
王培元(1973— ), 男, 湖北宜城人, 襄樊學(xué)院物理與電子工程學(xué)院講師.
饒 超)