第一图书网

面向SOPC的FPGA设计与应用

杨军 等著,余江 主审 科学出版社
出版时间:

2012-3  

出版社:

科学出版社  

作者:

杨军 等著,余江 主审  

页数:

267  

内容概要

  本书详细介绍了基于FPGA的SOPC嵌入式系统开发的方法与技巧。
  全书共分9章,从基础知识到应用实例再到综合总结,帮助读者快速提高SOPC嵌入式系统开发能力和实战经验。
  基础知识部分第1~2章:简要介绍了SOPC基础知识和常用开发工具,并通过1个基本实验,帮助读者巩固基础知识,熟悉软件操作环境;
  应用实战部分第3~8章:安排了6个实例设计,详细介绍了SOPC项目开发的技术和技巧,深入的讲解了开发方案与设计思路,并对设计过程中的重点和难点进行了详细讲解和注释,实例具有代表性,帮助读者巩固知识点、掌握SOPC开发技术,迅速提升读者的设计能力。
  综合总结部分第9章:综合SOPC开发技术,总结书中6个应用开发实例以及编者多年来的开发经验及遇到的问题,让读者在吸取经验和技巧的同时迅速提升开发的实践能力。

书籍目录

前言
第1章 项目开发环境介绍
1.1 软件平台
1.1.1 硬件开发工具Quartus Ⅱ 8.0
1.1.2 ModelSim 6.0仿真工具
1.1.3 Nios II IDE 8.0软件集成环境
1.2 硬件平台
第2章 SOPC系统设计分析
2.1 SOPC技术简介
2.1.1 SOPC技术的主要特点
2.1.2 SOPC技术的实现方式
2.1.3 SOPC系统的开发流程
 2.2 Nios II概述
2.2.1 Nios II嵌入式处理器
2.2.2 Nios II处理器的特性
 2.3 基于SOPC的Nios II处理器设计
2.3.1 SOPC Builder的功能
2.3.2 SOPC Builder的组成
2.3.3 SOPC Builder组件
 2.4 SOPC开发流程
2.4.1 硬件部分设计
2.4.2 软件部分设计
第3章 基于Avalon总线的PWM控制器
 3.1 实例介绍
 3.2 设计思路与原理
3.2.1 Avalon总线概述
3.2.2 基于Avalon总线的外设
3.2.3 PWM工作原理
3.2.4 系统整体结构
3.3 硬件设计
3.3 1 PWM IP核设计
3.3.2 SOPC系统的创建
3,4 软件设计
3.5 实例总结
第4章 基于Nios II的网络通信
4.1 实例介绍
4.2 设计思路与原理
4.2 1 DM9000A芯片介绍
4.2.2 DM9000A原理
4.2.3 系统整体结构
4.3 硬件设计
4.3.1 DM9000A与Avalon总线接口设计
4.3.2 SEG7 LUT_8与Avalon总线接口设计
4.3.3 SOPC系统的创建
4.4 软件设计
4.4.1 系统软件
4.4.2 应用软件
 4.5 实例总结
第5章 基于SOPC的SD卡音乐播放器
 5.1 实例介绍
5.2 设计思路与原理
5.2.1 SD卡简介
5.2 2 WM8731芯片简介
5.2.3 系统整体结构
 5.3 硬件设计
5.3.1 Audio_DAC FIFO与Avalon总线接口模块设计
5.3.2 SOPC系统的创建
 5.4 软件设计
 5.5 实例总结
第6章 基于SOPC的十进制浮点乘法器
6.1 实例介绍
第7章 基于AES算法的实时加/解密系统
第8章 常见问题与开发技巧总结

章节摘录

版权页:第1章项目开发环境介绍 1.1 软件平台 1.1.1 硬件开发工具 Quartus II 8.0 Quartus II 是Altera 公司的综合性可编程逻辑器件(Programmable Logic Device,PLD)的开发软件,支持原理图、VHDL、Verilog HDL 和 AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器和仿真器,可以完 成从设计输入到硬件配置的完整 PLD 设计流程。Quartus II 可以在 Windows XP、 Linux 和 UNIX 上使用,除了可以使用 Tcl脚本完成设计流程外,还提供了完善的用 户图形界面设计方式,具有运行速度快、界面统一、功能集中、易学易用等特点。 Quartus II支持 Altera的 IP 核(Intellectual Property core),包含了LPM/ MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。对第三方EDA工具的良好支持,也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II通过与DSP Builder 工具和MATLAB/Simulink 系统级设计工具结合,可以方便地实现各种DSP应用系统;支持Altera 的片上可编程系统(System On a Programmable Chip,SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Altera Quartus II 作为一种可编程逻辑的设计环境,由于其强大的设计能力和 直观易用的接口,越来越受到数字系统设计者的欢迎。 Altera Quartus II 8.0 开发软件提供完整的多平台设计环境,能够直接满足特定 的设计需要,为 SOPC 提供全面的设计环境。Quartus II 8.0 软件含有 FPGA 和 CPLD 设计所有阶段的解决方案,图 1.1 所示为 Quartus II 8.0的设计流程。 此外,Quartus II 软件为设计流程的每个阶段提供Quartus II图形用户界面、 EDA工具界面和命令行界面。可以在整个流程中只使用其中的一个界面,也可以在设计流程的不同阶段使用不同界面。 1.1.2 ModelSim6.0仿真工具 ModelSim是由Mentor公司开发的仿真工具,能提供友好的调试环境,是唯一的单内核支持VHDL和VerilogHDL混合仿真的仿真器。它可以将整个程序分步执行,使设计者能直接看到程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻,都可以查看任意变量的当前值,也可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比Quartus自带的仿真器功能强大得多,是进行FPGA/ASIC设计的RTL级和门级电路仿真的首选。 ModelSim采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核。个性化的图形界面和用户接口,为用户加快调试提供强有力的手段。全面支持VHDL和VerilogHDL语言的IEEE标准,支持C/C++功能调用和调试。ModelSim仿真工具提供了很多的调试方法,利用好工具的这些特点可以有效地提高开发效率。ModelSim的主要特点如下: (1)RTL级和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真; (2)单内核VHDL和VerilogHDL混合仿真; (3)源代码模板和助手,项目管理; (4)集成了性能分析、波形比较、代码覆盖、数据流ChaseX、SignalSpy、虚拟对象(Virtual Object)、Memory窗口、Assertion窗口、源码窗口、显示信号值、信号条件断点等众多调试功能; (5)C和Tcl/Tk接口,C调试; (6)对SystemC的直接支持,和HDL任意混合; (7)支持SystemVerilog的设计功能; (8)对系统级描述语言,如SystemVerilog、SystemC、PSL等,提供全面支持。 1.1.3Nios II IDE 8.0 软件集成环境 Nios II IDE是一个基于 Eclipse IDE 框架的集成开发环境。该工具是为了在Nios II上开发软件工程而定制的,类似单片机的软件开发环境,虽然设置简单,但是功能强大。Nios II集成开发环境(Integrated Development Environment,IDE)是Nios II处理器与用户的接口界面,在Nios II IDE中可以完成所有软件开发任务,包括工程管理、编辑和编译、调试以及闪存器件编程等。下面简单介绍一下 Nios II IDE 的功能和特点。 (1)GNU开发工具,它是一种开源的编译环境,包括标准的GCC编译器、链接器、汇编器和 Makefile 工具等。 (2)基于GDB的调试工具,包括仿真和硬件调试。 (3)集成了一个硬件抽象层(Hardware Abstraction Layer,HAL)。 (4)支持MicroChip/OS II和LwTCP/IP协议栈。 (5)支持Flash下载(Flash Programmer 和 Quartus II Programmer)。 Nios II 处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、 JTAG 调试器、实时操作系统(Real-Time Operating System,RTOS)和TCP/IP协议栈。设计者能够用 Altera Quartus II 开发软件中的 SOPC Builder 系统开发工具,很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios II处理器核的数量。使用 Nios II软件开发工具能够为 Nios II 系统构建软件,即一键式自动生成适用于 系统硬件的专用 C/C++运行环境。Nios II IDE 提供了许多软件模板,简化了项目设置。此外,NiosII开发套件包括两个第三方实时操作系统(RTOS)――MicroC/OS-II(Micrium)、Nucleus PLUS(ATI/Mentor)以及供网络应用使用的 TCP/IP 协议栈。 1.2硬件平台 本书中的项目实例均是在Altera提供的DE2平台上测试实现的。该平台使用的是性价比较高的CycloneII系列FPGA芯片EP2C35,以及丰富的外围设备,详细特性如下。 (1)芯片:核心的FPGA芯片是CycloneIIEP2C35F672C6,从名称可以看出,它包含有35×103个逻辑单元(LogicElement,LE)。Altera下载控制芯片EPCS16以及USB-Blaster对JTAG支持。 (2)存储芯片:512KBSRAM,8MBSDRAM(SamsungSDRAM),4MBFlash存储器(选用IntelFlash芯片,方便Flash软件编程)。 (3)经典I/O配置:拥有4个按钮,18个拨动开关,18个红色发光二极管,9个绿色发光二极管,8个七段数码管,16×2字符液晶显示屏(显示字符和ASCII码)。 (4)超强多媒体:24位CD音质音频芯片WM8731(Mic输入+LineIn+标准音频输出),视频解码芯片(支持NTSC/PAL制式),带有高速DAC视频输出VGA模块。 (5)更多标准接口:通用串行总线(USB)控制模块以及A、B型接口,SDCard接口,IrDA红外模块,10/100Mbit/s自适应以太网络适配器,RS-232标准串口(系统通信接口),PS/2键盘接口。 (6)其他:50MHz、27MHz晶振各一个,支持外部时钟,80针带保护电路的外接I/O端口。 第2章SOPC系统设计分析 2.1 SOPC技术简介 20世纪50年代以来,微电子技术迅猛发展,集成电路设计和工艺水平有了很大的提高,单片集成度已达上亿个晶体管,这从数量上已经大大超过了大多数电子系统的要求。如何利用这一近乎无限的晶体管集成度,就成了电子工程师的一项重大挑战。在这种背景下,片上系统(System OnChip,SOC)应运而生。SOC将大规模的数字逻辑和嵌入式处理器整合在单个芯片上,并且集合了模拟部件,形成了模数混合、软硬件结合的完整的控制和处理。 2.1.1 SOPC技术的主要特点 从系统集成的角度看,SOC是以不同模型的电路集成、不同工艺的集成作为支持基础的。所以,要实现SOC,必须先重点研究器件的结构与设计技术、VLSI设计技术、工艺兼容技术、信号处理技术、测试与封装技术等,这就需要规模较大的专业设计队伍、相对较长的开发周期和高昂的开发费用,并且涉及大量集成电路后端设计和微电子技术的专门知识,因此设计者在转向SOC的过程中也要面临着巨大的困难。 SOC面临上述诸多困难的原因在于该技术基于超大规模专用集成电路,所以整个设计过程必须实现完整的定制或半定制集成电路设计流程。美国Altera公司在2000年提出的片上可编程系统(System On a Programmable Chip,SOPC)技术则提供了另一种有效的解决方案,即用大规模可编程器件的FPGA来实现SOC的功能。SOPC与SOC的区别就是FPGA与ASIC的区别。SOPC是SOC发展的新阶段,代表了当今电子设计的发展方向。其基本特征是设计人员采用自顶向下的设计方法,对整个系统进行方案设计和功能划分,最后系统的核心电路在可编程器件上实现。 随着百万门级的FPGA芯片、功能复杂的IP核、可重构的嵌入式处理器核以及各种功能强大的开发工具的出现,SOPC已成为一种一般单位甚至个人都可以承担和实现的设计方法。SOPC基于FPGA芯片,将处理器、存储器、I/O接口等系统设计需要的模块集成在一起,完成整个系统的主要逻辑功能,具有设计灵活、可裁减、可扩充、可升级以及软硬件在系统可编程的特性。 近年来,MCU、DSP和FPGA在现代嵌入式系统中都扮演着非常重要的角色,它们都具有各自的特点但又不能兼顾。在简单的控制和人机接口方面,以51系列单片机和ARM微处理器为代表的MCU因为具有全面的软件支持而处于领先地位;在海量数据处理方面,DSP优势明显;在高速复杂逻辑处理方面,FPGA凭借其超大规模的单芯片容量和硬件电路的高速并行运算能力,显示出突出的优势。因此,MCU、DSP和FPGA的结合将是未来嵌入式系统发展的趋势,而SOPC技术正是MCU、DSP和FPGA的有机融合。目前,在大容量FPGA中可以嵌入16位或者32位的MCU,如Altera公司的NiosII处理器。DSP对海量数据快速处理的优异性能主要在于它的流水线计算技术,只有规律的加减乘除等运算才容易实现流水线的计算方式,这种运算方式也较容易用FPGA的硬件门电路来实现。目前,实现各种DSP算法的IP核已经相当丰富和成熟,例如FFT、IIR、FIR、Codec等。利用相关设计工具(如DSPBuilder)可以很方便地把现有的数字信号处理IP核添加到工程中去。SOPC一般采用大容量FPGA(如Altera公司的Cyclone、Stratix等系列)作为载体,除了在一片FPGA中定制MCU处理器和DSP功能模块外,可编程器件内还具有小容量高速RAM资源和部分可编程模拟电路,还可以设计其他逻辑功能模块。一个大容量的FPGA的SOPC结构如图2.1所示。 SOPC技术具有如此多的优点,已经成为嵌入式系统领域中一个新的研究热点,并代表了未来半导体产业的一个发展方向。相对于单片机、ARM而言,目前SOPC技术的应用还不是很广,但从趋势上看,只要再经过几年的发展,SOPC技术的应用就会像今天的单片机一样随处可见。 2.1.2SOPC技术的实现方式 SOPC技术的实现方式一般分为三种。 (1)基于FPGA嵌入IP硬核的SOPC系统。目前最常用的嵌入式系统大多采用了含有ARM的32位IP处理器核的器件。Altera公司Excalibur系列的FPGA中就植入了ARM922T嵌入式系统处理器,Xilinx的Virtex-IIPro系列中则植入了IBMPowerPC405处理器。这样就能使FPGA灵活的硬件设计和硬件实现与处理器强大的软件功能相结合,高效地实现SOPC系统。 (2)基于FPGA嵌入IP软核的SOPC系统。在第一种实现方案中,由于硬核是预先植入的,所以其结构不能改变,功能也相对固定,无法裁减硬件资源,而且此类硬核多来自第三方公司,其知识产权费用导致成本的增加。如果利用软核嵌入式系统处理器就能有效克服这些不利因素,最具有代表性的嵌入式软核处理器是Altera公司的NiosII软核处理器。 (3)基于HardCopy技术的SOPC系统。HardCopy就是利用原有的FPGA开发工具,将成功实现于FPGA器件上的SOPC系统,通过特定的技术直接向ASIC转化,从而克服传统ASIC设计中普遍存在的问题。 从SOPC实现方式上不难看出,IP核在SOPC系统设计中占有极其重要的地位,IP核的设计和复用成为SOPC技术发展的关键所在。半导体产业的IP定义为在ASIC、ASSP和PLD等中预先设计好的电路模块。在SOPC设计中,每一个组件都是一个IP核。IP核模块有行为、结构和物理三级不同程度的设计,对应描述功能的不同分为三类,即完成行为描述的软核(Soft IP Core)、完成结构描述的固核(Firm IP Core)和基于物理描述并经过工艺验证的硬核(Hard IP Core)。 IP软核通常以HDL文本形式提交给用户,它已经过RTL级设计优化和功能验证,但其中不含任何具体的物理信息。据此,用户可以综合得到正确的门电路级设计网表,并可以进行后续的结构设计,具有很大的灵活性。借助于EDA综合工具可以很容易地与其他外部逻辑电路合成一体,根据各种不同半导体工艺,设计成具有不同性能的器件。IP软核也称为虚拟组件(Virtual Component,VC)。 IP硬核是基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已通过工艺验证,具有可靠的性能。其提供给用户的形式是电路物理结构掩模版和全套工艺文件。 IP固核的设计程度则介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般以门级电路网表的形式提供给用户。 如何设计出性能良好的IP核?虽然这个问题没有统一完整的答案,但根据前人的开发经验和电子设计的一般规则,仍然可以总结出IP核设计一般应该遵循的几个准则: ①规范化――严格按照规范设计,这样的系统具有可升级性、可继承性,易于系统集成; ②简洁化――设计越简洁的系统,就越容易分析、验证,达到时序收敛。


编辑推荐

《面向SOPC的FPGA设计与应用》适合高等院校计算机科学与技术、信息安全、电子工程等相关专业的本科高年级学生、研究生学习,也可供从事FPGA设计与开发的科研人员参考。

图书封面

广告

下载页面


面向SOPC的FPGA设计与应用 PDF格式下载



相关图书