FPGA嵌入式开发技术.ppt_第1页
FPGA嵌入式开发技术.ppt_第2页
FPGA嵌入式开发技术.ppt_第3页
FPGA嵌入式开发技术.ppt_第4页
FPGA嵌入式开发技术.ppt_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FPGA应用,基于FPGA的嵌入式开发技术,嵌入式系统概述,以计算机技术为基础的专用应用系统,软、硬件可剪裁CPU/DSP为核心硬件硬件固定,软件可灵活配置基于FPGA的嵌入式系统软硬件协同设计、工作硬件可编程SOPC(片上可编程系统),FPGA嵌入式系统分类,状态机模式:可以无外设、无总线结构、无实时操作系统(RTOS),低成本VGA、LCD控制单片机模式:包括一定的外设,可以利用实时操作系统和总线结构,中等成本控制,仪表定制嵌入模式:高度集成的外设,实时操作系统和总线结构,高性能网络、无线通信,采用90nm工艺后,FPGA器件:处理能力更强成本降低、功耗少具备SOC规模和动态编程能力取代小批量ASIC和处理器,FPGA嵌入式系统前景,3类RISC处理器为核心PicoBlaze:8位软核,支持汇编,程序驻留FPGA的块RAMMicroBlaze:32位软核,包含32个32位通用寄存器和一个可选的32位移位寄存器,时钟达150MIPSPowerPC:32位PowerPC405硬核,程序级兼容PowerPC的嵌入式架构流行内核:MicroBlaze和PowerPCALtera公司:Nios,NiosII,Xilinx公司嵌入式解决方案,总体特征:32位微处理器CoreConnect外设总线支持CoreConnect总线的标准外设集合最精简的和占用400个Slice,片内微处理器软核MicroBlaze,MicroBlaze体系结构,RISC架构:精简指令系统哈佛结构:数据、指令32位双总线(指令和数据总线)3级流水线32个通用寄存器:R0R31特殊寄存器:PC(程序计数器),处理器状态寄存器(MSR)ALU,Shift,两级中断响应单元,3/5级流水线,桶形Shift内存管理/内存保护单元,浮点单元(FPU),高速缓存,异常调试和调试逻辑目前版本MicroBlazeV7.0,MicroBlaze体系结构,通用寄存器:32个32位通用寄存器R0R31,MicroBlaze编程模型,特殊寄存器程序计数器(PC)机器状态寄存器(MSR):处理器控制和状态位指令集:32位指令,分A、B两种类型,大致功能可分为逻辑运算、算术运算、分支、存储器读/写、特殊指令等几类A型:两个源寄存器,一个目的寄存器,完成寄存器到寄存器的数据运算B型:一个源寄存器,一个目的寄存器和一个16位立即数,完成寄存器和立即数之间的数据运算,MicroBlaze编程模型,CoreConnect:片上总线通信链带字节允许的OPB(On-ChipPeripheralBus)V2.0:用于访问低速外设高速LMB(LocalMemoryBus)接口:用于访问片内高速存储器FSL(快速简单连接总线)主从设备接口:自定义IP与内部通用寄存器的直接相连,用于访问高速外设XCL(XilinxCacheLink)缓存接口:对片外存储器的高速访问MDM(MicroprocessorDebugModule)调试接口,MicroBlaze总线接口,高速总线DMA控制器多端口存储控制器低速以太网MAC层处理器PCI/PCIe接口串口USB2.0Timer/PWMGPIOCAN/MOSTC/SPI其它,MicroBlaze支持外设IPCore,苹果、IBM、摩托罗拉共同开发RISC架构PowerPC405:由IBM优化三个不同层面应用用户指令集结构:UISA虚拟环境结构:VEA操作环境结构:OEA,片内微处理器硬核PowerPC,定义用户级软件所必须遵守的结构定义基本的用户指令集、寄存器、数据结构、浮点内存约定,及用户程序异常处理模型、内存模型和编程模型所有PowerPC都遵守相同的UISA结构,PowerPC3层结构(UISA),定义超级典型用户软件需求的附加用户需求功能表述多个芯片访问存储器环境下的存储器模型定义高速缓存模型及缓存控制指令集定义用户角度基于时间的资源,PowerPC3层结构(VEA),定义了典型的操作系统所要求的管理级资源定义内存管理模型、监控寄存器、同步需求及异常模型定义了监控角度的基于时间的资源,PowerPC3层结构(OEA),5级标量流水线哈佛结构,独立指令缓存和数据缓存1个JTAG口TraceFIFO多个定时器一个内存管理单元(MMU)辅助处理器管理控制器(APU)分为通用寄存器,专用寄存器,机器状态寄存器,专用寄存器,芯片控制寄存器,基时寄存器CoreConnect总线,PowerPC体系结构,PowerPC寄存器表,5级标量流水线:取指、译码、执行、写回、加载写回指令分类:数学运算逻辑运算比较跳转中断指令,PowerPC指令系统,CoreConnect总线,以软IP方式实现100MHz133MHz的64位总线LMB和OPB总线,分别用来连接高速和低速外设PLB是高带宽总线,64位数据总线宽度,分离地址、读写数据总线器件控制寄存器总线,对外设器件寄存器访问,PowerPC总线结构,嵌入在EDK环境中的外设I/O设备中断控制器设备定时器外部存储器控制器以太网串口,常用IP核及设备驱动,嵌入在EDK环境中的外设I/O设备中断控制器设备定时器外部存储器控制器以太网串口,常用IP核及设备驱动,32位OPB总线外设,每位都可动态配置为I/O两个通道,通过IPIF模块与OPB总线相连寄存器:32bit/16bit/8bit方式访问,寄存器是字边界的(末尾地址2b00),GPIO实现(硬件结构),GPIO实现(软件驱动),驱动软件文件xgpio.c,xgpio.h,xgpio_1.h,xgpio_i.h调用#include“xgpio.h”#include“xgpio_1.h”#include“xgpio_i.h”驱动函数初始化:XStatusXGpio_Initialize(XGpio*InstancePtr,Xuint16DeviceId);配置/查找:XGpio_Config*XGpio_LookupConfig(Xuint16DeviceId);数据方向设置:voidXGpio_SetDataDirection(XGpio*InstancePtr,unsignedChannel);读入:Xuint32XGpio_DiscreteRead(XGpio*InstancePtr,unsignedChannel);输出:voidXGpio_DiscreteWrite(XGpio*InstancePtr,unsignedChannel,Xuint32Mask);,嵌入式系统总线连接(MicroBlaze),嵌入式系统系统结构(MicroBlaze),0 x0000_00000 x0000_0017:特殊0 x0000_00180 xFFFF_FFFF:用户地址LMB从0 x0000_0018开始,嵌入式系统总线连接(PowerPC),嵌入式系统结构(PowerPC),0 xFFFF_FFFC:引导地址0 xFFFF_00000 xFFFF_FFFF:用户空间,Xilinx嵌入式开发工具集,集成软件环境ISE嵌入式开发套件EDK(EmbeddedDevelopmentKit)XPS(XilinxPlatformStudio):设计嵌入式处理器系统硬件的开发环境及GUI,完成嵌入式系统架构的创建、软件代码的编写、编译及FPGA芯片配置SDK(SoftwareDevelopmentKit):基于Eclipse,用于嵌入式软件应用的开发和验证,支持C/C+其它:用于Xilinx嵌入式处理器的硬IP;用于软件开发的驱动和库;在MicroBlaze和PowerPC处理器的C/C+软件开发GNU编译器、调试器;有关文档和样例程序,Xilinx嵌入式开发流程,硬件设计与调试软件设计与调试,Xilinx嵌入式开发流程,硬件逻辑创建硬件平台:利用BSBWizard构建添加IPCore及用户定制外设生成仿真系统并测试硬件生成硬件网表和Bit文件系统开发软件系统:包括驱动软件、库、操作系统、应用软件等,编译生成.elf可执行文件合并软硬件Bit文件下载配置在线调试,EDKBit文件组成,EDK文件管理框架,板级支持包(BSP:BoardSupportPackage):针对硬件的设备驱动、库等XMP文件:.xmp后缀,嵌入式项目工程文件,包括硬件结构描述文件(MHS)和软件描述文件(MSS)指向、工程器件等MHS:硬件描述文件MSS:软件描述文件UCF:约束文件CMD:批命令文件,XPS基本操作,启动XilinxPlatformStudio直接由程序组项目运行ISE中EmbeddedProcessor创建新工程BSB(BaseSystemBuilder)向导定制,XPS基本操作,BaseSystemBuilderWizard选择Project路径和name(.xmp)CreateanewdesignCreatesystemfromacustomboard选择FPGA器件类型和processor类型选择时钟、reset、片上存储等增加并配置片外设备(GenericGPIO,UART)增加片内并配置片内设备选择标准输入/输出(调试口),boot区设置自检完成创建,XPS基本操作,工程信息面板,系统组件面板,控制台输出面板,工程信息面板,分页工程:BSB向导中获取,描述硬件设计工程文件:文本可打开、编辑工程选项:打开属性窗口设置参考文件:XPS生成,不需要修改应用:软件相关信息Boot:XPS自动生成,无需修改用户应用软件:处理器属性,编译器属性,源代码,库文件IP目录:列出了EDKIPCore和用户定义IPCore,可以添加到系统中,应用页面,SetCompilerOptions:设置编译器属性MarktoInitializeBRAMs:将软件打包到初始化RAM中BuildProject:编译,生成.elf可执行文件MakeprojectInactive:从初始化模块中剔除GenerateLinkerScript:自动生成链接脚本,系统组件面板,分页BusInterface:总线接口连接面板:表达设备接口与总线的连接,可以创建或删除连接显示区域:总线相联设备接口Ports:端口Address:设备地址分配,在XPS中添加IPCore,选择IPCatalog中IPCore,右键”AddIP”,或拖放到组件区配置总线接口,并连接总线模块参数配置:模块上右键/双击,选择”ConfiggureIP”端口配置:内部/外部端口地址配置:在”Address”分页中单击”GenerateAddress”自动分配,在XPS中定制用户设备IP,步骤:定制自定义IP添加到XPS工程中定制要求确定IP所需接口:连接总线(PLB,OPB)实现和验证功能:将定制的用户设备拷贝到正确目录下,创建接口文件(MPD,PAO);加入到XPS的工程系统中,IP接口模块(IPIF),IPIF(IPinterface):预制的参数可调的接口模块,同时提供一系列简单总线协议;用户设备可方便地实现与总线相连IPIC(IPinterconnect):用户设备接口与定制逻辑之间的互连协议总线、IPIF、IPIC、用户逻辑是上述实现用户设备的环节,IP接口模块(IPIF),创建和导入设备,CIP创建用户设备步骤确定设备类型(四种):OPB从设备OPB主从结合设备PLB从设备PLB主从结合设备选择菜单”Hardware“中”CreateorImportPeripheral”,建立/导入设备创建模板实现验证导入XPS,创建和导入设备,创建和导入设备,存放路径,创建和导入设备,设备名及版本号,创建和导入设备,连接总线类型PLBFSLOPB,创建和导入设备,选择IPIF服务,IPIF服务机制,基本从设备支持服务S/WresetandMIR:生成RST,MIR两寄存器Userlogicinterruptsupport:中断UserlogicS/Wregistersupport:可寻址寄存器高级从设备支持服务Bursttransactionsupport:突发传送及缓冲FIFO:IPIF内建FIFO通路Userlogicaddressrangesupport:地址分段使能,IPIF服务机制,中断配置,IPIF服务机制,软件寄存器设置,IPIF服务机制,寄存器和IP互连,IPIF服务机制,定制IP仿真支持,IPIF服务机制,模板语言选择,创建和导入设备,完成IPIF配置后,生成IPCore框架文件软件驱动:XPS工程文件drivers/IP目录(my_led8_v1_00a)硬件结构:XPS工程文件pcores/IP目录(my_led8_v1_00a)实现定制IP用户部分逻辑:完成对总线信号的响应模板文件:XPS工程文件pcores/IP目录(my_led8_v1_00a)下my_led8.vhd,user_logic.vhd,在此文件中定制逻辑修改MPD文件,添加IPCore到XPS工程,单击”Hardware”菜单”CreateorImportPeripheral”项选择需加入设备选择HDL文件选择mpd文件核查总线及信号配置寄存器地址空间中断配置IP和参数配置用户端口属性配置完成,添加IPCore到XPS工程,添加IPCore到XPS工程,IP选择,添加IPCore到XPS工程,语言选择,添加IPCore到XPS工程,mpd文件选择,XPS高级操作,软件编译系统仿真子系统设计(ISE/XPS协同)实现、下载在线调试,XPS高级操作(软件设计),EDK运行方式Standalone:裸CPU方式,简单快捷,无法实现复杂功能OS:基于操作系统方式软件应用文件类型(源文件)Xparameters.h头文件.c/cpp源代码.h头文件.ld链接文件.s汇编文件,xparameters.h实例,本文件系统自动生成,定义了硬件系统的相关常量定义#defineXPAR_XGPIO_NUM_INSTANCES3#defineXPAR_LEDS_8BIT_BASEADDR0 x40000000#defineXPAR_LEDS_8BIT_HIGHADDR0 x4000FFFF#defineXPAR_LEDS_8BIT_DEVICE_ID0#defineXPAR_LEDS_8BIT_INTERRUPT_PRESENT0#defineXPAR_LEDS_8BIT_IS_DUAL0#defineXPAR_CPU_CORE_CLOCK_FREQ_HZ100000000,软件编译设置,编译环境应用模式:可执行,调试输出文件:.elf链接文件调试优化设置优化级别路径设置库搜索路径头文件搜索路径链接库编译命令行,软件链接设置,软件链接设置,Sections:段映射位置Heap,Stack:堆,堆栈Boot,Vector:引导段,中断向量表Memory:显示所有存储信息Output:链接文件存储位置,EDK子系统,设计背景FPGA设计是嵌入式处理器系统和其它定制逻辑的结合,利用ISE开发定制逻辑部分并实现顶层设计FPGA设计包括嵌入式处理器,用户使用工程导航来实现,要允许使用ISE有关工具开发方式Top-down:直接添加EmbeddedProcessor源代码Bottom-up:首先在XPS中开发嵌入式处理器设计,然后调用ISE添加该模块,Top-down开发流程,ISE新建EmbeddedProcessor源代码模板ISE自动调用EDK,开发有关嵌入式系统,生成网表ISE下单击ViewHDLInstantiationTemplate,可看到处理器实例化EDK中修改C代码后编译后,只需在ISE中UpdateBitstreamwithProcessorData,bottom-up开发流程,XPS创建嵌入式系统打开ISE工程导航选择Project-AddSource选择XMP格式的XPS工程文件注意:ISE、XPS所选芯片型号相同,XPS中的设计仿真,概念:底层硬件模块的仿真(由驱动程序)仿真类型:行为,结构,时序准备仿真库:EDK、Xilinx仿真库已经编译XPS-Simulation-CompileSimulationLibraries准备仿真Bit文件:Compiler:编译生成.elf文件,内含数据和代码PlatGen:根据硬件设计生成.bmm文件,含块RAM数据Data2MEM:根据上述文件,抽取数据代码,system.v包含初始化存储内容SimGen:生成仿真文件(选择Simulation-GenerateSimulationHDLFiles),生成DO和V文件,产生仿真HDL模型文件,EDK工具与流程,编译仿真库,XPS-Simulation-CompileSimulationLibrariesXilinx库EDK库仿真软件支持SmartModel模式,仿真模型生成,SimGen操作来源文件MHS(MicroprocessorHardwareSpecification)文件system_name.v,peripheral_wrapper.vperipheral_wrapper.ngcsystem_name.ngcsystem_name.ncd产生目标文件system_name.vperipheral_wrapper.v其它工具与文件gcc编译器生成system_name.elfPlatGen生成system_name.bmmData2MEM生成内存初始化模型system_name_init.v,仿真模型生成(Data2MEM),仿真模型生成,HardwareGenerateNetlist:生成网表ProjectOptions-SimModel设为BEHAVIORALSimulation-GenerateSimulationHDLFiles:在simulationbehavioral目录生成DO和Verilog文件,XPS嵌入式系统实现流程,综合,产生硬件网表(Platgen):调用Hardware-GenerateNetlist生成硬件比特流文件Hardware-GenerateBitStream编译应用程序选中工程,单击鼠标右键,BuildProject配置FPGA芯片调用DeviceConfiguration-UpdateBitstream,将软件、硬件比特流合并调用DeviceConfiguration-DownloadBitstream,下载编程固化嵌入式设计将.bit转化成PROM配置文件添加Flash软核控制器,XPS嵌入式系统实现流程,产生硬件网表(Platgen):综合调用Hardware-GenerateNetlist,XPS嵌入式系统实现流程,生成硬件比特流文件:映射,布局,布线Hardware-GenerateBitStream,XPS嵌入式系统实现流程,编译软件应用程序选中工程,单击鼠标右键,BuildProject准备首先编译XPS提供的库函数生成链接脚本,XPS嵌入式系统实现流程,配置FPGA芯片调用DeviceConfiguration-UpdateBitstream,将软件、硬件比特流合并调用DeviceConfiguration-DownloadBitstream,下载编程,XPS嵌入式系统实现流程,固化嵌入式设计将.bit转化成PROM配置文件添加Flash软核控制器FPGA片外连接SPI、BPI接口型Flash系统设计中添加相关接口硬件和驱动添加Flash驱动boot配置,嵌入式系统调试,XMD硬件调试ChipScopePro调试SDK软件调试平台综合调试,XMD在线硬件调试(PowerPC),XMD在线硬件调试(MicroBlaze),XMD调试方法,建立工程连通硬件板编译软件工程,并下载选择Debug-XMDDebugOptions,设置有关参数选择Debug-LaunchXMD,启动GDB服务选择Debug-LaunchSoftwareDebugger,显示调试界面,XMD在线硬件调试,选择Debug-XMDDebugOptions,设置有关参数调试方式调试硬件板上运行的程序使用周期精确指令设置仿真器的程序,XMD在线硬件调试,选择Debug-LaunchXMD,启动GDB服务GDB服务窗,XMD在线硬件调试,选择Debug-LaunchSoftwareDebugger,显示调试界面软件调试窗口,ChipScopePro调试工具,ChipScope分析核都外挂在OPB/PLB总线上ChipScope_icon:连接JTAG和各监控核ChipScope_ila:监控自定义信号ChipScope_opb_iba:分析OPB总线ChipScope_plb_iba:分析PLB总线ChipScope_vio:不插入到网表中,使用JTAG采样,ChipScopePro调试工具示例,添加、配置ChipScope_icon核IPCatalog页-Debug类IP-AddIP,配置连接ChipScope_icon核端口添加、配置其它核ChipScope_ila核ChipScope_iba核综合、实现Hardware-GenerateNetlistHardware-GenerateBitstreamDeviceConfiguration-UpdateBitstream,XPSSDK调试工具,XPSSDK调试工具,基于EcilpseIDE功能版本管理项目管理,生成Makefile代码编辑,错误导航调试在线搜索帮助信息与XMD集成Xilinx集成MicroBlaze,PowerPC编译,XPSSDK调试工具,SDKDebugPerspective,Thestackframefortargetthreadsthatyouaredebugging.EachthreadinyourprogramisrepresentedasanodeinthetreeVariables,Breakpoints,andRegistersviewsallowforviewingandreal-timeinter

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论