1、提 要q1.SOPC概述q2.FPGA的嵌入式处理器q3.SOPC开发工具及开发流程q4.嵌入式系统应用实例u是否需要在FPGA中嵌入处理器?vFPGA适合用于逻辑控制、接口控制、规则数据处理,设计具有复杂算法和逻辑控制系统时,需要结合使用嵌入式处理器v对系统集成度要求较高,将处理器嵌入FPGA能最大限度地提高系统集成度,降低系统设计复杂度,加快上市时间。v对需求变化提供较大的灵活性,在FPGA中嵌入处理器较为合适。FPGA与芯片处理器的结合的优点是无须重做一块新PCB或采用新的处理器就能够对软、硬件进行调试,对变更进行测试。2 FPGA的嵌入式处理器u选择软核处理器还是硬核处理器?v对处理器
2、的性能要求不高(仅要求几个到一两百个DMIPS,采用不多的FPGA资源就可以,则采用嵌入软核处理器是合适的选择。v需要数据、协议处理能力超过300DMIPS,且难以由多个处理器分担,则采用1,100MIPS的高性能PowerPC嵌入硬核处理器较合适。vFPGA中嵌入的处理器应当与FPGA及其所面向的市场、应用需求相匹配。在中低性能FPGA中采用MicroBlaze、Nios/NiosII等软核处理器,在高性能平台FPGA中采用PowerPC高性能硬核处理器。例如采用Spartan3 FPGA中的MicroBlaze软核处理器实现中低复杂度系统控制和低速协议处理,采用Vitex-5 FXT平台F
3、PGA中的PowerPC440实现大批量的数据处理和复杂的高速网络协议处理。2 FPGA的嵌入式处理器u选择通用处理器还是专用处理器?v在性能均等的情况下,采用专用处理器还是通用的ARM、PowerPC处理器,主要取决于对工具包的支持情况和对可移植性的需求。v为有效实现与FPGA逻辑的整合,专用处理器一般需要厂商自己提供的编译、仿真、调试工具。如果集成ARM、PowerPC等通用处理器则可以更多地采用GCC、GDB等通用开发工具。通用处理器也具有更广泛的开发社区支持,具有更丰富、更成熟的资源。v从可移植性的角度,通用处理器也要优于专用软核处理器。以前采用ARM、PowerPC等外置通用处理器的
4、系统设计可以轻松地移植到FPGA内部的嵌入处理器。当采用FPGA的系统设计达到一定量后需转化为ASIC时,通用嵌入处理器也更容易转化,因为大的晶元代工厂一般都有ARM7/9、PowerPC的工艺库。2 FPGA的嵌入式处理器uFPGA中的处理资源的快速增长促进了设计方法学的变化u从新的系统设计观点角度重新考虑嵌入式系统中FPGA与嵌入式处理器的相互关系,可以更好地满足复杂系统对性能、电路设计、功耗、保密性方面的苛刻要求。u将FPGA看作数字系统集成的平台,统一考虑接口、逻辑控制、协处理和系统控制,统一考虑硬件逻辑处理和软件逻辑,统一考虑FPGA中的硬件开发和软件开发,并根据系统需要做出合理的平
5、衡。2 FPGA的嵌入式处理器QUARTUS II+SOPC Builder+Nios II IDE3 SOPC开发工具及开发流程EDK(XPS+SDK)+ISE参考书参考书基于基于EDKEDK的的FPGAFPGA嵌入嵌入式系统开发式系统开发4 嵌入式系统应用实例4.1 基于Altera公司的Excalibur系列芯片的EPXA10开发板4.1.1 Excalibur系列芯片内部结构 4.1.2 ARM-ARM922Tu工作频率最高可达200MHz;u采用5级流水线,指令执行效率更高;u提供1.1MIPS/MHz的哈佛总线结构;u支持32位ARMv4T指令集和16位Thumb扩展指令集;u支持
6、32位AMBA总线接口,便于外部扩充;u具有全性能的内存管理单元(MMU),支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统;u具有8K的指令缓存和8K数据缓存,能实现更高效的指令和数据处理;u支持C语言和汇编语言编程。4.1.3 FPGAu查找表(LUT)逻辑,u乘积项(Product-Term)逻辑,u嵌入式增强型存储器,u可以嵌入大量的MegaCore、AMPP函数和IP核,u最高工作频率可达100MHz,u非常适于片上可编程系统(SOPC)设计 4.1.4 先进的存储支持 u集成了2块SRAM和1或2块DPRAM SRAM的容量为216Kbytes;DPRA
7、M的容量为116Kbytes uSDRAM 控制器 用于控制片外单倍速(SDR 133MHz)/双倍速(DDR 266MHz)SDRAM,支持容量高达512Mbytes uEBI接口 最多可外接4个存储设备,如Flash存储器、SRAM等,总容量高达 128Mbytes 4.1.5 其它嵌入式周边外设 uUART uPLLs uTimer u中断控制器 uWatchdog Timer 4.1.6 Excalibur系列芯片支持引导方式 Flash引导配置:将设计下载到片外Flash Memory中,设计中必须包含对ARM的应用。启动时需要系统引导ARM启动,这个任务由下载到Flash中Boot
8、loader文件来完成。然后ARM为主动,初始化各种寄存器、划分地址空间以及配置FPGA逻辑。最后将程序代码段拷贝到SRAM或SDRAM中,开始执行用户代码。E2PROM引导配置:将设计下载到片外E2PROM中,设计中可以只包含FPGA部分的应用。启动时FPGA为主动,初始化各种寄存器、划分地址空间以及配置FPGA逻辑,这时ARM处于复位状态。配置完成后,如果有对ARM的应用,则ARM解除复位,开始执行E2PROM中的用户代码。反之,ARM一直处于复位状态。直接配置芯片:将设计通过下载线直接对芯片进行引导配置,将用户代码下载到片内SRAM中,配置完成直接运行。以这种方式配置的芯片,掉电数据就会
9、丢失。(开发调试阶段常用)4.1.7 Excalibur系列芯片的通讯方式nARM作为AHB1总线的主控,直接访问AHB1总线的从属资源,包括SDRAM 控制器、片上SRAM、中断控制器、定时器等。nARM作为AHB1总线的主控,通过AHB1-2 桥访问AHB2总线上的从属资源,包括UART、EBI、SRAM、Stripe-To-FPGA 桥等,同时通过Stripe-To-FPGA桥对FPGA进行访问和控制。n FPGA通过AHB2的总线主控 FPGA-To-Stripe桥访问AHB2总线上的从属资源,包括SRAM、SDRAM控制器、UART等。总线仲裁确保了每一时刻只有一个总线主控可以启动数
10、据传输。总线译码器用来为数据传输提供目标设备的地址和片选信号。4.2 基于Altera公司的Excalibur系列芯片实现的图像采集处理系统 4.2 基于Altera公司的Excalibur系列芯片实现的图像采集处理系统 4.2 基于Altera公司的Excalibur系列芯片实现的图像采集处理系统 4.2 基于Altera公司的Excalibur系列芯片实现的图像采集处理系统 4.2 基于FPGA+ARM实现的星敏感器4.2.1 星敏感器的原理框图光学系统星空图像传感器信号处理星点提取导航星库星图识别姿态计算姿态4.2.2 星敏感器的相关技术u镜头设计u图像传感器选择u图像驱动u图像处理(星图识别)镜头设计u焦距 u孔径图像传感器选择uCCD(电荷耦合器件)帧间转移型 帧转移型 全帧型uCMOS图像传感器 APS(有源象素传感器)TFC APS图像传感器选择(CCD vs CMOS结构)CMOS 图像传感器图像传感器选择(CCD vs CMOS芯片)STAR1000 CMOS 图像传感器大面阵CCD图像传感器图像驱动(CCD时序)图像驱动(CMOS时序)图像处理(星图识别)uARM处理器 uDSP处理器4.2.3 原理样机4.2.4 原理样机FPGA图像驱动电路板4.2.4 原理样机ARM图像处理电路板ARM处理器 4.2.5 拍摄的星图