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

发布者:Xiangtan最新更新时间:2011-11-24 来源: 电子产品世界关键字:Virtex-II  Pro 手机看文章 扫描二维码
随时随地手机看文章

    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,以确定是否获得访问共享资源的权限。没有获得权限,则等待或者退出;获得权限后,对共享资源访问,访问结束后释放锁。其在系统中的连接如图3所示。

  

 

  xps_mutex连接到PLB0和PLB1总线上,初始化时需要对其地址进行配置。在设计过程中发现,由于Xilinx的软件设计问题,EDK10在头文件xparameters.h中不能正常生成SPLB1的地址,表现为软件自动生成的SPLB1和SPLB0的地址相同,会造成Mutex初始化失败。因此在初始化Mutex时,切勿直接使用XMutex_LookupConfig()函数。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,

  //该地址需要对应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):%srn",XPAR_CPU_ID,messages);

  XMutex_Unlock(&mutex,MUTEX_NUM); //释放

  }

  2.3 系统测试结果

  2.3.1 共享串口测试

  设置超级终端,连接JTAG电缆,选中Download Bitstream将比特流下载到目标板上。通过共享串口,两个CPU分别输出其工作状态。输出结果如图4所示。

  

 

  其中CPU(0)输出私有存储器SDRAM的测试正确信息,说明PPC_0正常工作。

  同时观察板上LED显示,led_0、led_2和led_1、led_3呈现交替闪烁状态,说明PPC_1及外设LED工作正常。

  2.3.2 共享存储器读写测试

  SSHM_READFLAG为CPU读写状态指示。SSHM_READFLAG为0时,PPC_0进行写操作;为1时,PPC_1进行读操作。共享存储器的读写操作测试结果如图5所示。

  

 

  PPC_0对共享BRAM进行写数据操作,数据依次为0~4,每次写操作完成后将SSHM_READFLAG置1。PPC_1在PPC_0每次数据操作完毕后,检测到SSHM_READFLAG为1时进行读数据操作,操作完成后置SSHM_READFLAG为0。

  本文完成基于Virtex-II pro开发板的双核PowerPC系统的构建,提高板上资源利用效率。系统通过Mutex的互锁机制完成对共享资源的控制。共享串口输出调试结果,解决了开发板的单串口不易调试的问题;通过共享BRAM进行数据交换,可以实现系统的并行协同处理;直接下载比特流即可实现双核的系统运行,调试和系统运行更为方便。该系统为使用Virtex-II Pro开发板进行双核系统设计提供了参考价值。

关键字:Virtex-II  Pro 引用地址:Virtex-II Pro开发板进行双核系统解决方案

上一篇:基于RS-485总线的温度监控系统
下一篇:基于VC的USB2.0数据采集系统设计

推荐阅读最新更新时间:2024-03-30 21:51

艾迈斯欧司朗携先进娱乐照明解决方案亮相Prolight + Sound 2022
艾迈斯欧司朗携先进娱乐照明解决方案亮相Prolight + Sound 2022 • 展示SIRIUS HRI、Lok-it!、SharXS和HMI DIGITAL系列新成员; • 艾迈斯欧司朗数十年坚守传承,持续创新,致力于满足具有挑战性的行业需求,是照明设计师值得依赖的合作伙伴; • 以技术支持娱乐行业,助力行业恢复活力。 中国,2022年5月9日——全球领先的光学解决方案供应商艾迈斯欧司朗近期亮相 德国法兰克福国际展览中心举行的Prolight + Sound 2022 ,展示了众多适用于剧场剧院、舞台演出和庆典活动的先进娱乐照明解决方案。亮点产品包括全新升级的适用于小型摇头灯的明星产品SIRIUS
[电源管理]
艾迈斯欧司朗携先进娱乐照明解决方案亮相<font color='red'>Pro</font>light + Sound 2022
苹果App Store更新 推iPad Pro应用游戏专区
随着新款12.9英寸iPad Pro平板的上市,苹果也为App Store进行了更新,并推出了专门为iPad Pro而设的应用专区:“iPad Pro精彩App”和“iPad Pro精品游戏”。   据悉,这两个专区的应用均已经针对iPad Pro的特性进行优化,“iPad Pro精彩App”展示了为iPad Pro进行优化的非游戏类应用,在这个专区下App Store又将应用分为几个版块,包括了“为Apple Pencil优化”、“桌面级App”、“强大的多任务功能”、“挥洒创意”、“更大屏,更有可为”和“拟真体验”。比如,苹果自家的iWork套件、微软的Office套件和印象笔记等。   “iPad Pro精品游戏”则
[手机便携]
摩托罗拉edge 30 Pro曝光:搭载骁龙8 Gen 1,装Android12
摩托罗拉 moto edge X30 于 12 月 9 日发布,搭载全新一代骁龙 8 Gen 1 处理器,首发价 2999 元起,据传它将在国际市场上以 Edge 30 Ultra 的名称推出。   现有网友发现,一款显示为 Moto Edge 30 Pro 的机型出现在了 Geekbench 基准测试平台上,透露了该设备的一些关键细节。让我们一起来看看。   摩托罗拉 Edge 30 Pro 规格   摩托罗拉 Edge 30 Pro 搭载的依然是高通最新的骁龙 8 Gen 1 SoC,主频为 3.0GHz 的 1+3+4 集群,具有三个主频为 2.5GHz 的性能内核和四个主频为 1.79GHz 的效率内核。   此
[手机便携]
摩托罗拉edge 30 <font color='red'>Pro</font>曝光:搭载骁龙8 Gen 1,装Android12
华为P50/Pro系列发布时间解密:后置椭圆形超大镜头模组
此前有消息称,华为将在 4 月举行 P50 系列新品发布会,但现在有可靠的数码博主 @鹏鹏君驾到 称,华为 P50/Pro 系列发布时间既不在 4 月份,也不是 6 月份。暗示华为 P50 系列新品发布会将在今年 5 月份举行。   IT之家获悉,此前爆料人士 @OnLeaks 公布了华为 P50 基础版和华为 P50 Pro 的渲染图。   华为 P50 将采用 6.3 英寸平面屏,中置单打孔前置镜头;整机约 156.7 x 74 x 8.3 毫米(算上置摄像头凸起则为 10.6 毫米),因此 P50 机身大于 P40(P40 机身尺寸为 148.9 x 71.06 x 8.5 毫米)。   华为 P50 的设计比 P
[手机便携]
STM32作为主机I2C,读写24C02 EEPROM
1、 时钟和数据的传输:开始和停止条件,数据在SCL的高电平期间有效,在SCL的低电平期间改变。 2、 开始条件:在SCL高电平期间,SDA产生一个下降沿 3、 停止条件:在SCL高电平期间,SDA产生一个上升沿 4、 应答:成功接收到数据(地址和数据),产生一个应答位(在第9个时钟周期,将SDA拉低) 下面是源程序:原理上说,下面程序再移植时,只要将数据类型变化,可以应用到任何处理器 AT24c02.h #ifndef __24CXX_H #define __24CXX_H #include i2c.h /*************************************************************
[单片机]
iQOO 9/Pro系列上架预约:搭骁龙8 首发三星GN5传感器
iQOO 9 系列旗舰手机将于 2022 年 1 月 5 日正式发布,现在新机已在京东自营旗舰店上架接受预约。   预计 iQOO 9 系列包含 iQOO 9 和 iQOO 9 Pro 两款机型,其中 iQOO 9 采用三星 E5 柔性 OLED 直屏,iQOO 9 Pro 则为三星 E5 柔性 OLED 曲屏。屏幕大小均为 6.78 英寸,支持 120Hz 刷新率。   IT之家了解到,iQOO 9 系列搭载高通骁龙 8 旗舰处理器,二者均内置 4700mah 电池,支持 120W 有线快充,iQOO 9 Pro 将支持 50W 无线充电。值得一提的是,这也使得 iQOO 9 成为目前充电速度最快的骁龙 8 直屏旗舰。
[手机便携]
I2C串行总线及串行EEPROM的扩展
一、I2C串行总线的组成及工作原理 采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性增强。 常用的串行扩展总线有:I2C总线(Inter IC BUS)、单总线、SPI(Serial Peripheral Interface)总线及Microwire/PLUS等。 1. I2C串行总线的组成 I2C总线由两根双向信号线组成。一根是数据线SDA,另一根是时钟线SCL。如图: I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出低电平,都将使总线的信号变低,及各器件的SDA及SCL都是线“与”的关系,如图: 每个接到I2C总线上的器件都有唯一的地址。主机与其他器件间的
[单片机]
SIMATIC S7-1500 PLC的通信及其应用—PROFIBUS的结构和类型
PROFIBUS 通信概述 PROFIBUS是西门子的现场总线通信协议,也是IEC61158国际标准中的现场总线标准之一。现场总线PROFIBUS满足了生产过程现场级数据可存取性的重要要求,一方面它覆盖了传感器/执行器领域的通信要求,另一方面又具有单元级领域所有网络级通信功能。特别在“分散I/O”领域,由于有大量的、种类齐全、可连接的现场总线可供选用,因此PROFIBUS已成为事实的国际公认的标准。 (1) PROFIBUS的结构和类型 从用户的角度看,PROFIBUS提供三种通信协议类型:PROFIBUS-FMS、PROFIBUS-DP和PROFIBUS-PA。 ①PROFIBUS-FMS (Fieldbus Message
[嵌入式]
SIMATIC S7-1500 PLC的通信及其应用—<font color='red'>PRO</font>FIBUS的结构和类型
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved