SOPC及其技术

微电子技术的近期发展成果,为SOC的实现提供了多种途径。对于经过验证而又具有批量的系统芯片,可以做成专用集成电路ASIC而大量生产。而对于一些仅为小批量应用或处于开发阶段的SOC,若马上投入流片生产,需要投入较多的资金,承担较大的试制风险。最近发展起来的SOPC技术则提供了另一种有效的解决方案,即用大规模可编程器件的FPGA来实现SOC的功能。 可编程逻辑器件产生于20世纪70年代。其出现的最初目的是为了用较少的PLD品种替代种类繁多的各式中小规模逻辑电路。在30多年的发展过程中,PLD的结构、工艺、功耗、逻辑规模和工作速度等都得到了重大的进步。尤其是在20世纪90年代,出现了大规模集成度的FPGA,单片的集成度由原来的数千门,发展到数十万甚至数百万门。芯片的I/O口也由数十个发展至上千个端口。有的制造商还推出了含有硬核嵌入式系统的IP。因此,完全可能将一个电子系统集成到一片FPGA中,即SOPC,为SOC的实现提供了一种简单易行而又成本低廉的手段,极大地促进了SOC的发展。 SOPC技术是美国Altrea公司于2000年最早提出的,并同时推出了相应的开发软件Quartus II。SOPC是基于FPGA解决方案的SOC,与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色,构成SOPC的方案也有如下多种途径。 1.基于FPGA嵌入IP硬核的SOPC系统 即在FPGA中预先植入嵌入式系统处理器。目前最为常用的嵌入式系统大多采用了含有ARM的32位知识产权处理器核的器件。尽管由这些器件构成的嵌入式系统有很强的功能,但为了使系统更为灵活完备,功能更为强大,对更多任务的完成具有更好的适应性,通常必须为此处理器配置许多接口器件才能构成一个完整的应用系统。如除配置常规的SRAM、DRAM、Flash外,还必须配置网络通信接口、串行通信接口、USB接口、VGA接口、PS/2接口或其他专用接口等。这样会增加整个系统的体积、功耗,而降低系统的可靠性。但是如果将ARM或其他知识产权核,以硬核方式植入FPGA中,利用FPGA中的可编程逻辑资源和IP软核,直接利用FPGA中的逻辑宏单元来构成该嵌入式系统处理器的接口功能模块,就能很好地解决这些问题。对此,Altera和Xilinx公司都相继推出了这方面的器件。例如,Altera的Excalibur系列FPGA中就植入了ARM922T嵌入式系统处理器;Xilinx的Virtex-II Pro系列中则植入了IBM PowerPC405处理器。这样就能使得FPGA灵活的硬件设计和硬件实现更与处理器的强大软件功能有机地相结合,高效地实现SOPC系统。 2.基于FPGA嵌入IP软核的SOPC系统 将IP硬核直接植入FPGA的解决方案存在如下几种不够完美之处: l 由于此类硬核多来自第3方公司,FPGA厂商通常无法直接控制其知识产权费用,从而导致FPGA器件价格相对偏高。 l 由于硬核是预先植入的,设计者无法根据实际需要改变处理器的结构,如总线规模、接口方式,乃至指令形式,更不可能将FPGA逻辑资源构成的硬件模块以指令的形式形成内置嵌入式系统的硬件加速模块(如DSP模块),以适应更多的电路功能要求。 l 无法根据实际设计需求在同一FPGA中使用多个处理器核。 l 无法裁减处理器硬件资源以降低FPGA成本。 l 只能在特定的FPGA中使用硬核嵌入式系统,如只能使用Excalibur系列FPGA中的ARM核,Virtex-II Pro系列中的PowerPC核。 如果利用软核嵌入式系统处理器就能有效地克服解决上述不利因素。 目前最有代表性的软核嵌入式系统处理器分别是Altera的Nios和Nios II核,及Xilinx的MicroBlaze核。特别是前者,即Nios CPU系统,使上述5方面的问题得到很好地解决。 Altera的Nios核是用户可随意配置和构建的32位/16位总线(用户可选的)指令集和数据通道的嵌入式系统微处理器IP核,采用Avalon总线结构通信接口,带有增强的内存、调试和软件功能(C或汇编程序程序优化开发功能);含由First Silicon Solutions(FS2)开发的基于JTAG的片内设备(OCI)内核(这为开发者提供了强大的软硬件调试实时代码,OCI调试功能可根据FPGA JTAG端口上接收的指令,直接监视和控制片内处理器的工作情况)。此外,基于Quartus II平台的用户可编辑的Nios核含有许多可配置的接口模块核,包括:可配置高速缓存(包括由片内ESB、外部SRAM或SDRAM,100MB以上单周期访问速度)模块,可配置RS232通信口、SDRAM控制器、标准以太网协议接口、DMA、定时器、协处理器等。在植入(配置进)FPGA前,用户可根据设计要求,利用Quartus II和SOPC Builder,对Nios及其外围系统进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。Nios核在同一FPGA中被植入的数量没有限制,只要FPGA的资源允许。此外,Nios可植入的Altera FPGA的系列几乎没有限制,在这方面,Nios显然优于Xilinx的MicroBlaze。 另外,在开发工具的完备性方面、对常用的嵌入式操作系统支持方面,Nios都优于MicroBlaze。就成本而言,由于Nios是由Altera直接推出而非第3方产品,故用户通常无需支付知识产权费用,Nios的使用费仅仅是其占用的FPGA逻辑资源费。因此,选用的FPGA越便宜,则Nios的使用费就越便宜。 特别值得一提的是,通过Matlab和DSP Builder,或直接使用VHDL等硬件描述语言设计,用户可以为Nios嵌入式处理器设计各类加速器,并以指令的形式加入Nios的指令系统,从而成为Nios系统的一个接口设备,与整个片内嵌入式系统融为一体。例如,用户可以根据设计项目的具体要求,随心所欲地构建自己的DSP处理器系统,而不必拘泥于其他DSP公司已上市的有限款式的DSP处理器。 3.基于HardCopy技术的SOPC系统 通过强化SOPC工具的设计能力,在保持FPGA开发优势的前提下,引入ASIC的开发流程,从而对ASIC市场形成直接竞争。这就是Altera推出的HardCopy技术。 HardCopy就是利用原有的FPGA开发工具,将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化,从而克服传统ASIC设计中普遍存在的问题。 与HardCopy技术相比,对于系统级的大规模ASIC(SOC)开发,有不少难于克服的问题,其中包括开发周期长、产品上市慢,一次性成功率低、有最少的投片量要求、设计软件工具繁多且昂贵、开发流程复杂等。例如,此类ASIC开发,首先要求有高的技术人员队伍、高达数十万美元的开发软件费用和高昂的掩膜费用,且整个设计周期可能长达一年。ASIC设计的高成本和一次性低成功率很大部分是由于需要设计和掩膜的层数太多(多达十几层)。然而如果利用HardCopy技术设计ASIC,开发软件费用仅2000美元(Quartus II),SOC级规模的设计周期不超过20周,转化的ASIC与用户设计习惯的掩膜层只有两层,且一次性投片的成功率近乎100%,即所谓的FPGA向ASIC的无缝转化。而且用ASIC实现后的系统性能将比原来在HardCopy FPGA上验证的模型提高近50%,而功耗则降低40%。一次性成功率的大幅度提高即意味着设计成本的大幅降低和产品上市速度的大幅提高,3种SOC方案的比较如表1-1所示。 表1-1 3种SOC方案的比较 项 目 基于ASIC的SOC 基于FPGA的SOC(SOPC) 基于HardCopy的SOC 单片成本 低 较高 较低 开发周期 长(超过50周) 短(少于10周) 较短(少于20周) 开发成本 设计工程成本高掩模成本高软件工具成本高(超过30万美元) 设计工程成本低无掩模成本软件工具成本低(低于2000美元) 设计工程成本低掩模成本低软件工具成本低(低于2000美元) 一次投片情况 一次投片成功率低、成本高、耗时长 可现场配置 一次投片成功率近乎100%,成本低、耗时短 集成技术 0.25μs~65nm 0.25μs~90nm 0.25μs ~90nm 可重构性 不可重构 可重构 不可重构 HardCopy技术是一种全新的SOC级ASIC设计解决方案,即将专用的硅片设计和FPGA至HardCopy自动迁移过程结合在一起的技术,首先利用Quartus II将系统模型成功实现于HardCopy FPGA上,然后帮助设计者把可编程解决方案无缝地迁移到低成本的ASIC上的实现方案。这样,HardCopy器件就把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有较大批量要求并对成本敏感的电子系统产品上。从而避开了直接设计ASIC的困难,而从原型设计提升至产品制造,通过FPGA的设计十分容易地移植到HardCopy器件上,达到降低成本,加快面市周期的目的。HardCopy器件(如HardCopy Stratix系列、Excalibur系列FPGA)避免了ASIC的风险,它采用FPGA的专有迁移技术。其HardCopy ASIC是直接在Altera PLD体系之上构建的,采用有效利用面积“逻辑单元海”内核。本质上,HardCopy器件是FPGA的精确复制,剔除了可编程性,专用配置和采用金属互连使用的走线。这样,器件的硅片面积就更小,成本就更低,而且还改善了时序特性。

第一章 概述 1.1 SOPC 的概念 1.2 SOPC 系统设计流程 1.2.1 SOPC Builder 的设计流程 1.2.2 SOPC Builder 的设计阶段 1.2.3 SOPC 系统开发流程 1.3 SOPC 系统开发环境 1.4 本书中的系统配置 第二章 SOPC 系统构架 2.1 系统模块框图 2.2 Nios CPU 2.2.1 指令总线主端口 2.2.2 数据总线主端口 2.2.3 缓冲存储器 2.2.4 移位单元 2.2.5 乘法支持 2.2.6 中断支持 2.2.7 Nios 片上调试模块 2.2.8 开发环境 2.3 Avalon 总线 2.3.1 基本概念 2.3.2 Avalon 总线传输 2.3.3 Avalon 三态接口 2.3.4 地址对齐 2.4 外设IP 模块 2.4.1 通用异步串行接口(UART ) 2.4.2 可编程并行输入/输出模块(PIO ) 2.4.3 定时器 2.4.4 DMA 控制器 第三章 系统硬件开发 3.1 硬件开发流程 3.2 创建Quartus II 工程 3.3 创建Nios 系统模块 3.3.1 开始使用SOPC Builder 3.3.2 系统频率 3.3.3 添加CPU 和外设模块 3.3.4 指定基地址 3.3.5 生成系统模块 3.3.6 添加符号到BDF 中 3.4 编译设计(Compilation) 3.5 编程(Programming ) 3.5.1 配置FPGA 3.5.2 用户微控制器 3.5.3 在Nios 系统上运行软件 3.6 下载设计到 Flash 存储器 第四章 系统软件开发 4.1 软件开发流程 4.2 软件开发环境 4.3 文件系统 4.4 软件开发工具 4.4.1 GNUPro 工具 4.4.2 Nios OCI 调试模块 4.4.3 Nios OCI 调试控制台 4.4.4 Nios SDK Shell 4.5 可配置的处理器硬件属性 4.5.1 乘法器 4.5.2 数据和指令高速缓冲器 4.5.3 用户指令 4.5.4 同时执行的多主(Multi-Master)总线结构和 DMA 4.5.5 数据和指令高速缓冲器 4.5.6 外设和存储器接口 4.6 Nios SDK 4.6.1 inc 目录 4.6.2 lib 目录 4.6.3 src 目录 4.7 软件开发应用 4.7.1 开始前的准备 4.7.2 打开 Nios SDK Shell 4.7.3 编译程序 4.7.4 用insight 下载、运行和调试程序 4.7.5 用Nios OCI 调制控制台下载、运行和调试程序 4.7.6 重建(rebuild)软件 4.7.7 下载软件到 Flash 4.7.8 第三方开发和调试工具 4.8 使用.hexout 4.9 其它的开发板通信和调试方法 4.9.1 GERMS 监视器 4.9.2 Insight:GNU调试器 4.9.3 Gprof:GNU Profiler 4.10 Nios SDK Shell提示信息 4.11 在 Nios 系统中实现中断服务程序(ISR) 4.12 用户自定义指令 4.12.1 用户自定义指令的概念 4.12.2 加速效果 4.12.3 用户自定义指令应用 第五章 系统模拟与调试 5.1 软件配置 5.2 模拟设置 5.2.1 存储器初始化 5.2.2 UART 外设模拟设置 5.2.3 SOPC Builder模拟设置 5.2.4 通用系统模拟文件 5.3 ModelSim 模拟 5.4 模拟结果分析 5.4.1 通过 UART 外设同 GERMS 监控程序交互 5.4.2 执行 PIO 外设操作的 C 程序 5.5 增加/删除波形图信号 5.6 片外存储器模拟 5.6.1 使用自动产生的存储器模块 5.6.2 指定一个定制模块 5.6.3 定义存储器模块内容 5.7 调试 5.7.1 使用 SignalTap II 逻辑分析器 5.7.2 使用 SignalProbe 5.7.3 使用 Chip Editor 第六章 系统设计实例 6.1 建立硬件需求 6.2 创建一个基本的Nios 设计 6.3 GDB 调试 6.4 添加用户外设 6.5 RTL 仿真 6.6 Flash 编程 6.7 用户指令和DMA 6.8 MP3 播放器 附录 1:Nios 嵌入式处理器 32 位指令集 附录 2:Nios 嵌入式处理器开发板-APEX 20K200E 附录 3:Nios 嵌入式处理器开发板-Cyclone_1C20 附录 4:Nios 嵌入式处理器开发板-Stratix_1S10 附录 5:Nios 嵌入式处理器开发板-Stratix_1S40 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值