《基于FPGA的现代数字系统设计》课件第7章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《基于FPGA的现代数字系统设计》课件第7章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于FPGA的现代数字系统设计 基于 FPGA 现代 数字 系统 设计 课件
- 资源描述:
-
1、第7章 基于FPGA的系统级设计技术7.1 基于基于FPGA的嵌入式开发技术的嵌入式开发技术7.2 MicroBlaze嵌入式处理器嵌入式处理器7.3 嵌入式开发套件嵌入式开发套件EDK7.4 在在SOPC系统中添加定制外设系统中添加定制外设IP Core7.5 Xilinx DSP设计平台设计平台7.6 FIR滤波器设计滤波器设计小结小结题习题习实验项目实验项目7.1 基于基于FPGA的嵌入式开发技术的嵌入式开发技术7.1.1 嵌入式系统与嵌入式系统与SOPC技术技术 嵌入式系统在国内一般被认为是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗
2、等严格要求的专用计算机系统。嵌入式系统的构架可分为处理器、存储器、输入/输出(I/O)接口和软件四部分。嵌入式系统的软件一般由嵌入式操作系统和应用软件组成,它们之间的结合十分紧密,不同于PC机上的Windows系统和应用软件;硬件的核心部件是嵌入式处理器,其主要发展方向是小体积、高性能和低功耗,主要类型有嵌入式微处理器(MPU)、嵌入式微控制器(MCU)、嵌入式数字信号处理器(DSP)和嵌入式片上系统(SOC)。目前芯片集成度日益提高,设计复杂度越来越大,设计和验证技术的发展明显落后于集成电路制造技术,已经成为SOC设计面临的一个重大问题。传统的SOC设计方法采用软、硬件分立设计方法,首先构造
3、硬件子系统部分,然后在己有硬件上进行软件的设计、调试和开发。在深亚微米设计中,硬件开发费用急速增加,而当硬件设计完成后再进行软件调试时,如果发现了硬件系统设计的错误,纠正错误则要付出人力、物力、财力等方面高昂的代价,系统研发周期变长,成本增加,市场风险增大。软、硬件协同设计成为解决这一问题的关键技术之一。随着平台级FPGA产品的出现和EDA设计工具软件的不断发展,利用现有的FPGA和EDA工具,人们也可以很方便地在FPGA中嵌入RISC(Reduced Instruction Set Computer,精简指令集)处理器内核、DSP算法、存储器、专用ASIC模块、其它数字IP Core以及用户
4、定制逻辑等,构建成一个可编程的片上系统(SOPC),把原来需要在PCB上采用处理器、DSP、若干ASIC芯片才能实现的功能全都集成到了单片FPGA上,如图7.1所示。图7.1 基于FPGA的嵌入式系统 SOPC设计建立在平台设计的基础之上,采用系统级软硬件协同设计方法,在系统级上探析不同的设计方案,如软硬件划分、总线和处理器负载平衡、可编程资源分配,通过在系统级上比较不同实现结构的选择对产品性能的影响,从而进行设计的权衡,使得在物理实现之前就可以进行有效的分析和结构的优化,大大提高系统的可预测性,加速系统的研发速度,提高系统的设计效率,减少设计迭代的次数,降低设计风险,增强系统的竞争力。SOP
5、C软硬件协同技术包括基于平台的SOPC的系统建模、软件与硬件的划分、由建模系统到软硬件的映射即软硬件协同综合技术、软硬件协同调度、可验证设计、并行计算技术以及协同仿真和集成,这些技术不仅推动了SOPC的应用,而且促进了SOPC平台的发展。平台是软、硬IP模块及片上通信结构的结合体,一般还包括嵌入式CPU、实时操作系统、外围接口模块、中间件等。基于平台的设计PBD(Platform-Based Design)方法是近几年提出的SOC软硬件协同设计新方法,是基于块的设计BBD(Block-Based design)方法的延伸。它扩展了设计重用的理念,强调系统级复用,包含了时序驱动的设计和BBD的各
6、种技术,支持软硬件协同设计,提供系统级的算法和结构分析。PBD方法是一种面对集成、强调系统级重用的设计方法,此方法在平台的基础上开发复杂的产品,目标是降低开发风险和代价,缩短产品的上市时间。PBD方法具有开发周期短、重用效率高以及设计质量好等优点,不仅能实现最大化的设计复用,而且为软硬件协同设计提供了极大的便利。基于平台的SOPC设计方法扩展了芯核设计方法,简化了SOC设计过程,无需实现新的芯片即可快速获得片上系统。平台建立在集成IP Core的基础上,通常是针对某一特定应用领域而设计的,一个结构良好的SOPC平台系统可以有效实现IP Core复用,缩短SOC开发周期,同时降低研发风险。SOP
7、C将微处理器、DSP、可编程逻辑等组合形成平台系统,从而消除设计中的差异,硬件可编程性好,容易升级和扩展,受到越来越多的关注。半导体业界认为将整个系统整合到单一模型之中时,平台设计为设计重点之一,而其研发关键在于平台必须可以区分差异性的元素,包括先进的系统模型和验证环境。随着设计项目复杂程度的提高,系统级设计语言的整合趋势可以大大提高设计效率,从而为从事EDA设计的企业带来益处。现已证明,基于C语言的系统级设计语言不仅可以提高生产效率,而且也是对Verilog流程的补充。目前VHDL和Verilog HDL是中国的主流设计语言。然而,随着IC复杂度的不断提高,从更高层次入手对系统进行描述是描述
8、语言未来的发展方向。SystemVerilog/SystemC的整合,使得软件团队一方面可以与高效的硬件设计和验证流程进行合作,同时还可以使用自己原来熟悉的编程语言进行工作,使得整个流程可以达到最高的设计效率。Synopsys公司是SystemC的初始发起人之一。为了推动SystemVerilog的标准化进程,Synopsys还公开提供了其OpenVera测试平台语言、常用的API和OpenVera Assertion(OVA)规范,这些使得SystemVerilog3.1的出现成为可能。在这些提供出来的技术的基础上,System Verilog包含了对RTL设计进行简化所需的全部功能。这些工
9、具及相关设计方法学一起被归类为电子系统级ESL(Electronic System-Level)设计,广义指比目前主流的寄存器传输级RTL更高的抽象级别上开始的系统设计与验证方法学。ESL工具和可编程硬件一起构成了基于桌面的硬件开发环境,并提供了符合软件开发的工作流程模型。工具可提供针对特定的基于FPGA的参考板的优化支持,软件开发者可以利用这些支持启动项目评估或原型构建。这些板及相应的参考应用程序均使用更高级别的系统描述语言编写,这使创建定制的及硬件加速的系统变得更为快速和容易。另外,ESL 方法学与可编程硬件的结合使用,使尝试大量可能的应用实现以及对极不同的软件/硬件分割策略快速进行实验成
10、为可能。这种尝试新方法和快速分析性能与尺寸平衡的实验能力使基于ESL设计方法的FPGA设计能够比基于传统的RTL方法以更短的时间实现更高的总体性能。7.1.2 基于基于SOPC的嵌入式系统开发流程的嵌入式系统开发流程1.需求分析需求分析确定设计任务和目标,并制定说明规格文档,作为下一步设计的指导和验收标准。需求分析往往要与用户反复交流,以明确系统功能需求,性能需求,环境、可靠性、成本、功耗、资源等需求。2.体系结构设计体系结构设计体系结构设计是嵌入式系统的总体设计,它需要确定嵌入式系统的总体构架,从功能上对软硬件进行划分。在此基础上,确定嵌入式系统的硬件选型(主要是处理器选型),操作系统的选择
11、和开发环境的选择。3.硬件的设计、制作及测试硬件的设计、制作及测试对于一般的嵌入式系统,在这一阶段要确定硬件部分的各功能模块及模块之间的关联,并在此基础上完成元器件的选择、原理图绘制、印刷电路板(PCB)设计、硬件的装配与测试、目标硬件最终的确定和测试。SOPC系统在此有所不同,由于硬件系统的大部或全部是在FPGA上实现的,因此在这一阶段的设计工作是基于硬件定义文件,利用平台产生工具生成对应的网表文件,再通过FPGA实现工具来完成硬件系统的实现。4.软件的设计、实现及测试软件的设计、实现及测试这部分工作与硬件开发并行、交互进行。软件设计主要完成引导程序的编制、操作系统的移植、驱动程序的开发、应
12、用软件的编写等工作。设计完成后,软件开发进入实现阶段。这一阶段主要是嵌入式软件的生成(编译、链接)、调试和固化运行,最后完成软件的测试。5.系统集成系统集成将测试完成的软件系统装入制作好的硬件系统中,进行系统综合测试,验证系统功能是否能够正确无误地实现,最后将正确的软件固化在目标硬件中。本阶段的工作是整个开发过程中最复杂、最费时的,特别需要相应的辅助工具支持。6.系统性能测试及可靠性测试系统性能测试及可靠性测试 测试最终完成的系统性能是否满足设计任务书的各项性能指标和要求。若满足,则可将正确无误的软件固化在目标硬件中;若不能满足,在最坏的情况下,则需要回到设计的初始阶段重新进行设计方案的制定。
13、基于SOPC的软硬件协同设计流程从目标系统构思开始。对一个给定的目标系统经过构思,完成其系统整体描述,然后交给软硬件协同设计的开发集成环境,由计算机自动完成剩余的全部工作。一般而言,还要经过模块的行为描述、对模块的有效性检查、软硬件划分、硬件综合、软件编译、软硬件集成、软硬件协同仿真与验证等各个阶段,其中软硬件划分后产生硬件部分、软件部分和软硬件接口界面三个部分。硬件部分遵循硬件描述、硬件综合与配置、生成硬件组建和配置模块;软件部分遵循软件描述、软件生成和参数化的步骤来生成软件模块。最后把生成的软硬件模块和软硬件界面集成,并进行软硬件协同仿真,以进行系统评估和设计验证。SOPC设计流程如图7.
14、2所示。图7.2 SOPC设计流程图 7.2 MicroBlaze嵌入式处理器嵌入式处理器FPGA中嵌入式处理器一般情况下可以有三种不同的使用模式,分别是状态机模式、单片机模式和定制嵌入模式,如图7.3所示,因此并不是在FPGA中简单地增加一个或多个嵌入式处理器就实现了SOPC。(a)状态机模式 (b)单片机模式 (c)定制嵌入模式 图7.3 FPGA中嵌入式处理器的使用模式 在状态机模式下嵌入式处理器可以无外设、无总线结构和无实时操作系统,但是可以执行复杂的状态机和算术运算,达到可高或可低的性能,以及最低的成本,通常应用于VGA和LCD控制等。当嵌入式处理器带有一定的外设,能执行单片机即微控
15、制器的功能时,被称之为单片机模式,该模式可能会利用实时操作系统和总线结构,达到中等的性能和中等的成本,常应用于控制和仪表等。SOPC中的嵌入式处理器一般为定制嵌入模式,嵌入式处理器具有扩充的外设、实时操作系统和总线结构,达到高度的集成和高的性能,除应用于控制和仪表等外,还可应用于网络和无线通信等。当嵌入式处理器具有基于硬件的除法单元和浮点单元,以及大的可寻址的存储器空间时,嵌入式处理器核还可被用来实现现代复杂的DSP算法,此时既可以只利用软件来实现,也可直接利用硬件加速来实现。Xilinx公司的SOPC嵌入式解决方案中以三类RISC结构的微处理器为核心,涵盖了系统硬件设计和软件调试的各个方面。
16、三类嵌入式内核分别为PicoBlaze、MicroBlaze和PowerPC,其中PicoBlaze和MicroBlaze是可裁剪的软核处理器,PowerPC为硬核处理器。PicoBlaze是采用VHDL语言在早期开发的小型八位软处理器内核包,其汇编器是简单的DOS可执行文件KCPSM2.exe,用汇编语言编写的程序经过编译后放入FPGA的块RAM存储区,汇编器可在数秒内编译完存储在块RAM中的程序。需要提醒的是,Xilinx的EDK不提供基于PicoBlaze的嵌入式系统开发支持。PowerPC是32位PowerPC嵌入式环境架构,确定了若干系统参数,用以保证在应用程序级实现兼容,增加了其设
17、备扩展的灵活性。Xilinx将PowerPC 405处理器内核整合在Virtex2 Pro系列以及更高等级系列的芯片中,允许该硬IP Core能够深入到FPGA架构的任何部位,提供高端嵌入式应用的FPGA解决方案。Virtex4以及Virtex5系列的部分芯片中集成了24个PowerPC 405处理器核。MicroBlaze是一款由Xilinx公司开发的应用十分广泛的嵌入式处理器软核,用以开发Xilinx的FPGA上的嵌入式工程,下面主要对MicroBlaze进行介绍。MicroBlaze采用功能强大的32位流水线RISC结构,MicroBlaze是一个非常简化,却具有较高性能的软核。它包含3
18、2个32位通用寄存器和一个可选的32位移位寄存器,时钟可达150MHz,在Virtex 2 Pro以及更高系列的平台上,运行速度可达120DMIPs(DhrystoneMIPS),占用资源不到1000个Slice。它符合IBM CoreConnect总线标准,能够与PowerPC 405系统无缝连接。在FPGA内部可以集成多个MicroBlaze处理器,这极大增加了FPGA开发的灵活性。MicroBlaze软核内部采用RISC架构和哈佛结构的32位指令和数据总线,内部有32个通用寄存器R0R31、两个特殊寄存器程序指针(PC)和处理器状态寄存器(MSR)、一个ALU单元、一个移位单元和两级中断
19、响应单元等基本模块,还可具有3/5级流水线、桶形移位器、内存管理/内存保护单元、浮点单元(FPU)、高速缓存、异常处理和调试逻辑等可根据性能需求和逻辑区域成本任意裁剪的高级特性,极大地扩展了MicroBlaze的应用范围。MicroBlaze处理器的内核在不断更新中,MicroBlaze 7.1a版的内部架构示意图如图7.4所示。MicroBlaze处理器架构均衡了执行性能和设计尺寸,但由于其最高工作频率由FPGA芯片提供,所以计算性能随处理器配置、实现工具结果、目标FPGA架构和器件速度级别的不同而不同。如同PC机除了CPU之外还需要具有PCI总线、ISA总线和USB总线与各类外设相连才能实
20、现一个完整的计算机硬件系统一样,嵌入式系统也必须有自己的总线连接方案。MicroBlaze的总线接口是以IBM CoreConnect为嵌入式处理器的设计基础,具有丰富的接口资源。CoreConnect即片上总线通信链,它能使多个芯片核相互连接成为一个完整的新芯片。目前MicroBlaze软核支持的外设接口示意图如图7.5所示,其中包括:PLB(Processor Local Bus,处理器局部总线)接口;带字节允许的OPB(On-chip Peripheral Bus,片上外设总线)接口;高速的LMB(Local Memory Bus,本地存储器总线)接口;FSL(Fast Simplex
21、Link,快速单工链)接口;XCL(Xilinx Cache Link,Xilinx缓存链路)接口;与MDM(Microprocessor Debug Module,微处理器调试模块)连接的调试接口。图7.4 MicroBlaze 7.1a版的内部架构示意图 图7.5 MicroBlaze软核支持的外设接口示意图 其中,PLB总线是高带宽的主从结构,并完全同步到一个时钟。OPB总线比PLB总线在协议上相对简单,属于低速接口总线,是对IBM CoreConnect片上总线标准的部分实现,适用于将IP Core作为外设连接到MicroBlaze系统中。目前,新的PLB 4.6版本总线协议已提供了对
22、老版本PLB和OPB两类总线的完全支持。LMB用于实现对片上的块RAM(BlockRAM)的高速访问。FSL是MicroBlaze软核特有的一个基于FIFO的单向链路,可以实现用户自定义IP Core与MicroBlaze内部通用寄存器的直接相连;而XCL则是MicroBlaze软核新增加的,用于实现对片外存储器的高速访问。MicroBlaze软核还有专门的调试接口,通过参数设置开发人员可以只使用特定应用所需要的处理器特性。Xilinx提供了大量的外设IP Core,可外挂到MicroBlaze的OPB总线上,如DMA单元、以太网MAC层处理器、PCI/PCIe接口、UART以及USB等。一个
23、外设一般不能同时和这两类总线相连,部分IP模块之所以能和两类总线连接,是因为其控制接口和低速的OPB总线相连,而数据接口和高速总线连接。MicroBlaze采用的是哈佛存储结构,也就是指令和数据采用分离的地址空间结构,每个地址空间有32位宽,可以最多分别处理4GB的指令和数据存储。另外指令和数据的存储空间可以重叠地被映射到同一块物理地址中,以方便软件调试。除非声明了支持非法异常,所有的指令必须以合法字的形式被接收。由于MicroBlaze没有区分数据接口是I/O还是存储,所以处理器存储的接口也是OPB、LMB和XCL,而且LMB存储地址空间不能和OPB及XCL重叠。表 7.1 Micro Bl
24、aze 支持的字、半字和字节的具体内容 字 半字 字节 字节地址 n n+1 n+2 n+3 n n+1 n 字节标签 0 1 2 3 0 1 字节数端 MSByte LSByte MSByte LSByte 位标签 0 31 0 15 0 7 位数端 MSBit LSBit MSBit LSBit MSBit LSBit 7.3 嵌入式开发套件嵌入式开发套件EDKXilinx公司推出的Embedded Development Kit(EDK)是包含了所有用于设计嵌入式编程系统的集成开发解决方案,该套件包括了Xilinx Platform Studio(XPS)工具、PowerPC嵌入式硬处理
25、器核和MicroBlaze软处理器核,以及进行Xilinx平台FPGA设计时所需的技术文档和IP Core,是Xilinx综合性嵌入式解决方案的关键部分,利用该工具包提取和自动化处理系统设计,能大大加速嵌入式开发。同时,EDK也对使用Xilinx ISE、ChipScope Pro和第三方EDA工具的共同开发提供了良好的支持,如图7.6所示。图7.6 Xilinx嵌入式集成开发解决方案 7.3.1 EDK的组成的组成 1XPS集成设计环境集成设计环境XPS为嵌入式处理器系统提供了一个创建软件和硬件规范流程的图形化集成开发环境,如图7.7所示。XPS无缝地把产生硬件和软件部件以及可选择的校验部件
展开阅读全文