Virtex-II Pro開發(fā)板進(jìn)行雙核系統(tǒng)解決方案
Xilinx Virtex-II Pro開發(fā)板為各大學(xué)主要采用的開發(fā)板,該板上主芯片XC2VP30內(nèi)置兩個(gè)硬核PowerPC405,具有30 816邏輯單元、136個(gè)18位的乘法器、2 448 Kbit的Block RAM。國(guó)內(nèi)研究應(yīng)用多使用該板進(jìn)行單核系統(tǒng)設(shè)計(jì),未能充分利用其雙核資源。其原因在于:Xilinx公司軟件對(duì)Virtex-II系列開發(fā)板的雙核系統(tǒng)設(shè)計(jì)支持性不好;Virtex-II Pro開發(fā)板只具有一個(gè)串口輸出,給調(diào)試帶來了極大的不便。
本文引用地址:http://cafeforensic.com/article/150050.htm 針對(duì)在Virtex-II Pro開發(fā)板進(jìn)行雙核系統(tǒng)設(shè)計(jì)難
度大的問題,本文給出雙核硬件系統(tǒng)的構(gòu)建方法,提出一種共享串口輸出和共享存儲(chǔ)器的系統(tǒng)結(jié)構(gòu),能夠充分利用板上資源,下載調(diào)試非常便利,可以很好地支持雙核的應(yīng)用設(shè)計(jì)。
1 硬件系統(tǒng)設(shè)計(jì)
系統(tǒng)采用EDK10.1i03開發(fā)環(huán)境。設(shè)計(jì)雙核的系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
系統(tǒng)具有2個(gè)PowerPC405處理器:PPC_0和PPC_1,兩個(gè)處理器具有各自獨(dú)立的私有Boot BRAM,用于存儲(chǔ)相應(yīng)的應(yīng)用程序。PPC_0通過總線PLB_0控制外設(shè)SDRAM,PPC_1通過總線PLB1控制外設(shè)LED_4Bits。兩個(gè)處理器具有各自的中斷控制器和復(fù)位控制器。JTAG具有2個(gè)PowerPC的接口,并通過共享串口進(jìn)行信息輸出。
雙核系統(tǒng)設(shè)計(jì)流程如下:
(1)利用BSB(Base system Builder)向?qū)蓡魏讼到y(tǒng)。
系統(tǒng)BSB設(shè)置的參數(shù)如下:
· System clock:100 MHz,no cache,no OCM
· RS232:opb UARTLITE,115200n8,use interrupt
· DDRAM:PLB DDR 256 MB,use interrupt
· LEDs_4 Bit:use interrupt
· PLB_BRAM_IF_CNTLR:64 KB
(2)添加和配置IP
由于EDK10不支持雙核系統(tǒng)設(shè)計(jì),因此需要手動(dòng)添加和配置相關(guān)IP,需添加的IP核有:
ppc405, plb_v46, plb2plb_bridge, bram_block, opb_intc plb_bram_if_cntlr, xps_mutex
MHS(Microprocessor Hardware Specification)是描述硬件結(jié)構(gòu)的文件,需要修改MHS文件對(duì)添加的IP核進(jìn)行配置。這里給出主要的ppc405、bram_block、xps_mutex核的配置說明,其他IP核將不再贅述。
?、賹?duì)PPC405_1的配置說明
BEGIN ppc405
PARAMETER INSTANCE = PPC_1
PARAMETER HW_VER = 3.00.a
PARAMETER C_DSOCM_DCR_BASEADDR=
0b0000100000
PARAMETER C_DSOCM_DCR_HIGHADDR =
0b0000100011
BUS_INTERFACE RESETPPC=ppc_rest_bus_1 //復(fù)位
BUS_INTERFACE JTAGPPC = jtagppc_cntlr_0_1
#用于PPC_1調(diào)試
BUS_INTERFACE IPLB0=plb1//總線
BUS_INTERFACE DPLB0=plb1
PORT EICC405EXTINPUTIRQ=xps_intc_1_Irq
PORT CPMC405CLOCK=proc_clk_s //時(shí)鐘
END
?、趯?duì)Mutex核進(jìn)行配置
BEGIN xps_mutex
PARAMETER INSTANCE = xps_mutex_0
PARAMETER HW_VER = 1.00.a
PARAMETER C_NUM_MUTEX = 2
PARAMETER C_SPLB0_BASEADDR = 0x82400000
#該地址應(yīng)用于Mutex初始化
PARAMETER C_SPLB0_HIGHADDR = 0x8240ffff
PARAMETER C_SPLB1_BASEADDR = 0x82600000
#該地址應(yīng)用于Mutex初始化
PARAMETER C_SPLB1_HIGHADDR = 0x8260ffff
BUS_INTERFACE SPLB1 = plb1
BUS_INTERFACE SPLB0 = plb0
END
③共享BRAM核進(jìn)行配置
BEGIN bram_block
PARAMETER INSTANCE = share_bram
PARAMETER HW_VER = 1.00.a
BUS_INTERFACE PORTB=share_bram_if_cntlr_1_PORTA
BUS_INTERFACE PORTA = share_bram_if_cntlr_0_
PORTA
END
(3)生成地址空間(Generate Addresses)
使用Generate Addresses命令,系統(tǒng)自動(dòng)分配地址空間。由于軟件本身不支持雙核系統(tǒng)設(shè)計(jì),在地址空間沖突時(shí),需要手動(dòng)對(duì)沖突的地址空間進(jìn)行調(diào)整。使用Generate Bitstream可產(chǎn)生系統(tǒng)的硬件比特流。
評(píng)論