《FPGA应用程序加载.docx》由会员分享,可在线阅读,更多相关《FPGA应用程序加载.docx(58页珍藏版)》请在优知文库上搜索。
1、基于XilinxFPGA的嵌入式1.ilIUX设计流程FPGA是通过逻辑组合电路来实现各种功能的器件。由于FPGA内部集成了大量的逻辑资源和可配置的I/O引脚,加上独特的并行处理架构,可以轻松实现同时对多个外部设备的配置和管理,以与内外各种接11数据的传输。现在开发厂商乂在FPGA内部加入了大豉的DSP和BIOCkRAM资源,特别适合图像处理、数字信号处理等运弟密集的应用,因此在这些领域取得了广泛的应用。但是由于FPGA程序编写的敏捷性和功能的多样性,使得它在一个困难工程中对各个程序的运用调度、统筹管理上才很大的局限性,这样就必需引入操作系统进行统一的管理。1.inUX系统则因为其良好的可裁减
2、、可配置等特点在嵌入式领域应用广泛。1.inux操作系统供应了很多系统级的应用,例如用这些资源和强大的系统功能,用户可以快速地开发基于嵌入式环境困难系统。因此,结合FPGA和1.inUX双方优势,可以很好地满意嵌入式系统设计需求,硬体裁衣,去除冗余。本文给出了一种基于XiIinXFPGA的嵌入式1.inUX操作系统解决方案。基于FPGA的嵌入式系统的硬件设计本设计是基于XilinxXC4VFX40系列FPGA,它内部集成了两个PowerPC405处理器,4个10/100/100OM以太网MAC模块,运行频率300MHz时,具有420D-MlPS性能,能解决高速网络数据传输问题,并且能解决通过网
3、络加载操作系统和交叉编译等问题。它内部彳448个可配置I/O口,2592kbBlockRAM,能实现对各种外部设备的并行限制以与较多数据的存储与处理。加栽一个操作系统,一般须要几十兆的内存空间,FPGA内部自带的RAM空间是远远不够的,本设计在板上扩展了两片MICRON公司的256MbDDR内存,作为上电时操作系统的加栽和运行空间。现在主流的嵌入式操作系统,都须要搭建交叉编译环境,把在主机匕编写好的可执行文件下载到目标板匕这就须要实现网络数据的传输.由于XC4VFX40自带了以太网MAC模块,只须要在外面添加个PHY芯片和带隔离器的RJ45接11就能实现这个功能。本设计由于对网络数据实时性要求
4、很高,因此采纳Marvell公司的千兆以太网PHY芯片88E1111-RCJ0它能依据自身配置和主机设计,实现10/100/100OMH适应传输,并且1.inux本身对这个芯片供应了驱动支持,实现无缝链接。操作系统加栽到DDR中能快速有效的运行,但是掉电就会丢失,到外部F1.ASH把操作系统文件从F1.ASH读入到DDR中运行。FPGA设计当然会扩展很多接口出来,利用自身并行处理的优势,限制很多外的设备,本设计也不例外,扩展了8个通用的GPI。,2个PS/2接口,1个USB接口,1个AC97声卡接口,1个HOt1.ink接口,以与4个RS422接口,同时扩展了两个CPCI接口,引出了16位数据
5、地址线和Ethernet限制线,整个系统的硬件框图如图1所示。在进行电路设计时,是以FPGA为核心,向外扩展各种设备,因此特殊留意了FPGA各个引脚的连接。由于DDR和PHY芯片都须要供应+2.5V电压,因此和DDR、PHY芯片连接引脚所在的BANK须要供应+2.5V电压参考,并且不能接以1.VTT1.或1.VCMoS为电压参考的引脚。重要快速的时钟信号必需接到全同时钟引脚上由于FPGA须要通过外部F1.ASH扇动操作系统,须要并行配置,以削减加载时间,配置电路如图2所示。在DDR布线时,数据和地址线须要走等长线,数据线之间不能相差IoMiI,地址线要限制在20Mil以内,时钟也须要走差分等长
6、线,长度应大于地址线,DDR各个信号还须要47C的并行端接,改善信号质量。千兆PHY输出MDI信号也须要在顶层做差分等K,不然在进行100OM数据传输时很可能不稳定。DDR和PHY须要完整的电源回路做参考,电源层划分时也要特殊留意,其他电路做常规处理就可以了。EDK和ISE软件设计首先须要调用XiIinX供应的EDK软件,对各个模块加入必要的IPCoRE,以便操作系统能正常调用这些器件的驱动操作他们。本设计采纳的是版本,PPC方面选用ppc405内核,频率设定在300MHz,同时须要添加中断输入引脚,以便响应以太网、串口等外部中断,其他运用默认设置。DDR限制器采纳EDK供应的MUIti-PO
7、rt-MemOryCOntrOIIer模块,须要设置DDR芯片厂商、大小和数据位数等,特殊指出的是,要设性独立的两条P1.B总线和PPC连接,作为PPC的指令和数据总线CMAC单元须要加入XPS_1.1._TEMAC模块来限制,本设计须要设置PHY类型为GMll(千兆以太网),同时要指定物理地址和收发FIFO大小。F1.ASH单元须要加入xps_mch_emc模块,同时设置F1.ASH类型和读写时间。为了便利调试,还须要加入申口限制台模块,本设计运用的是Uart1.ite模块,设置须要的波特率和校验类型。特殊留意的是,系统还须要时钟管理模块(DCM),供应各个模块须要的不同时钟,还要设置段FP
8、GA内部RAM区域,放置PPC的.boot文件外部这些模块都通过P1.B总线和PPC通信,须要统一编址,一股把DDR内存空间地址安排到OxO起先,整个系统的构建如图3所示。!三3EKD中系统镇城图本设计,除在EDK中搭建r操作系统必需的各种模块后,还须要在ISE中编写各个时序电路程序,因此把EDK中编写好的工程作为一个模块,加入到ISE中,然后统一编译,这样生成r我们须要的完整功能的程序C特殊指出的是,PPC405数据地址采纳的是大端模式,接入到ISE中时,须要把数据颠倒位置,如DATA0:31变为DATA31.0,才能正常读写。1.inux操作系统的加载与烧写加我1.inux操作系统须要利用
9、EDK软件供应的板级升级包(BSP)配置内核。BSP包含了所选定处理器架构的标性文件以与相关硬件的驱勖源文件。首先要在EDKProjectOptionProjectPeripheralRespository选项下设置Xilinx供应的gen-mhs-devtree/edk_lib库路径,然后在软件平台设置中选择Dts模式,编译更新升级包,生成dts配置文件。DtS文件包含了全部模块地址安排,中断以与我动信息,把他加入到1.inux内核中,然后配置内核选项选择对应的处理器架构、所选硬件的驱动模块以与须要的其他内核模块,之后再对完成配置的内核进行编译,生成1.inUX的内核image文件。生成内核
10、image文件之后,还须要生成系统运行所须要的根文件系统。根文件系统中包含了嵌入式1.inUX系统的全部应用程序、库以与系统配置等相关文件。根文件系统中常用的程序和吩咐可利用开源软件Busybox构造。构造完成之后,在Busybox生成的书目和文件的基础上再构造根文件系统的书目树,井添加相关设备文件和配置文件以与系统运行时须要的脚本文件,从而形成最终的根文件系统,ramdisk.imageo把他拷贝至!内核中的./arch/POWerPC/boot书目F,在根书目下运行makezlmagcinitrt,生成最终的系统文件。须要指出的是,在编译IinUX内核时,须要设置好交叉编译环境:首先安装E
11、1.DK编译软件,然后在编辑自己的帐户书目下的bashrc(例如:homeppc)中加入卜面内容:CROSS_COMPI1.E=ppc_4xx$PATH=$PATH:/home/ppc/PowerPc/E1.DK/usr/bin:/home/ppc/PowerPC/E1.DK/binexportCROSS,COMPI1.EPATH保存,然后执行$SOUrCe.bashrc把生成的Zlmage.initrd文件通过EDK软件下的XMD调试窗口,运用dowzlmage.initrd吩咐卜载到DDR中,然后运行run吩咐,就正常启动1.inUX了。程序卜载到DDR中,掉电后,数据就丢失了,不能保存和
12、连续运用,因此要把操作系统烧写到F1.ASH,上电后让它能自动运行,掉电后也不会灭失EDK供应了特地的F1.ASH烧写工具ProgramFlashMemory,首先要把ZImage.initrd文件转换为F1.ASH能识别的.SREC文件,须要在EDKShell运行卜面吩咐:一次烧写F1.ASH时须要把ProgramFlashMemory中CreateFkBootlooderApplication勾上,让系统H动生成Btlooder程序操作系统烧写到Flash中后,须要FPGA在上电后自动从F1.ASH读取操作系,运用EDK下的UpdataBitstream吩咐统数据,然后自动运行,就能实现。
13、最终把生成的mcs文件烧写到FPGAPROM中,上电后,系统就能自动运行了。设计结果与分析在1.inUX系统正常加载后,我们设计一个程序,它通过以太网,从上位机获得数据,存入FPGA内部Bl。CkRam中,再在ISE中编写程序,把获得的数据取出,产生频率可变的波形发生器,并回传发送的参数给上位机。通过试验证明,在FPGA加入操作系统后,能轻松实现网络数据的收发,并通过FPGA自号的逻辑,产生我们须要的各种限制信号,做到了系统的统一调度和各个功能的并行处理,发挥了操作系统和FPGA各自的优势C但是也发觉,FPGA下操作系统运行的频率不高,最多600MHz,中断响应间厢较长,大约3ms左右,系统1
14、.电启动时间较长,大约40s左左,这些都须要在今后设计中进一步完善和提升。结语本文介绍了基于FPGA的嵌入式1.inux设计流程,从硬件设计到1.inux系统加载,再到应用程序运行整个过程,从中可以看出,该设计既发挥rFPGA并行处理和多时序限制上的优势,也发挥了嵌入式1.inux系统调度和可裁剪性方面的优势,还提高r这个系统的稳定行,也削减rFPGA与外部高速总线连接的资源开销,二者的结合,既满意了嵌入式应用按需定制、肽体裁衣的缶求,乂能开发出稳定而功能强大的嵌入式系统,在现在嵌入式系统开发中彳很好的运用。MicroBlaze处理卷的Peta1.inux操作系第移植引言随着FPGA(FiCk
15、lPrograromableGateArray,现场可编程门阵列)技术的快速发展,SOPCfSystamOnaPrograromableChip,可编程片上系统)作为一种特殊的嵌入式微处理器系统,已渐渐成为一个新兴的技术方向。SoPC融合了SOe和FPGA各自的优点,并具备软硬件在系统可编程、可裁减、可扩充、可升级的功能。其核心是在FPGA上实现的嵌入式微处理器核,而如何针对特定的微处理器选择合适的嵌入式操作系统是SoPC开发的难点之一。本文针对XilinX公司的MiCrOBIaZe软核,介绍了Peta1.inux嵌入式操作系统与其移植方法,探讨了Peta1.inux的相关配置和启动方案。1基
16、于MicroBlaze处理器的系统设计1.1MicroBlaze处理器简介MicroBlaze软核处理器是一种针对XilinxFPGA器件而优化的功能强大的微处理器。它内部采纳RISC架构的32位指令和数据总线,支持CorcConnect片上总线的标准外设计集合,具有兼容性和重复利用件,且可依据性能需求和逻辑区域成本随意裁减,极大地扩展了应用范围,其最精简的核只须要将近400个SlicecMicroBlaze的CoreConnect总线、它能够将FPGA内各种不同的IP核连接到一起构成一个完整的系统。CoreConnect总线是一个总线标准的集合,它包括P1.B总线(PrOCeSSor1.OCaIBUS,处理器本地总线),1.MB总线(1.OCalMemoryBus,高速本地存储器总线),FS1.(FastSimplex1.ink,快速单连接)总线,以与XC