首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[转帖]xilinx嵌入式开发与GSRD

[转帖]xilinx嵌入式开发与GSRD

写了篇文章准备投稿,先便宜一下大家..:>
   摘要:在设备小型化,集成化不断加强的今天,嵌入式开发成为新技术发展的最前沿。FPGA由于其自身特点,成为了嵌入式开发的最佳平台。Xilinx公司结合其最新一带高端芯片推出了其嵌入式开发系统,能够实现以硬核PowerPc 405或软核MicroBlaze 32位处理器为核心的SOPC(System on a Programmable Chip)系统,实现许多以前需要计算机或专门处理设备的处理工作。本文简要介绍了使用Xilinx的EDK和ISE等工具流程和设计实现GSRD(Gigabit System Reference Design) 工程应用的实例。
关键词:FPGA  EDK  ISE  硬核 软核 SOPC 嵌入式开发 GSRD  PowePc   MicroBlaze
1 引言
过去传统上,我们基本上只是使用FPGA和CPLD等逻辑器件成为嵌入式处理器的胶合逻辑,数字通道逻辑或DSP算法的高速实现单元,功能有限。
嵌入式是一门综合性的学科,它设计(涉及)传统软硬件设计技术的方方面面,同时还融入了多任务实时操作系统的新内容。在设备高度小型化,集成化的今天,嵌入式的开发成为了科技最前沿的技术,目前国际上最流行的办法是采用嵌入式处理器加上ASCI器件的方式。随着可编程逻辑器件工艺和开发工具日新月异的发展,目前的可编程逻辑器件,尤其是Xilinx和ALtera公司纷纷推出高性价比的新一代超大规模可编程逻辑器件,他们都大量集成了数字器件的功能(如CPU,EMAC,浮点数协处理器等)使得嵌入式产品设计中已经能够实现更多的功能并发挥越来越重要的作用。在美国的火星漫步者上,美国航天局使用了大量的Xilinx FPGA,几乎在每一个FPGA上都使用了嵌入式的开发;美国时代广场的超大屏幕电子国旗也是使用的Xilinx的FPGA和嵌入式系统实现的高速数据传输和处理;美军最新的一带便携式终端通信器的中央处理器使用的也是Xilinx的FPGA和其上的RTOS(Real Time Operation System)系统来完成信号的分析,实时任务的处理和显示等功能。未来随着浮点数运算库成熟,FPGA集成度和功能的进一步加强,数字电路将全面向FPGA集中;随着数字中频技术的提高,较低频率的信道也将被FPGA取代。我们有理由相信在未来的若干年,嵌入式的开发会成为设备开发的关键技术,成为能否引领技术前进的重要因素。
2 Xilinx的嵌入式开发系统
FPGA嵌入式开发目前主要有Xilinx和Altera两家,他们在2000年分别推出的嵌入式开发工具EDK(Embedded Development Kit)和Nios。Xilinx在推出之初就确立了软硬核处理器可选的两种方案,即硬核IBM PowerPc 405 CPU(在部分高端FPGA可用)和软核MicroBlaze(所有现产FPGA可用);相比而言Altera在最初推出软核Nios CPU和硬核ARM7之后,由于效果不好,不得不删除了硬核处理器,软核改进后今年再次推出,称为Nios2 CPU。
作为软核Nios 2 的吞吐量最大值:220DMIPS,而MicroBlaze可以达到250DMIPS;硬核PowerPc405最大可达到:620DMIPS,硬核处理速度与许多嵌入式主板很接进。PopwerPc和MicroBlaze均为32bit RISC处理器,结构参数见下表:
表1 几种处理器结构参数

               Nios2    PowerPc      MicroBlaze        
CPU参数                     32 bit    32 bit    32 bit
数据总线宽度              32       32      64      
ALU宽度(bit)               32       32      32      
内寄存器宽度(bit)      32       32      64      
地址总线宽度(bit)      32       32      64      
指令宽度                        32       32      32     
   目前Xilinx的两种嵌入式处理器已经支持多种实时的多任务嵌入式操作系统,如QNX,Wxworks,Linix,Nucleus,OSE等。这使的嵌入式的开发功能接近控制计算机平台的水平。
Xilinx的嵌入式开发工具包称为EDK,它由XPS(Xilinx Platform Studio),SDK(Software development Kit),Creat-Import peripheral和Cygwin shell组成;其中XPS是主设计程序平台,设计员可以在它的环境下实现嵌入式开发的所有步骤环节,其它的软件工具都可以在XPS里直接调用;SDK是软件开发工具,他支持C和C++语言,主要完成软件的设计的任务;Creat-Import peripheral工具实现了用户IP核和CPU的接口设计;Cygwin shell满足使用者在命令行的界面下进行设计的要求。
嵌入式开发主要分为独立嵌入式处理器开发,处理器嵌入FPGA系统开发和运行RTOS系统的嵌入式开发三种。在独立开发中,FPGA的整个设计就是嵌入式的开发,整个流程在EDK内就能完成;在嵌入FPGA系统开发中,我们必须使用EDK和ISE两种工具协同开发;而当嵌入式处理器要运行RTOS系统时,我们除了EDK、ISE外还需要专门的RTOS开发软件。
嵌入式开发的流程主要有以下几个环节:
根据系统要求,确定所需要的嵌入式系统组成。Xilinx嵌入式系统提供了50多种不同的外设功能的IP核,包括BRAM,DOCM控制器,IOCM控制器,JTAG控制器,UART,EMAC,SDRAM控制器,计时器,中断控制器….;此外它还提供9种总线结构用于不同速率设备的连接,充分发挥CPU和外设的工作效率;
设置地址空间的划分,基本参数的设置。根据不同外设和软件代码的需要分配地址空间,将物理的不同存储器和嵌入式系统的存储空间对应起来,并完成外设的基本参数的设置,这部分工作我们可以自动或手动完成;
产生Netlist,mhs,mss文件,形成软件开发的基础;
编写运行的函数文件,底层的头文件,驱动文件。设计人员需要根据硬件构架和Xilinx提供的基本API函数编写设计者需要的高层函数句柄,在主程序编写适合器件逻辑和外部工作时序的程序;
编译源程序和函数库,形成可执行的elf文件;
调用modelsim实现整个系统设计的软件仿真,检查修改错误;
使用chipscope pro或gnudebug工具将设计下载到硬件电路板上进行调试,检测设计能否达到要求。
将最终的设计的软硬件程序分别固化到目标器件中,使得嵌入式系统能够正常上电后加载工作。
3 应用实例――GSRD的设计
GSRD(Gigabit System Reference Design)是一个全新的设计,作者根据Xilinx今年8月份推出的指导设计,结合Xilinx今年正是投产的新一代集成硬核EMAC的FPGA――vertex 4,开发了具有工程实践性的GSRD系统。它使我们通过FPGA和一个PHY芯片就实现了千兆/百兆/十兆三态以太网的通信,并可以通过嵌入式软件的设计,支持各种网络协议如TCP/IP,UDP等。
1  GSRD关键技术
GSRD主要由三部分组成:MPMC(Multi Port Memeory Contraller)、CDMAC(Communication DMA Contraller)和LL_TEMAC( LocalLink Tri-Mode Ethernet MAC Peripheral );MPMC实现了高速系统对于高带宽多端口的需求,CDMAC解决了存储器和CPU之间数据高速DMA吞吐的控制问题;LL_TEMAC则为用户提供了一个自适应三态MAC。

GSRD系统的组成如图1所示

                        图1  GSRD系统组成框图
设计中,作者将硬件的数据源从FPGA的硬件接口送入嵌入式系统,系统调用TCP/IP协议将数据自动根据预先定义的帧结构和IP地址打包成帧,继而发送。通过客户端的测试程序,千兆通信达到设计要求。
该设计已经在评估板调试完毕,等正样电路板设计完毕后就可进入系统调试阶段。
以下是部分资料提供的数据:

帧长度(bit)     帧/s     帧速率(MBPS)     有效信息速率(MBPS)      
     64    575,428         294.62             211.76      
    128    597,472         611.81             525.78      
    512     233,012         954.42             920.86
我不是高手
多谢vincent分享
返回列表