560 likes | 913 Views
SOPC 设计与实践. 徐远超 http://xuyuanchao.ie.cnu.edu.cn. 课程简介. 相关课程 前导课: EDA 单片机与接口 数电 计算机类课程 C 配套课程: SOPC 技术综合设计实践. 课程任务 学习基于 FPGA 的 SOPC 技术 , 掌握利用 FPGA 设计 环境,实现嵌入式系统的软硬件协同设计方法 理论和实践:开发工具 设计流程、方法和思想, 电子技术、信息处理的最新技术. 课程特点和学习方法. SOPC: 新兴的技术,新的概念、设计理念和设计方法.
E N D
SOPC设计与实践 徐远超 http://xuyuanchao.ie.cnu.edu.cn
课程简介 • 相关课程 前导课:EDA 单片机与接口 数电 计算机类课程 C 配套课程:SOPC技术综合设计实践 • 课程任务 • 学习基于FPGA的SOPC技术,掌握利用FPGA设计 • 环境,实现嵌入式系统的软硬件协同设计方法 • 理论和实践:开发工具 设计流程、方法和思想, • 电子技术、信息处理的最新技术
课程特点和学习方法 SOPC: 新兴的技术,新的概念、设计理念和设计方法 SOPC:具有很强的应用性:通过实践很好的掌握该技术 理论和实践并重,理论配套实验,C程序+Verilog HDL SOPC嵌入式实验室:革新SOPC实验平台
要求和考核方法 • 考核 考勤(30%) 互动、作业(20%) 实验考试(50%)
教材和参考资料 教材: SOPC技术基础教程 侯建军等著 2008.5 实验讲义 参考书: SOPC技术与应用 汪国强等 2006.8 SOPC嵌入式系统基础教程 周立功等 2006.11 基于FPGA的嵌入式系统设计 刘明章著 2007.9 NIOSII嵌入式软核SOPC设计原理及应用 李兰英 2006
交流 答疑时间: http://xuyuanchao.ie.cnu.edu.cn Email: xuyuanchao@263.net
1.1 电子系统设计的发展趋势 • 嵌入式系统 微电子技术—硅片单位面积集成的晶体管数目越来越多 计算机技术—软硬件技术的发展推动EDA技术的发展。 • 概念 • 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件 • 可裁剪(可编程、可重构),适用于应用系统对功能、可靠 • 性、成本、体积、功耗有严格要求的专用计算机系统。 • 三个基本要素: • “嵌入性” • “专用性” • “计算机系统” • 举例
嵌入式处理器 • 嵌入式系统的组成 外围硬件系统 嵌入式操作系统 用户应用程序 • 说明 软硬件;单片机;嵌入式处理器;嵌入式操作系统……
集成电路的发展 可编程片上系统 (系统级) 集成电路单元库 (逻辑级) 器件的物理版图设计 (器件级)
Co Processor PCB FLASH FPGA CPU RAM GPIO UART DMA Con. LCD Con. 由IC互联构成的嵌入式系统设计 缺点:连线的延时, PCB板的可靠性不能保证
集成电路的发展 设计技术和工艺 逻辑级 集成电路IC单元库 • SOC——片上系统(System on a chip) 将完整系统的功能集成在一个芯片上或芯片组 20世纪90年代末 SOC从系统的整体角度出发,以IP核为基础, 硬件描述语言作为系统功能和结构的描述手段, 借助于EDA工具进行开发。 器件的物理版图设计 器件级 【IP】:知识产权 (Intellectual property)
PCB ASIC Co Processor Co Processor Flash Flash IP集成 Ram GPIO CPU Ram GPIO CPU DMA Con. DMA Con. UART UART LCD Con. LCD Con. 由SOC构成嵌入式系统设计 SOC能够综合考虑整个系统的情况,实现更高的性能 SOC是电子系统设计的革命,主流的设计技术。 【ASIC】: 专用集成电路 Application Specific Integrated Circuit
SOC 是将一个完整产品的各功能集成在一个芯片中,包括CPU、存储器、硬件加速单元(DSP、浮点协处理器等)、通用I/O(GPIO)、UART接口和模数混合电路(放大器、比较器、A/D、D/A、射频电路、锁相环等),甚至延伸有传感器等 (如果把CPU看成是大脑,则SOC就是包括大脑、心脏、眼睛和手的系统。) • SOC的特点 SOC嵌入式系统就是微处理器的IP再加上一些外围电路IP组合而成的。(盖房子) 可重用的IP来构建系统,降低开发的复杂度。
SOC存在的问题: SOC整体性能好,但现实中缺乏好的解决方案。由于是基于ASIC实现SOC系统,设计周期长、产品不能修改,系统的灵活性差。(盖一次房子) 学术科研机构、中小企业难以应用。 集成电路的发展 可编程片上系统 系统级 集成电路IC单元库 逻辑级 器件级 器件的物理版图设计
sopc 1.2 SOPC及其技术 System On Programmable Chip,可编程的片上系统。是Altera公司提出来的一种灵活、高效的SOC解决方案。 SOPC将处理器、存储器、I/O、LVDS、CDR等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。 双重含义:1. 片上系统(SOC)2.可编程系统; SOC和PLD技术融合 现今SOPC可认为是基于FPGA解决方案的SOC(无限次盖房子)
FPGA PCB Co Processor Co Processor Flash Flash IP集成 Ram Ram GPIO CPU GPIO CPU DMA Con. DMA Con. UART UART LCD Con. LCD Con. 基于FPGA的嵌入式系统 (SOPC) 此方案适合于系统的预研初期,投资小、风险小,可以快速构建原型系统,加速产品上市。 资源的重复使用性特别适合于高校、科研部门的系统开发,可以快速将新的idea转化为现实,进行性能评估。 “From Concept to System in minutes”
Flash CPU CPU CPU I/O I/O I/O I/O I/O I/O I/O I/O I/O SDRAM DSP DSP DSP FPGA FPGA 复习
Flash SDRAM FPGA SOPC的设计方法 降低成本、设计复杂性和功耗的解决方案 基于FPGA的嵌入式系统
名词解释 IC ? IC:是半导体元件产品的统称,包括:集成电路、三极管、特殊电子元件。 AISC ? ASIC:专用IC。是指为特定的用户、某种专门或特别的用途而设计的芯片组。 SOC ? SOC:片上系统。随IC设计与工艺的提高,使原先由许多IC组成的电子系统可集成到一个芯片上,构成SOC。
名词解释 SOPC:可编程的片上系统。是Altera公司提出来的一种灵活、高效的SOC解决方案。也可认为是基于FPGA解决方案的SOC。 SOPC ? EDA:电子设计自动化 。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 EDA ? • 深刻的理解上述名词的意义,在今后的学习中可反复查看。
SOPC在嵌入式系统设计中的优势 • 设计的灵活性 • 可裁剪、可重构、可升级 • 软硬件协同设计 • 降低成本、提高系统性能、系统紧凑 • 缩短设计迭代周期 • 降低硬件系统设计风险
SOPC的基本特征 • 发展前提条件 • 平台:高密度高性能FPGA,先进的开发工具 • 基础:IP Core的不断丰富和完善 • 关键:处理器IP Core解决了关键问题 • SOPC的基本特征(SOC /PLD/FPGA) • 嵌入式处理器IP Core为核心(多处理器) • 具有小容量片内高速RAM资源 • 丰富的IP Core资源可供灵活选择 • 足够的片上可编程逻辑资源 • 处理器调试接口和FPGA编程接口共用或并存 • 可能包含部分可编程模拟电路 • 单芯片、低功耗、微封装
SOPC小结 SOPC是基于IP重用和软硬件协同设计的产物。对于嵌入式系统设计者,在EDA平台上基于FPGA设计SOC是嵌入式系统的理想选择。 软硬协同编程将逐步取代不能适应技术发展的硬编程,成为嵌入式系统设计的主要模式;而SOPC时代的到来意味着成千上万的系统工程师可以实现他们梦想:将自己设计的板子变成芯片,这正是SOPC技术的含义!
1.3 IP核 • IP (Intellectual Property) 知识产权的简称,SOC和SOPC在设计上都是以集成电路IP核为基础的。 IP core:将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等等设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。随着CPLD/FPGA的规模越来越大,设计越来 越复杂,使用IP核是一个发展趋势 集成电路IP是经过预先设计、预先验证、符合产业界普遍认同的设计规范和设计标准,并具有相对独立并可以重复利用的电路模块或子系统,如CPU、SDRAM控制器、运算器等。
1.3 IP核 集成电路IP模块具有知识含量高、占用芯片面积小、运行速度快、功耗低、工艺容差性大等特点,还具有可重用性,可以重复应用于SOC、SOPC或复杂的ASIC的设计当中。 • IP core的表现形式 • HDL语言(灵活) 软核 • 原理图(可移植性差)软核 • 门级电路网表 固核 • 电路物理结构掩模版图和工艺文件 硬核
软核 IP软核通常是用HDL文本形式提交给用户。 它经过RTL级设计优化和功能验证,但其中不含有任何具体的物理信息。据此,用户可以综合出正确的门电路级设计网表,借助于EDA综合工具可以很容易地与其他外部逻辑电路合成一体,具有很大的灵活性。 软IP内核也称虚拟组件(VC-Virtual Component) • 硬核 IP硬核提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。 硬核CPU:Powerpc ARM Mips Intel x86 Motorola 68000
固核 IP固核的设计程度则是介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般以门级电路网表的形式提供给用户。
嵌入式处理器内核 • 在SOPC的设计中,嵌入式的微处理器的IP分软核和硬核两种。 • 基于FPGA嵌入IP硬核的SOPC系统: 以硬核的方式预先植入嵌入式系统处理器知识产权核(ARM或其他的微处理器),利用FPGA中的可编程逻辑资源和IP核来实现其他的外围器件和接口。 FPGA的灵活的硬件设计和实现与处理器的强大运算功能很好地结合。 • 硬核CPU举例:ARM Mips PowerPc Intel x86 Motorola 68000
1.高成本:硬核多来自第三方,FPGA厂商需要支付 知识产权费用,FPGA器件价格相对偏高。 • 2. 不灵活:硬核预先植入,无法实现可编程。无法 根据需要改变处理器结构,如总线宽度、 接口等。 基于IP硬核处理器的SOPC系统缺点: • 3. 不能在同一FPGA中使用多个处理器核。 • 4.无法根据实际设计需要裁减定制处理器。
可配置 嵌入式软核处理器 优势 构成SOPC系统的软核处理器 • 可配置嵌入式软核处理器的优势 1. 提供合理的性能组合 2. 提升系统的性能 3. 降低系统成本 4. 延长产品的生命周期
主流的SOPC系统 • Altera(2000年,提出SOPC) • NIOSII/ARM9 • Cyclone/Stratix系列 • Quartus/SOPC Builder/IDE • Xilinx • MicroBlaze/PowerPC • Spartan/Virtex • Xilinx Platform Studio (XPS)
Nios 1.4 Nios II软核简介 • Nios II软核处理器简介 Altera公司在2000年开发了第一代可配置嵌入式软核处理器Nios(16位)。 继Nios之后,2004年6月Altera公司又推出了性能更好的Nios II (32位)嵌入式软核处理器。 Nios II 32位软核处理器 16位软核处理器
1.4 Nios II软核简介 • Nios II软核处理器简介 Nios II 的特点: 最大处理性能提高了3倍 CPU内核面积最大可缩小1/2 32位RISC嵌入式处理器具有超过200DMIP的性能,在低成本FPGA中实现成本只有35美分。 由于Nios II是软核形式,其可在多种系统设置组合中进行选择,满足成本和功能要求。 可延长产品生命周期,防止出现处理器逐渐过时的情况。 Nios II 32位软核处理器
性能最高,但占用的逻辑资源最多。 (1400-1800 LEs) 占用的逻辑资源最少,但性能最低。( 600-700 LEs) 平衡的性能和尺寸。NiosII/s内核比第一代的Nios CPU更快,占用的资源更少。 (1200-1400 LEs) 1.4 Nios II软核简介 1. Nios II软核处理器可定制性 Nios II 处理器系列包括三种内核 Nios II/f (快速) Nios II Nios II/e (经济) Nios II/s (标准) 32位软核处理器
2. 外设的可定制性 一套通用外设和接口IP。利用SOPC Builder,可以生成自己的定制外设,并集成在Nios II处理器系统中。
二、系统性能可配置性 根据性能需求,设计者能更改其设计,如加入多个Nios II CPU、定制指令集、硬件加速器,以达到新的性能目标。 1. 多CPU内核 在FPGA上实现多处理器内核,获得更高性能。 IDE支持开发。
2. 可配置的总线(Avalon) Avalon总线能进行多路数据并行处理,系统吞吐量大。SOPC Builder自动生成的Avalon总线。 • 传统总线结构:总线仲裁器控制总线主机和从机之间的通信。只有一个主机能够使用总线资源,会导致带宽瓶颈。(比较)
Avalon总线 • ALTERA专门适用NIOS的总线标准:多主机体系结构 • 非真正意义的总线,由多路开关和仲裁机制构成 • 多主设备总线 主设备并行控制总线 • 从设备仲裁器 • 支持不同数据带宽,适应同步和异步 总线标准 • 系统加入模块或外设优先权改变时,SOPC Builder产生 新总线 CPU 0 DMA CPU 1 System Switch Fabric Arbiter Arbiter DisplayControl Program Memory 0 I/O Data Memory 0 Data Memory 1 Custom Function Program Memory 1
3. 定制指令 • 对时间要求严格的算法可定制指令,提高性能(如:FFT) 可扩展CPU指令集。 • 软件中比较费时间的运算(比如浮点乘除法,循环迭代等),通 过定制指令由硬件来实现,加速运算速度 。
4. 硬件加速 • 类似CPU+GPU。 • 专用硬件加速器,作为FPGA的定制协处理器,协助CPU同时处理多个数据。SOPC Builder含有一个向导,将加速逻辑和DMA通道引入系统。
Nios II Nios II Nios II Nios II Nios II Nios II NIOSII与FPGA 2S180 2C5 CycloneEP2C5:90nm工艺 FPGA: 4600 LEs StratixEP2S180: 90nm FPGA 180,000 LEs Nios II/e 13% of FPGA 35¢ 1% of FPGA Nios II/f “fast”
1.5 支持Nios II的FPGA Cyclone II 系列 Stratix 系列 Cyclone 系列 Stratix II 系列 Altera Cyclone系列:第一代Cyclone FPGA是在2002年12月分推出的。主要用于对成本敏感的设计中。 Cyclone II系列:具有很高的性能和极低的功耗,而价格和ASIC相当,能够提 供多种功能,为价格敏感的应用提供大批量产品解决方案。
1.5 支持Nios II的FPGA Cyclone II 系列 Stratix 系列 Cyclone 系列 Stratix II 系列 Altera Stratix系列:StratixFPGA为满足高带宽系统的需求进行了优化,具有非常高的 内核性能、存储能力、架构效率,主要用于高端FPGA市场。 Stratix II系列:在Stratix基础上增加了新的特性。
Stratix和Stratix II系列 • Stratix 系列FPGA:性能高 功耗低(高端) • 温度范围宽:航空航天领域,军用 • Stratix II采用密钥对配置文件进行加密 • Stratix IV器件是功耗最低、性能最好的FPGA 基于40nm工艺 680K LEs
Stratix IV FPGA: 是“与”不是“或” 第一款 40-nm FPGA