《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于Virtex-II Pro的雙核系統(tǒng)構(gòu)建
基于Virtex-II Pro的雙核系統(tǒng)構(gòu)建
來源:電子技術(shù)應(yīng)用2011年第7期
呂 平,趙明生
(清華大學(xué) 電子工程系,北京100084)
摘要: 基于Xilinx的Virtex-II Pro開發(fā)板實現(xiàn)了雙PowerPC405核硬件系統(tǒng)構(gòu)建,支持對共享存儲器的訪問及共享串口輸出。重點給出了系統(tǒng)的構(gòu)建方法及共享資源控制機制,測試結(jié)果驗證了系統(tǒng)的可行性。
關(guān)鍵詞: FPGA 雙核 powerpc405 Virtex-IIPro Mutex
中圖分類號: TN791
文獻標識碼: A
文章編號: 0258-7998(2011)07-0051-03
Design dual processor system based on Virtex-II Pro board
Lv Ping,Zhao Mingsheng
Department of Electronic Engineering, Tsinghua University, Beijing 100084,China
Abstract: A system with dual PowerPC405 is built based on Virtex-II Pro development board, which support the access of the shared BRAM and Uart. Key steps of building system and principle of share resources are described. Test results verify the feasibility of system.
Key words : dual processor;PowerPC405;Virtex-II Pro;Mutex


    隨著對信息處理技術(shù)要求的不斷提高,單核系統(tǒng)設(shè)計在提升系統(tǒng)整體性能上出現(xiàn)瓶頸,系統(tǒng)設(shè)計逐漸向多核系統(tǒng)設(shè)計轉(zhuǎn)變。Xilinx Virtex-II Pro開發(fā)板為各大學(xué)主要采用的開發(fā)板,該板上主芯片XC2VP30內(nèi)置兩個硬核PowerPC405,具有30 816邏輯單元、136個18位的乘法器、2 448 Kbit的Block RAM。
    但國內(nèi)研究應(yīng)用多使用該板進行單核系統(tǒng)設(shè)計,未能充分利用其雙核資源。其原因在于:Xilinx公司軟件對Virtex-II系列開發(fā)板的雙核系統(tǒng)設(shè)計支持性不好;Virtex-II Pro開發(fā)板只具有一個串口輸出,給調(diào)試帶來了極大的不便。
    針對在Virtex-II Pro開發(fā)板進行雙核系統(tǒng)設(shè)計難度大的問題,本文給出雙核硬件系統(tǒng)的構(gòu)建方法,提出一種共享串口輸出和共享存儲器的系統(tǒng)結(jié)構(gòu),能夠充分利用板上資源,下載調(diào)試非常便利,可以很好地支持雙核的應(yīng)用設(shè)計。
1 硬件系統(tǒng)設(shè)計
    系統(tǒng)采用EDK10.1i03開發(fā)環(huán)境。設(shè)計雙核的系統(tǒng)硬件結(jié)構(gòu)如圖1所示。

    系統(tǒng)具有2個PowerPC405處理器:PPC_0和PPC_1,兩個處理器具有各自獨立的私有Boot BRAM,用于存儲相應(yīng)的應(yīng)用程序。PPC_0通過總線PLB_0控制外設(shè)SDRAM,PPC_1通過總線PLB1控制外設(shè)LED_4Bits。兩個處理器具有各自的中斷控制器和復(fù)位控制器。JTAG具有2個PowerPC的接口,并通過共享串口進行信息輸出。
    雙核系統(tǒng)設(shè)計流程如下:
    (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è)計,因此需要手動添加和配置相關(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文件對添加的IP核進行配置。這里給出主要的ppc405、bram_block、xps_mutex核的配置說明,其他IP核將不再贅述。
    ①對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  //時鐘
    END    
    ②對Mutex核進行配置
    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核進行配置
    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)自動分配地址空間。由于軟件本身不支持雙核系統(tǒng)設(shè)計,在地址空間沖突時,需要手動對沖突的地址空間進行調(diào)整。使用Generate Bitstream可產(chǎn)生系統(tǒng)的硬件比特流。
2 軟件工程設(shè)計
2.1 軟件工程構(gòu)建

    (1)配置軟件平臺
    由于兩個PowerPC通過總線及總線橋共享串口輸入,因此需要在Software Platform Settings中,對stdout和stdin配置為RS232_Uart_1。
    (2)添加應(yīng)用工程
    添加工程ppc0_test_share和ppc1_test_share。選中兩個工程文件,分別Mark to initialize BRAM,并將軟件工程指定給各自的處理器。
    Generate the linker script,指定將所有程序段放入各自的私有BRAM中。Update Bitstream以生成相應(yīng)的全局比特流文件。
    軟件工程包括SDRAM 測試、LED外設(shè)測試、SHARE BRAM的讀寫操作,測試結(jié)果通過共享串口進行輸出。雙核CPU通過Mutex核進行互鎖訪問,控制訪問共享串口。
2.2 Mutex核使用
    Mutex提供多核環(huán)境下處理器對共享設(shè)備的互斥訪問。其原理是:Mutex具有32 bit的寫數(shù)據(jù)寄存器,如圖2所示。CPU_0訪問共享資源前,先向該數(shù)據(jù)寄存器寫自己的CPU_ID,如果Mutex設(shè)備空閑,則將CPUID寫入寄存器,并Lock置1。CPU_0通過查詢和比較寫數(shù)據(jù)寄存器和自己的CPUID,以確定是否獲得訪問共享資源的權(quán)限。沒有獲得權(quán)限,則等待或者退出;獲得權(quán)限后,對共享資源訪問,訪問結(jié)束后釋放鎖。其在系統(tǒng)中的連接如圖3所示。

 

 

    xps_mutex連接到PLB0和PLB1總線上,初始化時需要對其地址進行配置。在設(shè)計過程中發(fā)現(xiàn),由于Xilinx的軟件設(shè)計問題,EDK10在頭文件xparameters.h中不能正常生成SPLB1的地址,表現(xiàn)為軟件自動生成的SPLB1和SPLB0的地址相同,會造成Mutex初始化失敗。因此在初始化Mutex時,切勿直接使用XMutex_LookupConfig()函數(shù)。PPC_1初始化Mutex的過程如下:
#define XPAR_XPS_MUTEX_0_SPLB1_BASEADDR 0x82600000
void init_lock ()
{    XMutex_Config *cfg;
    XMutex_Config XMutex_ConfigTable[] ={
        {    XPAR_XPS_MUTEX_0_DEVICE_ID,
            XPAR_XPS_MUTEX_0_SPLB1_BASEADDR,
//該地址需要對應(yīng)SPLB1的地址
            XPAR_XPS_MUTEX_0_NUM_MUTEX,
            XPAR_XPS_MUTEX_0_ENABLE_USER}
    };
    cfg=&XMutex_ConfigTable[0];
    XMutex_CfgInitialize(&mutex, cfg, cfg->BaseAddress);
}
    訪問共享串口的操作為:
void share_rs232(char *messages)
{    char *tmp;
    XMutex_Lock(&mutex, MUTEX_NUM);//對共享資源加鎖
    printf("CPU(%x):%s\r\n",XPAR_CPU_ID,messages);
    XMutex_Unlock(&mutex,MUTEX_NUM);  //釋放
}
2.3 系統(tǒng)測試結(jié)果
2.3.1 共享串口測試

    設(shè)置超級終端,連接JTAG電纜,選中Download Bitstream將比特流下載到目標板上。通過共享串口,兩個CPU分別輸出其工作狀態(tài)。輸出結(jié)果如圖4所示。

    其中CPU(0)輸出私有存儲器SDRAM的測試正確信息,說明PPC_0正常工作。
    同時觀察板上LED顯示,led_0、led_2和led_1、led_3呈現(xiàn)交替閃爍狀態(tài),說明PPC_1及外設(shè)LED工作正常。
2.3.2 共享存儲器讀寫測試
    SSHM_READFLAG為CPU讀寫狀態(tài)指示。SSHM_READFLAG為0時,PPC_0進行寫操作;為1時,PPC_1進行讀操作。共享存儲器的讀寫操作測試結(jié)果如圖5所示。

    PPC_0對共享BRAM進行寫數(shù)據(jù)操作,數(shù)據(jù)依次為0~4,每次寫操作完成后將SSHM_READFLAG置1。PPC_1在PPC_0每次數(shù)據(jù)操作完畢后,檢測到SSHM_READFLAG為1時進行讀數(shù)據(jù)操作,操作完成后置SSHM_READFLAG為0。
    本文完成基于Virtex-II pro開發(fā)板的雙核PowerPC系統(tǒng)的構(gòu)建,提高板上資源利用效率。系統(tǒng)通過Mutex的互鎖機制完成對共享資源的控制。共享串口輸出調(diào)試結(jié)果,解決了開發(fā)板的單串口不易調(diào)試的問題;通過共享BRAM進行數(shù)據(jù)交換,可以實現(xiàn)系統(tǒng)的并行協(xié)同處理;直接下載比特流即可實現(xiàn)雙核的系統(tǒng)運行,調(diào)試和系統(tǒng)運行更為方便。該系統(tǒng)為使用Virtex-II Pro開發(fā)板進行雙核系統(tǒng)設(shè)計提供了參考價值。
參考文獻
[1] Kowalczyk J.Multiprocessor systems virtex-II series. Xilinx WP162(v1.1).2003.
[2] ASOKAN V.Designing multiprocessor systems in platform studio.Xilinx WP262(v2.0).2007.
[3] Xilinx.ML410 dual processor hardware build using EDK 8.2i SP1.2007.
[4] Asokan V.Dual processor reference design suite.Xilinx XAPP996(v1.0),2007.
[5] Harn Hua Ng.PPC405 lockstep system on ML310.Xilinx XAPP564(v1.0),2004.
[6] Bennett J K.Shared memory multiprocessing using the virtex II PPC:sharing memory,sharing a UART,and synchronization a guide for the XUP development board. University of Colorado at Boulder,2005.
[7] XPS Mutex(v1.00c).www.xilinx.com.2009,24(6).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线一区日本视频| 亚洲国产精品专区久久| 一区免费视频| 国产亚洲精品v| 国产精品一区久久久| 国产精品二区在线| 欧美日韩国产首页| 欧美精品自拍| 欧美精品一区二区蜜臀亚洲| 美女视频黄 久久| 久久影院午夜论| 麻豆精品精华液| 欧美成人精品1314www| 欧美xart系列高清| 免费不卡视频| 欧美激情1区2区3区| 欧美精品少妇一区二区三区| 欧美高清视频www夜色资源网| 嫩草影视亚洲| 欧美久久久久免费| 欧美亚洲第一区| 国产精品成人免费视频| 国产精品女主播| 国产欧美日韩综合一区在线播放| 国产精品中文在线| 国内精品国产成人| 亚洲第一在线综合网站| 亚洲日本中文| 99re6这里只有精品| 国产精品99久久久久久宅男 | 一本色道久久综合狠狠躁篇的优点| 亚洲美女视频| 亚洲先锋成人| 久久国产精品免费一区| 亚洲精品乱码久久久久久按摩观| 一区二区三区**美女毛片| 亚洲影院一区| 久久久久国产一区二区| 欧美成人精品福利| 欧美视频不卡中文| 国产日本欧美一区二区| 伊人久久噜噜噜躁狠狠躁| 亚洲日本在线观看| 亚洲欧美日本视频在线观看| 欧美资源在线观看| 亚洲美女中文字幕| 午夜激情一区| 免费的成人av| 国产精品久久久久av| 国内精品久久久久久| 亚洲精品视频在线播放| 亚洲欧美国产精品桃花| 亚洲国产91| 亚洲欧美日韩精品久久| 久久午夜电影网| 亚洲精品一区二区三区婷婷月 | 一本色道久久综合精品竹菊| 午夜精品视频在线观看| 亚洲欧洲一区二区三区在线观看 | 尤物yw午夜国产精品视频明星| 亚洲久久视频| 久久国产视频网| 宅男噜噜噜66一区二区66| 久久精品一级爱片| 欧美视频第二页| 亚洲电影第三页| 午夜视频久久久久久| 亚洲精选91| 久久精品亚洲一区二区三区浴池| 欧美精选一区| 欧美精品综合| 国产手机视频精品| 日韩性生活视频| 亚洲国产精品第一区二区三区| 亚洲午夜精品网| 久久综合九色欧美综合狠狠| 欧美日韩亚洲成人| 在线观看视频一区| 午夜精品区一区二区三| 在线视频精品| 欧美成人午夜激情在线| 国产精品夜色7777狼人| 亚洲精品美女免费| 亚洲国产精品成人va在线观看| 亚洲欧美一区二区原创| 欧美啪啪一区| 亚洲电影免费观看高清| 欧美在线视频不卡| 亚洲欧美中文日韩在线| 欧美日韩123| 亚洲黄色天堂| 久久精品日韩欧美| 久久精品免费观看| 国产精品系列在线| 9l国产精品久久久久麻豆| 亚洲精品久久久久中文字幕欢迎你 | 在线日韩av| 欧美在线观看你懂的| 性欧美在线看片a免费观看| 欧美人与性动交α欧美精品济南到| 很黄很黄激情成人| 欧美一级夜夜爽| 翔田千里一区二区| 国产精品九九| 在线一区二区三区做爰视频网站| 亚洲美女免费视频| 欧美va亚洲va国产综合| 曰本成人黄色| 欧美制服丝袜| 久久精品道一区二区三区| 国产精品久久久久三级| 一区二区毛片| 亚洲午夜精品17c| 欧美日韩第一页| 日韩亚洲一区二区| 在线一区二区三区四区| 欧美日韩蜜桃| 夜夜嗨av色综合久久久综合网| 亚洲视频axxx| 欧美亚一区二区| 亚洲性视频h| 欧美诱惑福利视频| 国产一区二区中文| 亚洲国产成人一区| 农村妇女精品| 亚洲人成免费| 一区二区三区久久精品| 欧美日韩免费高清一区色橹橹| 亚洲精品视频免费观看| 亚洲午夜性刺激影院| 国产精品美女久久久浪潮软件| 亚洲校园激情| 欧美专区中文字幕| 一区二区视频免费完整版观看| 亚洲国产欧美一区二区三区同亚洲| 免费日韩av片| 日韩亚洲欧美精品| 亚洲欧美在线播放| 国产综合精品一区| 亚洲精品一二| 国产精品成人播放| 亚洲综合999| 久久久久久69| 91久久久精品| 亚洲少妇诱惑| 国产日韩欧美二区| 亚洲高清视频一区二区| 欧美精品一区二区在线观看| 99re热精品| 久久精品卡一| 亚洲国产日韩一区二区| 亚洲一卡久久| 国产亚洲成精品久久| 亚洲人成网站精品片在线观看| 欧美日韩高清在线播放| 亚洲一区二区精品| 久久综合九色综合久99| 亚洲精品日本| 久久不见久久见免费视频1| 亚洲第一黄色网| 亚洲欧美日韩另类| 激情丁香综合| 亚洲视频大全| 国产一区二区三区高清播放| 日韩亚洲一区二区| 国产日韩欧美| 夜夜嗨av一区二区三区四季av| 国产精品欧美激情| 亚洲欧洲在线视频| 国产精品试看| 亚洲人成人一区二区在线观看| 国产精品扒开腿做爽爽爽软件 | 欧美性理论片在线观看片免费| 欧美一区二区三区免费大片| 欧美国产日韩在线| 午夜日韩av| 欧美日韩情趣电影| 欧美在线啊v| 欧美日韩亚洲一区在线观看| 性欧美超级视频| 欧美三级午夜理伦三级中文幕| 久久高清一区| 国产精品久久久久久久第一福利| 亚洲国产日韩美| 国产色视频一区| 一区二区三区视频免费在线观看| 国产在线高清精品| 亚洲免费综合| 亚洲人成久久| 老牛影视一区二区三区| 日韩视频在线免费观看| 欧美日韩亚洲免费| 久久精品日韩| 国产精品入口尤物| 一区二区精品国产| 1000部国产精品成人观看| 欧美一区二区三区久久精品茉莉花| 亚洲国产小视频在线观看| 久久久高清一区二区三区| 一本一本久久|