




已阅读5页,还剩273页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Telmail:hebin,版权所有,禁止未经授权的商业使用行为,培训内容,Xilinx片上可编程系统设计导论MicroBlaze处理器原理EDK工具概述操作系统(OS)及板级支持包(BSP)概述基于EDK10.1和MicroBlaze处理器的设计流程,片上可编程系统设计导论-基本概念,基于现场可编程门阵列(FieldProgrammableGateArray,FPGA)的SOPC(System-on-a-chip),包含嵌入式的软核或硬核处理器、存储器和硬件加速器。SOPC的出现为设计者提供了设计高性能嵌入式系统和优化系统的条件。,片上可编程系统设计导论-基本概念,SOPC嵌入式处理器分为软核和硬核处理器两大类。Xilinx提供了将物理的处理器核集成到FPGA硅片上的硬核处理器产品。一个处理器使用专门的硅片实现称为硬核处理器,比如:Xilinx将PowerPC405/440硬核集成到Virtex系列的FPGA芯片中。软核处理器是通过使用FPGA的通用逻辑实现的。软核处理器通过HDL语言或网表进行描述的。软核处理器必须进行综合才能使用。,片上可编程系统设计导论-基本概念,在基于软核和硬核处理器的SOPC系统中,本地存储器、处理器总线、内部外设、外设控制器和存储器控制器必须使用FPGA的通用逻辑实现。下面给出Xilinx公司的软核和硬核处理器的性能。,片上可编程系统设计导论-XilinxPsoc类别,片上可编程系统设计导论-基本概念,由于持续的要求嵌入式系统具有更多的功能、更好的性能和灵活性,因此传统上的设计方法已经不适应这种要求。当设计人员试图通过高性能的嵌入式处理器得到更高的性能时,遇到了吞吐量和性能方面的限制,而这种限制源于系统和结构的瓶颈,以及存储器带宽的限制。现在解决问题的方法是“专用”,即对某个嵌入式系统应用使用专门的解决方法。比如,数字信号处理器DSP用于解决某一类专门的数字信号处理。对于一些高容量的应用,设计人员可能还需要专门开发ASIC芯片。,片上可编程系统设计导论-基本概念,很多FPGA厂商将专用的嵌入式处理器Power、ARM等嵌入到FPGA芯片中。这种集成嵌入式处理器的FPGA芯片被定义成FPGA的平台。这种基于FPGA的嵌入式平台提供了一个灵活的解决方案。在这个解决方案中,一个单FPGA芯片上提供了大量不同的IP软核和硬核资源。这些固件和硬件可以在任何时间进行升级。这种可编程的结构特点,大大缩短了系统的开发时间,而同一平台能应用在很多领域,提高了平台的资源复用率。,片上可编程系统设计导论-基本概念,FPGA平台结构使设计人员可以优化系统吞吐量和开发周期,提供前所未有的软件和硬件协同设计的灵活性,这种灵活性主要体现在设计人员能够权衡软件和硬件设计的实现方法。这种协同性不同于传统的嵌入式系统的协同设计,虽然以前也使用软件和硬件的协同设计,但是在实现级别上基本上还是使用大量的分离的设计流程。,片上可编程系统设计导论-基本概念,FPGA平台,即SOPC集成了传统软核和硬核处理器、片上总线、大量不同的I/O设备和接口标准、定制的硬件加速理器,以及混合的定制的总线或点对点的拓扑结构,以提高系统的性能。在SOPC的层次上,FPGA的应用领域已经大大扩宽了,它不再只用于连接不同接口设备的“连接逻辑”。由于FPGA的容量和性能不断提高,因此它就逐步地变成嵌入式系统的中心。,片上可编程系统设计导论-基本概念,在SOPC阶段,设计已经从以硬件描述语言HDL为中心的硬件设计,转换到了以C语言进行功能描述为中心。形成了以C语言描述SOPC的功能,而用HDL语言描述硬件的具体实现方法。这也是和传统的FPGA设计和嵌入式系统设计最大的区别,即软件和硬件的真正的协同设计。,片上可编程系统设计导论-基本概念,作为新的嵌入式系统的设计平台,使用SOPC进行嵌入式系统设计具有以下几个方面的优点:,1、定制2、延缓过时3、降低元件成本4、硬件加速,片上可编程系统设计导论-设计流程,正如前面所说,基于SOPC的嵌入式系统的设计需要软件和硬件的协同设计。下面给出了Xilinx公司使用XPS(XilinxPlatformStudio)进行嵌入式系统设计的流程。Xilinx公司的XPS工具包用于开发基于FPGA平台的嵌入式系统,从图可以看出该工具支持传统的硬件和嵌入式软件的设计流程。,片上可编程系统设计导论-设计流程,片上可编程系统设计导论-设计流程,XPS支持硬核PowerPC和软核Microblaze处理器。并将设计的导入、创建和IP核定制进行了流水化的处理。由于XPS知道平台FPGA的硅片属性和选项,能自动的为其外设生成软件驱动、测试代码以及创建板级支持包BSP(BoardSupportPackage)。这些BSP是常用的实时操作系统RTOS(Real-TimeOperatingSystem),比如VxWorks和嵌入式Linux提供的设备驱动。,片上可编程系统设计导论-设计流程,Xilinx的JTAG连接技术,完成FPGA的下载、FPGA的调试、C代码的下载和软件的调试。XPS集成了软件和硬件调试工具,使它们之间可以相互触发,这使得嵌入式系统内部变成“可见”,使嵌入式设计者能很快地找到和发现问题,而无需知道这个问题是软件还是硬件产生的。,片上可编程系统设计导论-设计优化,FPGA嵌入式处理器设计比较复杂,复杂程度甚至使那些有经验的设计人员在某些情况下都无能为力,因此为了获得FPGA平台的优势必须进行权衡。下面给出一些在设计FPGA的SOPC嵌入式系统时,会使用到的一些优化技术。,片上可编程系统设计导论-设计优化,1、优化级别2、使用FPGA厂商的优化指令3、汇编4、混杂,片上可编程系统设计导论-存储器使用,只用本地存储器:最快的存储器的选择是将所有的代码放在本地存储器中。只用外部存储器:如果将所有程序放在外部存储器中,将使系统的性能降到最低。高速缓存:在建有PowerPC处理器的FPGA硅片上建立了的指令和数据高速缓存。使其对处理器总保持性能优势。分配代码到内部存储器、外部存储器和高速缓存。,片上可编程系统设计导论-专用SOPC优化技术,1、提高FPGA工作频率逻辑优化2、面积和时序约束3、硬件加速使用硬件除法器和桶型移位寄存器。软件瓶颈转换为硬件处理。可以使用硬件协处理的算法有:DCT变换、FFT变换、MP3解码器、DES和AES、矩阵等。使用硬件协处理,可以使性能提高数十倍或数百倍。,片上可编程系统设计导论-XilinxPSOC芯片,适合进行SOPC设计的FPGA芯片低端产品有Spartan系列,高端产品有Virtex系列。Spartan系列FPGA只用于MicroBlaze软核处理器的片上系统设计,Virtex系列FPGA可以用于MicroBlaze软核处理器和PowerPC硬核处理器的片上系统设计。,片上可编程系统设计导论-PSOC芯片,Spartan系列的FPGA平台用于片上系统设计主要使用Spartan-3,Spartan-6系列。Virtex系列的FPGA平台用于片上系统设计主要使用Virtex-2,Virtex-2pro,Virtex-4,Virtex-5,Virtex-6系列。设计人员可以根据这些FPGA平台的不同性能,在设计片上系统时进行选择,以达到所需要的设计要求。,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构,DPLB(DataProcessorLocalBus):数据接口,处理器本地总线;DOPB(DataOn-chipPeripheralBus):数据接口,片上外设总线;DLMB(DataLocalMemoryBus):数据接口,本地存储器总线;,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构,IPLB(InstructionProcessorLocalBus):指令接口,处理器本地总线;IOPB(InstructionOn-ChipPeripheralBus):指令接口,片上外设总线;ILMB(InstructionLocalMemoryBus):指令接口,本地存储器总线;,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构,MFSL0.15(FastSimpleLink,FSLmasterinterface):FSL主接口;DWFSL0.15(FSLmasterdirectconnectioninterface):FSL主直接连接接口;SFSL0.15(FastSimpleLink,FSLslaveinterface):FSL从接口;DRFSL0.15(FSLslavedirectconnectioninterface):FSL从直接连接接口;,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构,IXCL(InstructionsideXilinxCacheLinkinterface):指令侧高速缓存链接接口;DXCL(DatasideXilinxCacheLinkinterface):数据侧高速缓存链接接口;Core:时钟、复位、调试和跟踪信号;,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构,下面给出一个典型的总线结构。,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构特点,MicroBlaze软核处理器是可配置的,设计人员可以根据设计定制处理器的可选配置,根据版本的不同可配置的选项不同。软核处理器有以下几个方面的固定特征:,1.32个32位通用寄存器;2.32位3个操作数的指令字,指令字有2种寻址模式;3.32位的地址总线;4.流水线操作。,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构,MicroBlaze处理器采用哈佛存储器结构,即指令和数据访问使用独立的地址空间。每个一个地址空间都是32位长度(即,它们可以独立的访问4GB的地址空间的指令和数据存储器)。通过控制使重叠的数据和指令空间映射到相同的相同的物理存储器上。这样对于调试试非常好的。MicroBlaze处理器采用存储器映射方式访问I/O设备,即存储器和I/O设备采用统一编址方式。,MicroBlaze软核处理器原理-MicroBlaze软核处理器结构,处理器有下面三种接口可以通过存储器的方式访问:本地存储器总线(LMB);处理器本地总线(PLB)或者片上外设总线(OPB);Xilinx的CacheLink(XCL)。,MicroBlaze软核处理器原理-MicroBlaze软核处理器指令,MicroBlaze处理器指令为32比特长度,指令分为类型A和类型B。类型A指令包含两个源寄存器操作数和一个目的寄存器操作数。类型B指令一个源寄存器、一个16位的立即数(通过imm指令扩展到32位)和一个目的寄存器操作数。MicroBlaze处理器的指令完成的功能有:算术操作、逻辑操作、分支操作、加载/存储操作和其它特殊操作。,MicroBlaze软核处理器原理-MicroBlaze软核处理器FPU,IEEE754单精度浮点数由1位符号位、8位偏置指数和23位小数(尾数)部分组成。下表给出了IEEE754单精度格式。,MicroBlaze软核处理器原理-MicroBlaze软核处理器FPU运算,算数操作:加,浮点加(fadd);减,浮点减(fsub);乘,浮点乘(fmul);除,浮点除(fdiv);平方根,浮点平方根(fsqrt);比较:小于,浮点小于(fcmp.lt)、等于,浮点等于(fcmp.eq);小于等于,浮点小于等于(fcmp.le);大于,浮点大于(fcmp.gt);不等于,浮点不等于(fcmp.ne);大于等于,浮点大于等于(fcmp.ge);无序,浮点无序(fcmp.un,NaN使用);转换:有符号整数到浮点(flt);浮点到有符号整数(fint),MicroBlaze软核处理器原理-MicroBlaze软核处理器FSL接口,MicroBlaze处理器可配置为16个快速单一链接(FastSimplexLink,FSL)接口,每个接口由一个输入和输出端口组成。FSL通道是专用单向的点对点数据流接口。MicroBlaze接口为32比特宽度。一个对立的比特用来描述发送/接收字是控制类型还是数据类型。Get指令用来从FSL端口到通用寄存器传输信息;put指令以相反的方向传输信息。所有指令4种类型:阻塞数据、非阻塞数据、阻塞控制、非阻塞控制。,MicroBlaze软核处理器原理-MicroBlaze软核处理器FSL接口,每个FSL提供低延迟专用的接口到处理器流水线。FSL是使用定制加速器和处理器扩展的理想接口。下图给出了使用定制硬件加速的例子。,MicroBlaze软核处理器原理-MicroBlaze软核处理器流水线,当采用面积优化时,流水线分为三级,即:取指,译码和执行,这样可以减少硬件开销。,MicroBlaze软核处理器原理-MicroBlaze软核处理器流水线,当不使用面积优化时,流水线分为五级:取指、译码、执行、访问存储器和回写,这样可以提高性能。下图给出了五级流水结构。,MicroBlaze软核处理器原理-MicroBlaze软核处理器寄存器,程序计数器(PC)机器状态寄存器(MSR)异常地址寄存器(EAR)异常状态寄存器(ESR)分支目标寄存器(BTR)浮点状态寄存器(FSR)异常数据寄存器(EDR)进程标识寄存器(PID)区域保护寄存器(ZPR),MicroBlaze软核处理器原理-MicroBlaze软核处理器寄存器,转换旁视缓冲低位寄存器(TLBLO)转换旁视缓冲高位寄存器(TLBHI)转换旁视缓冲索引寄存器(TLBX)TLB查找索引寄存器(TLBSX)处理器版本寄存器(PREV),MicroBlaze软核处理器原理-MicroBlaze软核处理器MMU,MMU完成以下几个功能:,1)将有效地址转化成物理地址;2)在地址转换时,控制页面级访问;3)在使用区域时,提供额外的虚拟模式保护控制;4)对指令地址、数据地址转换和保护提供独立控制;5)支持8种页面尺寸:1KB,4KB,16KB,64KB,256KB,1MB,4MB和16MB;6)软件提供页面替换策略;,MicroBlaze软核处理器原理-MicroBlaze处理器虚拟存储器管理,运行在MicroBlaze处理器的应用程序要求使用有效地址访问4GB地址空间。处理器通过转换模式,以下面两种方式理解该地址空间。,在实模式下,有效地址直接访问物理存储器;在虚拟模式下,通过处理器的虚拟存储器管理硬件(MMU)有效地址被转化物理地址。,MicroBlaze软核处理器原理-MicroBlaze处理器MMU实模式,当处理器取指或使用加载/存储指令访问数据时,处理器查看存储器。程序使用处理器计算得到的32位的有效地址查看存储器的位置。当使用实模式时,物理地址和有效地址是一样的。,MicroBlaze软核处理器原理-MicroBlaze处理器MMU虚模式,在虚拟模式下,将有效地址转换成物理地址。通过设置MSR寄存器的VM比特来使能虚拟模式下的存储器管理。,MicroBlaze软核处理器原理-MicroBlaze处理器的事件及处理,MicroBlaze支持复位、中断、用户异常、断点和硬件异常。下面将描述和这些事件相关的处理流程。这些事件按优先级从高到低依次为:复位、硬件异常、非屏蔽断点、断点、中断、用户矢量(异常)。下表记录了这些事件相关的存储器地址和保存返回地址的寄存器。每个矢量分配了两个地址以便允许全地址范围分支(要求BRAIIMM指令)。地址范围0 x28-0 x4f是为支持将来的Xilinx软件而保留的。,MicroBlaze软核处理器原理-MicroBlaze处理器的事件及处理,MicroBlaze软核处理器原理-MicroBlaze处理器的指令缓存,MicroBlaze处理器可选择指令缓存,当执行那些驻留在LMB地址范围外的代码时,使用指令缓存可以提高性能。指令缓存有以下特点:,1)直接映射(1-way关联);2)用户可选择的缓存地址范围;3)可配置的缓存和标记大小;4)CacheLink(XCL)接口上的缓存;5)选择使用4/8线字缓存行;6)使用MSR寄存器控制打开/关闭缓存;7)可选的WIC指令使指令缓存行无效。,MicroBlaze软核处理器原理-MicroBlaze处理器的数据缓存,MicroBlaze处理器有可选的数据缓存提高性能。缓存的存储器地址不得在LMB的地址范围内。数据缓存有以下特点:,1)直接映射(1-way关联);2)完全写入;3)用户可选择的缓存地址范围;4)可配置的缓存和标记大小;5)CacheLink(XCL)接口上的缓存;6)选择使用4/8线字缓存行;7)使用MSR寄存器控制打开/关闭缓存;可选的;8)WDC指令使指令缓存行无效。,MicroBlaze软核处理器原理-MicroBlaze处理器的调试,MicroBlaze有的调试接口可以用来支持基于JTAG的软件调试工具(BDM或后台调试模式调试器),比如XilinxMicroprocessorDebug(XMD)工具。调试接口用于和XilinxMicroprocessorDebug(XMD)连接,XMD和Xilinx的JTAG端口连接。多个MicroBlaze的例子(例化)使用单个XDM连接进行多处理器调试。,MicroBlaze软核处理器原理-MicroBlaze处理器的调试,调试特点有以下几个方面:1、可配置硬件断点数目、观察点和无限的软件断点;2、外部处理器控制使能调试工具停止、复位和单步;3、读写存储器,通用寄存器,特殊功能寄存器-EAR,EDR,ESR,BTR和PVR0-PVR11只读;4、支持多处理器;5、写指令和数据缓存。,MicroBlaze软核处理器原理-MicroBlaze信号接口,MicroBlaze处理器能配置成下面的总线接口:32位版本的PLBV4.6接口;32位版本的OPB2.0接口;LMB提供简单同步协议用于高效的块RAM传输;FSL提供快速无需仲裁的流通信机制;XCL提供在缓存和外部存储器控制器之间的快速从设备仲裁的流接口;调试接口和处理器调试模块(MDM)一起使用;跟踪接口用于性能分析。,MicroBlaze软核处理器原理-MicroBlaze应用二进制接口-存储器模型,MicroBlaze所定义的存储器模型有四个不同的部分:1)小数据区;2)数据区;3)普通的非初始化区;4)字面值(Literal)或常数。,Xilinx片上系统开发平台结构-EDK工具包,Xilinx的EDK工具主要包含:XilinxPlatfromStudio(XPS)人机界面、嵌入式系统工具套件、嵌入式处理IP核,比如处理器和外设、PlatformStudioSDK(SoftwareDevelopmentKit,SDK)。SDK基于Eclipse开放源码框架,设计人员可以选择使用SDK开发自己的嵌入式软件应用程序。,Xilinx片上系统开发平台结构-EDK开发流程,EDK中所提供的工具用来完成嵌入式设计的整个过程。下图给出了基本嵌入式设计流程。,Xilinx片上系统开发平台结构-硬件平台的建立,Xilinx的FPGA技术允许设计者在处理器子系统中定制硬件逻辑。这种定制不可能使用标准的现成的微处理器或控制器芯片。“硬件平台”是指设计人员根据应用的需要而使用Xilinx的技术建立的灵活地、嵌入式处理子系统。硬件平台是由一个或多个处理器或外设连接到处理器总线构成的。EDK通过微处理器硬件规范(MicroprocessorHardwareSpecification,MHS)文件记录硬件平台信息。,Xilinx片上系统开发平台结构-软件平台的建立,软件平台是软件驱动和用于建立应用程序的操作系统(可选)组成的。所建立的软件映像文件只包含用户所使用到的一部分Xilinx的库。EDK通过微处理器软件规范(MicroprocessorSoftwareSpectifcation,MSS)记录软件平台信息。设计人员可以在软件平台运行多个应用程序。,Xilinx片上系统开发平台结构-使用仿真的硬件平台验证,验证硬件平台的正确功能,设计人员可以建立一个仿真模型,并且在HDL仿真器上运行。当仿真系统时,处理器运行可执行文件。设计人员可以选择建立行为、结构或者精确的时序仿真模型。,Xilinx片上系统开发平台结构-使用调试的软件验证,调试嵌入式软件的基本技术是加载设计到所支持的开发板和使用调试工具去调试处理器。作为可选择的方式,设计人员可以使用指令集仿真器或简化系统仿真器模型(“虚拟平台”)运行在主机上来调试设计代码。设计人员可以通过概要分析代码的执行来估计系统性能。,Xilinx片上系统开发平台结构-芯片配置,一旦软件和硬件平台建立完成,设计人员可以为FPGA建立一个的配置比特文件。对于原型设计,当连接主机和芯片时,设计者可以在下载比特流时,将希望运行在嵌入式平台上的软件同时下载。对于产品,设计员将配置比特流和软件保存在和FPGA连接的非易失性存储器中。,Xilinx片上系统开发平台结构-EDK功能,Xilinx片上系统开发平台结构-EDK功能,Xilinx片上系统开发平台结构-EDK功能,Xilinx片上系统开发平台结构-EDK功能,Xilinx片上系统开发平台结构-XilinxPlatformStudio(XPS),XPS提供了集成环境为基于MicroBlaze和PowerPC处理器的嵌入式处理器系统创建软件和硬件规范流程。XPS也提供编辑器和项目管理接口用来创建和编辑源代码。XPS提供工具流程配置选项的定制和提供图形化的系统编辑器用来连接处理器、外设和总线。XPS可以在Windows、Solaris和Linux平台下使用。从XPS中,设计人员可以运行所有用于处理硬件和软件的嵌入式系统工具。在XPS环境下可以进行系统验证。,Xilinx片上系统开发平台结构-XilinxPlatformStudio(XPS),XPS提供下面的特性:能够添加核,编辑核参数和进行总线和信号连接,产生MHS文件;能够产生和修改MSS文件;支持表4.1内的所有工具;能够产生和观察系统块图和设计报告;多用户软件应用支持;项目管理;过程和工具流程依赖管理。,Xilinx片上系统开发平台结构-XilinxSoftwareDevelopmentKit(SDK),SDK工具是XPS的补充,SDK为应用软件提供开发环境。SDK基于Eclipse开放源码标准。SDK主要有以下特点:1)功能丰富的C/C+编辑器和编译环境;2)项目管理;3)应用程序的建立配置和自动的MAKE文件生成;4)错误浏览;5)为无缝调试和概要分析目标提供了好的集成环境;6)软件代码版本控制。,Xilinx片上系统开发平台结构-BaseSystemBuilder(BSB)Wizard,BSB向导帮助设计人员快速建立一个嵌入式系统工程。对于更复杂的工程,BSB向导提供基本的系统,通过这个系统设计人员可以定制完成嵌入式设计。为了高效率的建立工程,Xilinx推荐使用BSB向导。,Xilinx片上系统开发平台结构-BaseSystemBuilder(BSB)Wizard,基于设计人员选择的板子,设计人员通过BSB选择并配置基本元素,比如:处理器类型、调试接口、缓存配置、存储器类型和大小、外设等。对于BSB不支持的目标系统,设计人员可以选择定制板选项。使用这个选项时,必须指定未来板子的硬件,并且要给出用户约束文件UCF。如果选择的是支持的目标板,BSB向导自动加入UCF文件。当退出BSB时,BSB所建立的MHS和MSS文件自动加入到XPS工程中,设计员能在XPS中进行更进一步设计。,Xilinx片上系统开发平台结构-PlatformGenerator(PlatGen),平台产生器Platgen将对嵌入式系统的高级描述编译成能在目标FPGA芯片上实现的HDL网表。嵌入式系统硬件平台典型的由一个或多个处理器和不同的外设和存储器模块组成,这些模块通过处理器总线连接。每个外设的IP核有很多的参数,通过调整这些参数来定制行为。这些参数也用来为这些存储器和外设进行地址映射。由于EDK提供可选择的特性,FPGA只需要实现应用程序所要求的功能子集。硬件平台保存了MHS文件。MHS文件是表示所设计的嵌入式系统的硬件元件的最主要文件。MHS文件以ASCII码形式存在。,Xilinx片上系统开发平台结构-PlatformGenerator(PlatGen),Platgen读取MHS文件作为设计输入。Platform也从EDK库和用户IP库中读取处理器核硬件描述文件MPD,PAO。Platgen为嵌入式系统产生顶层HDL设计文件,该文件包含所有参数化了的IP核。在这个过程中,将MHS中所有高层总线连接变成连接处理器、外设和片上存储器的真实信号。它也调用XST编译器综合每个例化的IP核(Platgen产生的系统级网表也用来作为FPGA实现过程的一部分)。除此之外,Platgen也产生BMM(BRAMMemoryMap)文件,该文件包含所用到的片上BRAM的地址。,Xilinx片上系统开发平台结构-建立和导入IP向导,该向导帮助设计人员建立定制的外设并且将其导入相应的XPS工程中。在创建模式下,创建和输入外设向导建立很多文件,这些文件的一些是模板文件帮助设计人员实现外设,而不需要详细的知道总线协议,命名规则和特殊接口文件的格式。通过参考模板中的例子和使用不同的辅助设计支持文件,设计人员可以很快的进行逻辑定制。在导入模式下,该工具帮助设计人员建立接口文件和目录结构。对于这种模式,必须遵守EDK命名规则。一旦导入完成,用户的定制外设在EDK外设库中可以使用。,Xilinx片上系统开发平台结构-建立和导入IP向导,当创建或输入一个外设时,自动生成MPD(MicroprocessorPeripheralDefination)文件和PAO(PeripheralAnalyzeOrder)文件:,MPD文件定义了外设的接口;PAO文件通知其它工具(Platgen,Simgen),对外设需要编译哪个HDL文件和以什么样的顺序编译。,Xilinx片上系统开发平台结构-配置协处理器向导,如果设计中包含MicroBlaze和PowerPC处理器时,可以使用该向导。该向导添加和连接协处理器到CPU。协处理器是一个硬件模块用来实现用户在FPGA内定义的功能和通过FSL接口与处理器连接。FSL通道是一个专用的32位,点对点的通信接口。,Xilinx片上系统开发平台结构-库产生器(Libgen),Libgen为嵌入式处理器系统配置库,设备驱动,文件系统和中断句柄,称这些为软件平台。嵌入式软件平台为每个处理器定义了系统内外设的驱动(板级支持包),可选择的库,标准的输入/输出设备,中断句柄例程和其它相关的软件特征。基于这个软件平台,设计人员更进一步的定义了软件的应用程序。,Xilinx片上系统开发平台结构-库产生器(Libgen),XPS中的MSS文件包含了对软件平台的定义。MSS文件(可编辑的文本文件)和应用程序代表了嵌入式系统中软件元素。来自于EDK安装的库和驱动,以及设计人员提供的定制库和驱动,EDK将用户程序编译成处理器硬件平台上可执行的ELF文件。Libgen工具读MSS和MHS文件作为Libgen的基本输入。Libgen也读取选择的EDK库和不同的处理器核软件描述文件(MDD和驱动代码),Xilinx片上系统开发平台结构-GNU编译工具,XPS调用GNU编译工具用于编译和链接应用程序。对于MicroBlaze处理器的应用,XPS运行mb-gcc编译器;对于PowerPC处理器的应用,XPS运行powerpc-eabi-gcc编译器。编译器能读取C代码,头文件和汇编代码。链接器将编译的程序和选择的库连接在一起产生ELF可执行文件。连接器也读取连接脚本(默认产生或用户产生)。,Xilinx片上系统开发平台结构-XilinxMicroprocessorDebugger(XMD),设计人员可以使用指令集仿真器或者虚拟平台调试软件程序。XMD读ELF文件。对于调试物理的FPGA,XMD和FPGA通讯使用和FPGA下载相同的电缆。,Xilinx片上系统开发平台结构-GNU调试器(GDB),GNU调试器是个强大和灵活的工具,它为在不同的开发周期验证MicroBlaze和PowerPC系统提供了统一的调试和验证手段。GDB使用了XMD作为最基本的引擎和处理器目标通讯。,Xilinx片上系统开发平台结构-仿真模型产生器Simgen,仿真模型产生器Simgen为硬件产生和配置不同模型。为产生行为模型,Simgen使用MHS文件作为基本的输入。为产生结构或时序模型,Simgen使用综合后或布局布线后的设计数据库作为基本的输入。Simgen为每个处理器也读取嵌入式应用ELF文件去初始化片上存储器;这样处理器在仿真阶段就可以执行这些软件代码。,Xilinx片上系统开发平台结构-仿真库编译器(CompEDKLib),CompEDKLib使用不同仿真工具厂商提供的仿真器编译EDK基于HDL的仿真库。这个工具可以运行在GUI和批处理模式下。在GUI模式下,允许设计人员使用CompXLib编译Xilinx的库和EDK中可以使用的库。,Xilinx片上系统开发平台结构-虚拟平台生成器(VPgen),虚拟平台是硬件系统的周期级的仿真模型。可以在主机上用虚拟平台来调试和评估软件应用代码,而不需要得到运行在原型板上的硬件。,Xilinx片上系统开发平台结构-比特流初始化工具(Bitinit),比特流初始化工具使用软件信息来初始化与处理器连接的片上BRAM存储器。该工具读取ISE产生的比特流文件(system.bit),产生一个新输出比特流文件(download.bit),这个比特流文件包含ELF文件。这个工具使用BMM文件,该文件由Platgen产生,通过使用每个BRAM块的物理的布局信息由ISE工具更新。在内部,比特流初始化工具Bitinit使用在ISE中提供的Data2MEM工具来更新比特流文件。,Xilinx片上系统开发平台结构-系统ACE生成器(GenACE),从FPGA比特流中产生XilinxSystemACE配置文件和ELF/数据文件。产生的ACE文件用于配置FPGA,初始化BRAM,使用有效的程序或数据初始化外部存储器和启动处理器。EDK提供了工具命令语言(ToolCommandLanguage,Tcl)脚本,genace.tcl。该脚本使用XMD命令产生ACE文件。使用MDM系统可以为PowerPC或MicroBlaze产生ACE文件。,Xilinx片上系统开发平台结构-Flash编程,编程解决方案被设计成通用的,面向不同的Flash硬件和布局。,Xilinx片上系统开发平台结构-格式版本工具(revup),格式版本工具revup更新已经存的EDK工程到当前的版本。revup工具只执行格式的变化,对设计不进行更新。在应用revup前,备份MHS,MSS,XMP等文件。当使用新版本的EDK工具打开老版本的工程时,就会显示版本管理向导。当执行revup后,调用版本管理向导。向导提供有关设计中使用的Xilinx处理器IP核的变化信息。如果新版本的IP核可以使用,向导将升级到新的版本。,Xilinx片上系统开发平台结构-LibXil文件系统生成器(LibXilMFS),以文件句柄的形式提供管理程序存储器的能力。设计人员可以建立目录,并在目录中存放不同文件。文件系统能通过使用高级C语言进行函数调用来访问。,Xilinx片上系统开发平台结构-平台规范工具,能够自动产生建立IP核的MPD文件。通过建立和导入外设向导的帮助,能够使用这个工具提供的功能。,操作系统及板级支持包-Xilinx片上处理器支持的OS,XMKLinuxVxworks其它uc/osII等,操作系统及板级支持包-Xilinx的XMK,Xilinx的微核(XilinxMicrokernel,XMK)包含三个不同的软件实体,通过它用户应用程序可以与标准C和Math库,LibXil库,Xilkernel或独立运行的操作系统相接。,操作系统及板级支持包-Xilinx片上处理器支持的OS,标准C库由libc组成,该库包含了标准C的函数,比如,stdio,stdlib,string例程。数学库是一个扩展libm库,提供了标准的数学函数。LibXil库由下面构成:LibXilDriver-Xilinx的设备驱动程序;LibXilMFS-Xilinx的存储文件系统(MemoryFileSystem,MFS);LibXilFlash-并行Flash编程库;LibXillsf-串行Flash编程库。,操作系统及板级支持包-Xilinx片上处理器支持的OS,Xilinx的独立板级支持包(BoardSupportPackage,BSP)和Xilkernel是XMK内提供的两个操作系统选择,能被包含在所设计的应用软件平台中。,操作系统及板级支持包-板级支持包BSP,BSP是单线程库。BSP提供对硬件的小的接口。向应用程序提供所要求的最少的功能。BSP提供的一些典型的函数包括:,设置中断系统异常配置缓存其它硬件指定的功能。,片上可编程系统设计实验-实验内容,介绍EDK10.1SP3软件的使用方法和设计流程。在介绍这部分内容时,使用HEP的竞赛平台EXCD-1。该内容主要包括:,1.工程的建立;2.添加IP到硬件设计;3.添加定制IP到系统;4.编写应用程序;5.使用SDK工具;6.设计的软件和硬件调试等部分。,片上可编程系统设计实验-实验内容,特别注意:在开始使用XILINX的EDK软件开始片上可编程系统开发前,需要将光盘中的名为HEP_excd2-500的板支持包文件夹复制到D:Xilinx10.1EDKboardXilinxboards下,实验一:工程的建立-BSB向导概念,BSB向导帮助设计人员快速建立一个嵌入式系统工程。对于更复杂的工程,BSB向导提供基本的系统,通过这个系统设计人员可以定制完成嵌入式设计。为了高效率的建立工程,Xilinx推荐使用BSB向导。,实验一:工程的建立-BSB向导概念,基于设计人员选择的板子,设计人员通过BSB选择并配置基本的元素,比如:处理器类型、调试接口、缓存配置、存储器类型和大小、外设等。对于BSB不支持的目标系统,设计人员可以选择定制板选项。使用这个选项时,必须指定未来板子的硬件,并且要给出用户约束文件UCF。如果选择的是支持的目标板,BSB向导自动的加入UCF文件。当退出BSB时,BSB所建立的MHS和MSS文件自动加入到XPS工程中,设计人员能在XPS中进行更进一步的设计。,实验一:工程的建立-BSB向导概念,BSB可以根据设计人员的要求产生一个或多个软件工程。每个工程包含能运行在硬件目标开发板上的简单的应用程序和链接脚本。,实验一:工程的建立-设计结构原理,右图给出所设计系统的完整结构。所有实验流程都是基于这个设计结构完成的。,实验一:工程的建立-使用BSB向导,工程信息保存在XMP工程文件中。XMP文件包含:这个文件也包含FPGA的家族结构和类型。这部分主要介绍EDK处理嵌入式设计的控制细节。,MHS文件;MSS文件;C代码;头文件;,实验一:工程的建立-使用BSB向导,在Windows操作系统下,选择所有程序-XilinxISEDesignSuite10.1-EDK-XilinxPlatformStudio(XPS)。打开EDK软件。1)打开XPS,在XPS主界面选择File-NewProject,出现下图界面。选择BaseSystemBuilderWizard(recommend),然后单击ok按钮。,实验一:工程的建立-使用BSB向导,实验一:工程的建立-使用BSB向导,实验一:工程的建立-使用BSB向导,2)事先在某个目录下新建一个工程,用来存放例子的工程文件(比如本设计在E盘新建一个工程文件夹E:/labs/lab)。点击前页图所示的Browse按钮,定位到该工程文件夹下,默认的工程名为system.xmp。当完成后,单击ok。3)出现如下图所示的BaseSystemBuilder-Welcome界面,选择Creatanewproject。点击Next按钮。,实验一:工程的建立-使用BSB向导,实验一:工程的建立-使用BSB向导,4)如下图所示,出现BaseSystemBuilder-SelectBoard界面,在BoardVendor下拉框中选择Hep,在BoardName下拉框中选择HepEXCD2-500Board。在BoardRevision下选择C(唯一选项),点击Next。,实验一:工程的建立-使用BSB向导,选择需要实验板子,实验一:工程的建立-使用BSB向导,5)出现BaseSystemBuilder-SelectProcessor界面,在Processor下选择MicroBlaze,单击Next。6)出现下图所示的BaseSystemBuilder-ConfigureMicroBlazeProcessor界面。,实验一:工程的建立-使用BSB向导,配置MicroBlaze界面,Referenceclockfrequency:50.00MHzProcessor-busClockFrequency:50MHzProcessorconfigurationDebugI/F:On-chipH/WdebugmoduleLocalDataandInstructionMemory:8KBCacheSetup:unchecked上面的设置完成后单击“Next”。,实验一:工程的建立-使用BSB向导,7)出现图所示的BaseSystemBuilder-ConfigureI/OInterfaces(1/2)界面和2/2界面,在这两个界面下只配置RS232_PORT,其余选项不选。给出下面的配置选项:Peripheral:XPS_UARTLITEBandrate(bitsperseconds):9600Databits:8Parity:NONE,实验一:工程的建立-使用BSB向导,串口设置,实验一:工程的建立-使用BSB向导,多通道外部存储器控制器,存储器类型选择,实验一:工程的建立-使用BSB向导,11)出现AddInternalPeripheral界面后,不做任何操作,点击Next按钮。12)出现图BaseSystemBuilder-SoftwareSetup界面,在该界面不选择PeripheralSelftest选项,点击Next按钮。,实验一:工程的建立-使用BSB向导,实验一:工程的建立-使用BSB向导,13)出现图BaseSystemBuilder-ConfigureMemoryTestAppication界面,点击Next按钮。,实验一:工程的建立-使用BSB向导,14)出现图所示的BaseSystemBuilder-SystemCreated对话框,单击Generate按钮。,图系统建立对话框,实验一:工程的建立-使用BSB向导,15)出现BaseSystemBuilder-Finish界面,单击Finish按钮。,实验一:工程的建立-新建工程的结构分析,在创建过程完成后,在XPS主窗口出现图SystemAssemblyview1界面,该界面显示了系统中的外设和总线,以及系统的连接关系。1单击系统中每个外核模块旁的+,将其展开可以看到每个模块的详细的参数设置。比如外设和总线模块的连接关系:debug_module与mb_plb总线连接;dlmb_cntrl与dlmb总线连接;RS232_PORT与mb_plb总线连接;,实验一:工程的建立-新建工程的结构分析,实验一:工程的建立-新建工程的结构分析,2点击BusInterfaces旁边的Port标签,并展开每个IP实例旁的+,将其展开,可以看到IP端口所连接的网络。比如:1)RS232_PORT的RX与网络fpga_0_RS232_PORT_RX连接;2)RS232_PORT的TX与网络fpga_0_RS232_PORT_TX连接;,实验一:工程的建立-新建工程的结构分析,3点击Address标签,查看每个外设模块分配的基地址(Baseaddress)和高地址(Highaddress)空间:1)RS232_PORT基地址为:0 x84000000,高地址为:0 x8400ffff2)dlmb_cntrl的基地址为:0 x00000000,高地址为:0 x00001fff3)ilmb_cntrl的基地址为:0 x00000000,高地址为:0 x00001fff4)Micron_RAM的基地址为:0 x84100000,高地址为:0 x841fffff,实验一:工程的建立-新建工程的结构分析,4在主界面下选择Hardware-GenerateNetlist,或者在工具栏中单击图标,查看工程目录下所创建的子目录有:_xps,blkdigram,data,etc,hdl,implementation,pcores,microblaze_0,systhesis,TestApp_Memory。,实验一:工程的建立-新建工程的结构分析,5单击BlockDiagram标签,打开块图,如图观察设计中所用到的不同的元件。,实验一:工程的建立-新建工程的结构分析,6.在XPS主界面的左侧项目管理界面下,单击Project标签,然后单击ProjectFile旁边的+,双击mhsFiles:system.mhs来打开该文件。硬件平台的描述被包含在MHS文件中。MHS文件是表示所设计的嵌入式系统的硬件元件的最主要文件。MHS文件以ASCII码形式存在。,实验一:工程的建立-工程的下载,产生比特流文件并且下载到板子上。在下载前,指令存储器(FPGA的BRAM)将被更新(使用GNU编译器产生可执行的文件)。使用下面的步骤完成设计下载和结果的观察:连接HepEXCD-1的串口到主机的串口(如果主机无串口,可以通过USB-串口转换器来提供串口)打开目标板的电源打开主机的超级终端(在Windows操作系统的开始-所有程序-附件-通信下),并且配置其参数,使其波特率9600,数据位:8比特;无奇偶校验;一个停止位;无流量控制。,实验一:工程的建立-工程的下载,产生XPS主界面下选择Hareware-GenerateBitstream菜单,产生比特流文件;产生XPS主界面下选择DeviceConfiguration-DownloadBitstream,完成下载过程,在下图将看到下面的界面。,图超
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康教室活动方案
- 健康活动户外活动方案
- 健康达人活动方案
- 健美生活展示活动方案
- 健身市场活动方案
- 健身房社区健身活动方案
- 健身活动聚集性活动方案
- 健身门店引流活动方案
- 竞聘营销部副经理演讲稿
- 新高考卷I新高考卷II-近五年高考英语满分作文真题汇编
- 内科护理学肺结核护理
- 外科总论考试题+答案
- 2023年山东省青岛市中考数学真题【含答案、解析】
- 青马工程考试试题及答案
- 2025-2030中国尼龙纱行业市场发展趋势与前景展望战略研究报告
- 无人机适航标准与检查试题及答案
- T-CCFA 01029-2017 循环再利用对苯二甲酸二甲酯
- 细胞培养技术考核试题及答案
- 英美社会文化试题及答案
- 苏州考保安证试题及答案
- 副主任护师试题及答案
评论
0/150
提交评论