微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Virtex-II Pro开发板进行双核系统解决方案

Virtex-II Pro开发板进行双核系统解决方案

时间:11-19 来源:互联网 点击:

Xilinx Virtex-II Pro开发板为各大学主要采用的开发板,该板上主芯片XC2VP30内置两个硬核PowerPC405,具有30 816逻辑单元、136个18位的乘法器、2 448 Kbit的Block RAM。国内研究应用多使用该板进行单核系统设计,未能充分利用其双核资源。其原因在于:Xilinx公司软件对Virtex-II系列开发板的双核系统设计支持性不好;Virtex-II Pro开发板只具有一个串口输出,给调试带来了极大的不便。

针对在Virtex-II Pro开发板进行双核系统设计难
度大的问题,本文给出双核硬件系统的构建方法,提出一种共享串口输出和共享存储器的系统结构,能够充分利用板上资源,下载调试非常便利,可以很好地支持双核的应用设计。

1 硬件系统设计

系统采用EDK10.1i03开发环境。设计双核的系统硬件结构如图1所示。

系统具有2个PowerPC405处理器:PPC_0和PPC_1,两个处理器具有各自独立的私有Boot BRAM,用于存储相应的应用程序。PPC_0通过总线PLB_0控制外设SDRAM,PPC_1通过总线PLB1控制外设LED_4Bits。两个处理器具有各自的中断控制器和复位控制器。JTAG具有2个PowerPC的接口,并通过共享串口进行信息输出。

双核系统设计流程如下:

(1)利用BSB(Base system Builder)向导生成单核系统。

系统BSB设置的参数如下:

· 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不支持双核系统设计,因此需要手动添加和配置相关IP,需添加的IP核有:

ppc405, plb_v46, plb2plb_bridge, bram_block, opb_intc plb_bram_if_cntlr, xps_mutex

MHS(Microprocessor Hardware Specification)是描述硬件结构的文件,需要修改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 //复位

BUS_INTERFACE JTAGPPC = jtagppc_cntlr_0_1

#用于PPC_1调试

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

#该地址应用于Mutex初始化

PARAMETER C_SPLB0_HIGHADDR = 0x8240ffff

PARAMETER C_SPLB1_BASEADDR = 0x82600000

#该地址应用于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命令,系统自动分配地址空间。由于软件本身不支持双核系统设计,在地址空间冲突时,需要手动对冲突的地址空间进行调整。使用Generate Bitstream可产生系统的硬件比特流。

2 软件工程设计

2.1 软件工程构建

(1)配置软件平台

由于两个PowerPC通过总线及总线桥共享串口输入,因此需要在Software Platform Settings中,对stdout和stdin配置为RS232_Uart_1。

(2)添加应用工程

添加工程ppc0_test_share和ppc1_test_share。选中两个工程文件,分别Mark to initialize BRAM,并将软件工程指定给各自的处理器。

Generate the linker script,指定将所有程序段放入各自的私有BRAM中。Update Bitstream以生成相应的全局比特流文件。

软件工程包括SDRAM 测试、LED外设测试、SHARE BRAM的读写操作,测试结果通过共享串口进行输出。双核CPU通过Mutex核进行互锁访问,控制访问共享串口。

2.2 Mutex核使用

Mutex提供多核环境下处理器对共享设备的互斥访问。其原理是:Mutex具有32 bit的写数据寄存器,如图2所示。CPU_0访问共享资源前,先向该数据寄存器写自己的CPU_ID,如果Mutex设备空闲,则将CPUID写入寄存器,并Lock置1。CPU_0通过查询和比较写数据寄存器和自己的CPUID,以确定是否获得访问共享资源的权限

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top