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的块RAM MicroBlaze:32位软核,包含32个32位通用寄存器和一个可选的32位移位寄存器,时钟达150MIPS PowerPC:32位PowerPC405硬核,程序级兼容PowerPC的嵌入式架构 流行内核: MicroBlaze和PowerPC ALtera公司: Nios,NiosII,Xilinx公司嵌入式解决方案,总体特征: 32位微处理器 CoreConnect外设总线 支持CoreConnect总线的标准外设集合 最精简的和占用400个Slice,片内微处理器软核MicroBlaze,MicroBlaze体系结构,RISC架构:精简指令系统 哈佛结构:数据、指令32位双总线(指令和数据总线) 3级流水线 32个通用寄存器:R0R31 特殊寄存器:PC(程序计数器),处理器状态寄存器(MSR) ALU,Shift,两级中断响应单元,3/5级流水线,桶形Shift 内存管理/内存保护单元,浮点单元(FPU),高速缓存,异常调试和调试逻辑 目前版本MicroBlaze V7.0,MicroBlaze体系结构,通用寄存器:32个32位通用寄存器R0R31,MicroBlaze编程模型,特殊寄存器 程序计数器(PC) 机器状态寄存器(MSR):处理器控制和状态位 指令集:32位指令,分A、B两种类型,大致功能可分为逻辑运算、算术运算、分支、存储器读/写、特殊指令等几类 A型:两个源寄存器,一个目的寄存器,完成寄存器到寄存器的数据运算 B型:一个源寄存器,一个目的寄存器和一个16位立即数,完成寄存器和立即数之间的数据运算,MicroBlaze编程模型,CoreConnect:片上总线通信链 带字节允许的OPB(On-Chip Peripheral Bus)V2.0:用于访问低速外设 高速LMB(Local Memory Bus)接口:用于访问片内高速存储器 FSL(快速简单连接总线)主从设备接口:自定义IP与内部通用寄存器的直接相连,用于访问高速外设 XCL(Xilinx Cache Link)缓存接口:对片外存储器的高速访问 MDM(Microprocessor Debug Module)调试接口,MicroBlaze总线接口,高速总线 DMA控制器 多端口存储控制器 低速 以太网MAC层处理器 PCI/PCIe接口 串口 USB2.0 Timer/PWM GPIO CAN/MOST C/SPI 其它,MicroBlaze支持外设IPCore,苹果、IBM、摩托罗拉共同开发 RISC架构 PowerPC405:由IBM优化 三个不同层面应用 用户指令集结构:UISA 虚拟环境结构:VEA 操作环境结构:OEA,片内微处理器硬核PowerPC,定义用户级软件所必须遵守的结构 定义基本的用户指令集、寄存器、数据结构、浮点内存约定,及用户程序异常处理模型、内存模型和编程模型 所有PowerPC都遵守相同的UISA结构,PowerPC3层结构(UISA),定义超级典型用户软件需求的附加用户需求功能 表述多个芯片访问存储器环境下的存储器模型 定义高速缓存模型及缓存控制指令集 定义用户角度基于时间的资源,PowerPC3层结构(VEA),定义了典型的操作系统所要求的管理级资源 定义内存管理模型、监控寄存器、同步需求及异常模型 定义了监控角度的基于时间的资源,PowerPC3层结构(OEA),5级标量流水线 哈佛结构,独立指令缓存和数据缓存 1个JTAG口 Trace FIFO 多个定时器 一个内存管理单元(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” 驱动函数 初始化: XStatus XGpio_Initialize(XGpio *InstancePtr,Xuint16 DeviceId); 配置/查找: XGpio_Config * XGpio_LookupConfig(Xuint16 DeviceId); 数据方向设置: void XGpio_SetDataDirection(XGpio * InstancePtr,unsigned Channel); 读入: Xuint32 XGpio_DiscreteRead(XGpio * InstancePtr,unsigned Channel); 输出: void XGpio_DiscreteWrite(XGpio * InstancePtr,unsigned Channel,Xuint32 Mask);,嵌入式系统总线连接(MicroBlaze),嵌入式系统系统结构(MicroBlaze),0x0000_00000x0000_0017:特殊 0x0000_00180xFFFF_FFFF:用户地址 LMB从0x0000_0018开始,嵌入式系统总线连接(PowerPC),嵌入式系统结构(PowerPC),0xFFFF_FFFC:引导地址 0xFFFF_00000xFFFF_FFFF:用户空间,Xilinx嵌入式开发工具集,集成软件环境ISE 嵌入式开发套件EDK(Embedded Development Kit) XPS(Xilinx Platform Studio):设计嵌入式处理器系统硬件的开发环境及GUI,完成嵌入式系统架构的创建、软件代码的编写、编译及FPGA芯片配置 SDK(Software Development Kit):基于Eclipse,用于嵌入式软件应用的开发和验证,支持C/C+ 其它:用于Xilinx嵌入式处理器的硬IP;用于软件开发的驱动和库;在MicroBlaze和PowerPC处理器的C/C+软件开发GNU编译器、调试器;有关文档和样例程序,Xilinx嵌入式开发流程,硬件设计与调试 软件设计与调试,Xilinx嵌入式开发流程,硬件逻辑 创建硬件平台:利用BSB Wizard构建 添加IP Core及用户定制外设 生成仿真系统并测试硬件 生成硬件网表和Bit文件 系统 开发软件系统:包括驱动软件、库、操作系统、应用软件等,编译生成.elf可执行文件 合并软硬件Bit文件 下载配置 在线调试,EDK Bit文件组成,EDK文件管理框架,板级支持包(BSP:Board Support Package):针对硬件的设备驱动、库等 XMP文件:.xmp后缀,嵌入式项目工程文件,包括硬件结构描述文件(MHS)和软件描述文件(MSS)指向、工程器件等 MHS:硬件描述文件 MSS:软件描述文件 UCF:约束文件 CMD:批命令文件,XPS基本操作,启动Xilinx Platform Studio 直接由程序组项目运行 ISE中Embedded Processor 创建新工程 BSB(Base System Builder)向导 定制,XPS基本操作,Base System Builder Wizard 选择Project路径和name(.xmp) Create a new design Create system from a custom board 选择FPGA器件类型和processor类型 选择时钟、reset、片上存储等 增加并配置片外设备(Generic GPIO,UART) 增加片内并配置片内设备 选择标准输入/输出(调试口),boot区 设置自检 完成创建,XPS基本操作,工程信息面板,系统组件面板,控制台输出面板,工程信息面板,分页 工程:BSB向导中获取,描述硬件设计 工程文件:文本可打开、编辑 工程选项:打开属性窗口设置 参考文件:XPS生成,不需要修改 应用:软件相关信息 Boot:XPS自动生成,无需修改 用户应用软件:处理器属性,编译器属性,源代码,库文件 IP目录:列出了EDK IPCore和用户定义IP Core,可以添加到系统中,应用页面,Set Compiler Options:设置编译器属性 Mark to Initialize BRAMs:将软件打包到初始化RAM中 Build Project:编译,生成.elf可执行文件 Make project Inactive:从初始化模块中剔除 Generate Linker Script:自动生成链接脚本,系统组件面板,分页 Bus Interface:总线接口 连接面板:表达设备接口与总线的连接,可以创建或删除连接 显示区域:总线相联设备接口 Ports:端口 Address:设备地址分配,在XPS中添加IP Core,选择IP Catalog中IP Core,右键”Add IP”,或拖放到组件区 配置总线接口,并连接总线 模块参数配置:模块上右键/双击,选择”Configgure IP” 端口配置:内部/外部端口 地址配置:在”Address”分页中单击”Generate Address”自动分配,在XPS中定制用户设备IP,步骤: 定制自定义IP 添加到XPS工程中 定制要求 确定IP所需接口:连接总线(PLB,OPB) 实现和验证功能:将定制的用户设备拷贝到正确目录下,创建接口文件(MPD,PAO);加入到XPS的工程系统中,IP接口模块(IPIF),IPIF(IP interface):预制的参数可调的接口模块,同时提供一系列简单总线协议;用户设备可方便地实现与总线相连 IPIC(IP interconnect):用户设备接口与定制逻辑之间的互连协议 总线、IPIF、IPIC、用户逻辑是上述实现用户设备的环节,IP接口模块(IPIF),创建和导入设备,CIP创建用户设备步骤 确定设备类型(四种): OPB从设备 OPB主从结合设备 PLB从设备 PLB主从结合设备 选择菜单”Hardware“中”Create or Import Peripheral”,建立/导入设备 创建模板 实现验证 导入XPS,创建和导入设备,创建和导入设备,存放路径,创建和导入设备,设备名及版本号,创建和导入设备,连接总线类型 PLB FSL OPB,创建和导入设备,选择IPIF服务,IPIF服务机制,基本从设备支持服务 S/W reset and MIR:生成RST,MIR两寄存器 User logic interrupt support:中断 User logic S/W register support:可寻址寄存器 高级从设备支持服务 Burst transaction support:突发传送及缓冲 FIFO:IPIF内建FIFO通路 User logic address range support:地址分段使能,IPIF服务机制,中断配置,IPIF服务机制,软件寄存器设置,IPIF服务机制,寄存器和IP互连,IPIF服务机制,定制IP仿真支持,IPIF服务机制,模板语言选择,创建和导入设备,完成IPIF配置后,生成IP Core框架文件 软件驱动: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文件,添加IP Core到XPS工程,单击”Hardware”菜单”Create or Import Peripheral”项 选择需加入设备 选择HDL文件 选择mpd文件 核查总线及信号 配置寄存器地址空间 中断配置 IP和参数配置 用户端口属性配置 完成,添加IP Core到XPS工程,添加IP Core到XPS工程,IP选择,添加IP Core到XPS工程,语言选择,添加IP Core到XPS工程,mpd文件选择,XPS高级操作,软件编译 系统仿真 子系统设计(ISE/XPS协同) 实现、下载 在线调试,XPS高级操作(软件设计),EDK运行方式 Standalone:裸CPU方式,简单快捷,无法实现复杂功能 OS:基于操作系统方式 软件应用文件类型(源文件) Xparameters.h头文件 .c/cpp源代码 .h头文件 .ld链接文件 .s汇编文件,xparameters.h实例,本文件系统自动生成,定义了硬件系统的相关常量定义 #define XPAR_XGPIO_NUM_INSTANCES 3 #define XPAR_LEDS_8BIT_BASEADDR 0x40000000 #define XPAR_LEDS_8BIT_HIGHADDR 0x4000FFFF #define XPAR_LEDS_8BIT_DEVICE_ID 0 #define XPAR_LEDS_8BIT_INTERRUPT_PRESENT 0 #define XPAR_LEDS_8BIT_IS_DUAL 0 #define XPAR_CPU_CORE_CLOCK_FREQ_HZ 100000000,软件编译设置,编译环境 应用模式:可执行,调试 输出文件:.elf 链接文件 调试优化设置 优化级别 路径设置 库搜索路径 头文件搜索路径 链接库 编译命令行,软件链接设置,软件链接设置,Sections:段映射位置 Heap,Stack:堆,堆栈 Boot,Vector:引导段,中断向量表 Memory:显示所有存储信息 Output:链接文件存储位置,EDK子系统,设计背景 FPGA设计是嵌入式处理器系统和其它定制逻辑的结合,利用ISE开发定制逻辑部分并实现顶层设计 FPGA设计包括嵌入式处理器,用户使用工程导航来实现,要允许使用ISE有关工具 开发方式 Top-down:直接添加Embedded Processor源代码 Bottom-up:首先在XPS中开发嵌入式处理器设计,然后调用ISE添加该模块,Top-down开发流程,ISE新建Embedded Processor源代码模板 ISE自动调用EDK,开发有关嵌入式系统,生成网表 ISE下单击View HDL Instantiation Template,可看到处理器实例化 EDK中修改C代码后编译后,只需在ISE中Update Bitstream with Processor Data,bottom-up开发流程,XPS创建嵌入式系统 打开ISE工程导航 选择Project-Add Source 选择XMP格式的XPS工程文件 注意:ISE、XPS所选芯片型号相同,XPS中的设计仿真,概念:底层硬件模块的仿真(由驱动程序) 仿真类型:行为,结构,时序 准备仿真库:EDK、Xilinx仿真库已经编译 XPS-Simulation-Compile Simulation Libraries 准备仿真Bit文件: Compiler:编译生成.elf文件,内含数据和代码 PlatGen:根据硬件设计生成.bmm文件,含块RAM数据 Data2MEM:根据上述文件,抽取数据代码,system.v包含初始化存储内容 SimGen:生成仿真文件(选择Simulation-Generate Simulation HDL Files), 生成DO和V文件,产生仿真HDL模型文件,EDK工具与流程,编译仿真库,XPS-Simulation- Compile Simulation Libraries Xilinx库 EDK库 仿真软件支持SmartModel模式,仿真模型生成,SimGen操作来源文件 MHS(Microprocessor Hardware Specification)文件 system_name.v, peripheral_wrapper.v peripheral_wrapper.ngc system_name.ngc system_name.ncd 产生目标文件 system_name.v peripheral_wrapper.v 其它工具与文件 gcc编译器生成system_name.elf PlatGen生成system_name.bmm Data2MEM生成内存初始化模型system_name_init.v,仿真模型生成(Data2MEM),仿真模型生成,HardwareGenerate Netlist:生成网表 Project Options-Sim Model设为BEHAVIORAL Simulation-Generate Simulation HDL Files:在simulationbehavioral目录生成DO和Verilog文件,XPS嵌入式系统实现流程,综合,产生硬件网表(Platgen): 调用Hardware-Generate Netlist 生成硬件比特流文件 Hardware-Generate BitStream 编译应用程序 选中工程,单击鼠标右键,Build Project 配置FPGA芯片 调用Device Configuration-Update Bitstream,将软件、硬件比特流合并 调用Device Configuration-Download Bitstream,下载编程 固化嵌入式设计 将.bit转化成PROM配置文件 添加Flash软核控制器,XPS嵌入式系统实现流程,产生硬件网表(Platgen):综合 调用Hardware-Generate Netlist,XPS嵌入式系统实现流程,生成硬件比特流文件:映射,布局,布线 Hardware-Generate BitStream,XPS嵌入式系统实现流程,编译软件应用程序 选中工程,单击鼠标右键,Build Project 准备 首先编译XPS提供的库函数 生成链接脚本,XPS嵌入式系统实现流程,配置FPGA芯片 调用Device Configuration-Update Bitstream,将软件、硬件比特流合并 调用Device Configuration-Download Bitstream,下载编程,XPS嵌入式系统实现流程,固化嵌入式设计 将.bit转化成PROM配置文件 添加Flash软核控制器 FPGA片外连接SPI、BPI接口型Flash 系统设计中添加相关接口硬件和驱动 添加Flash驱动 boot配置,嵌入式系统调试,XMD硬件调试 ChipScope Pro调试 SDK软件调试 平台综合调试,XMD在线硬件调试(PowerPC),XMD在线硬件调试(MicroBlaze),XMD调试方法,建立工程 连通硬件板 编译软件工程,并下载 选择Debug-XMD Debug Options,设置有关参数 选择Debug-Launch XMD,启动GDB服务 选择Debug-Launch Software Debugger,显示调试界面,XMD在线硬件调试,选择Debug-XMD Debug Options,设置有关参数 调试方式 调试硬件板上运行的程序 使用周期精确指令设置仿真器的程序,XMD在线硬件调试,选择Debug-Launch XMD,启动GDB服务 GDB服务窗,XMD在线硬件调试,选择Debug-Launch Software Debugger,显示调试界面 软件调试窗口,ChipScope Pro调试工具,ChipScope分析核都外挂在OPB/PLB总线上 ChipScope_icon:连接JTAG和各监控核 ChipScope_ila:监控自定义信号 ChipScope_opb_iba:分析OPB总线 ChipScope_plb_iba:分析PLB总线 ChipScope_vio:不插入到网表中,使用JTAG采样,ChipScope Pro调试工具示例,添加、配置ChipScope_icon核 IP Catalog页-Debug类IP-Add IP,配置 连接ChipScope_icon核端口 添加、配置其它核 ChipScope_ila核 ChipScope_iba核 综合、实现 Hardware-Generate Netlist Hardware-Generate Bitstream Device Configuration-Update Bitstream,XPS SDK调试工具,XPS SDK调试工具,基于Ecilpse IDE 功能 版本管理 项目管理,生成Makefile 代码编辑,错误导航 调试 在线搜索帮助信息 与XMD集成 Xilinx集成MicroBlaze,PowerPC编译,XPS SDK调试工具,SDK Debug Perspective,The stack frame for target threads that you are debugging. Each thread in your program is represented as a node in the tree Variables, Breakpoints, and Registers views allow for viewing and real-time interaction with the view contents for more powerful debugging potenti

温馨提示

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

最新文档

评论

0/150

提交评论