
嵌入式fpgasopc.doc
249页1 嵌入式 FPGA/SOPC 技术实验与实践教程 2 内容简介 教材分基本理论和实践两大部分介绍了 FPGA 和 SOPC 的基本理论,以及 Quartus Ⅱ软 件的使用方法;基于 FPGA 的开发技术;Nios Ⅱ嵌入式系统开发过程;Nios Ⅱ的常用组件与 编程和 SOPC 技术的应用,SOPC 是实现嵌入式系统的最高形式 实践部分,结合常用的开发实例介绍 IDE Quartus Ⅱ的设置,新建工程或文件、编译和下 载文件的过程、方法及技巧SOPC Builder 设计流程、NiosⅡ软核处理器、NiosⅡ软核处理器 的配置方法Nios Ⅱ嵌入式软核处理器设计、SOPC 的软/硬件结合开发流程、 NiosⅡ的开发 平台和集成开发环境(IDE)特点和 NiosⅡ的外围接口等 教材适合大学二年级以上的电子类、计算机类、自动化类和机电类等专业的本科生的教材 或教学参考书,或作为专业技术人员的培训参考资料 3 前 言 随着微电子技术和计算机技术的迅速发展,可编程逻辑器件、EDA 技术、嵌入式系统、 SOC、SOPC 和 IP 核等新概念和新技术层出不穷,新技术的应用迅速渗透到电子、通信、信息、 机械制造、仪器仪表、航空航天及家用电器等领域,有力地推动了社会生产力的发展和社会信 息化程度的提高。
微电子技术(即大规模集成电路加工技术)的发展是现代电子技术发展的基础 目前,在硅片单位面积上集成的晶体管数量越来越多,原来需要成千上万只电子元器件组成的 电子设备电路,现在仅用几片或单片超大规模集成电路就可以实现 嵌入式系统是将先进的计算机技术、半导体技术、电子技术与各个行业的具体应用相结合 后的产物,这一特点决定了它是一个技术密集、高度分散、不断创新的知识集成系统嵌入式 系统课程又是一门多学科交叉的课程,涉及微机原理与接口、计算机组成原理、操作系统、编 译技术、网络通信、人机交互、软件测试、软硬件协同设计等诸多知识点,授课内容概括性强 现在是后 PC 时代,作为电子信息技术、计算机专业,掌握嵌入式系统是一门必需的技术嵌 入式系统是 IT 行业中重要的应用领域为了适应新形势的要求,以与时俱进的教学理念进行 教学实践 由于近几年来,众多的嵌入式系统新产品不断问世,国内外各大 IT 公司纷纷投入巨资加 紧研发,后 PC 时代的来临,促进了科技进步和经济发展伴随着通信网络、计算机技术和微 电子技术的高速发展,嵌入式系统己成为了 IT 业的一个焦点同时在数字信息技术和网络技 术高速发展的后 PC 时代,嵌入式系统因其体积小、可靠性高、功能强、灵活方便等许多优点, 已渗透到工业、军事、医疗以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、 加速自动化进程和提高生产率等方面起到了极其重要的推动作用。
另外,嵌入式领域的迅速发展,使得 FFGA 作为主芯片的嵌入式应用方向已被逐渐接受, 在国内高校之中已有部分高校开设了 FPGA 和 SOPC 的课程;但是嵌入式系统又是实践性很强 的一门课程,因此在 FPGA 和 SOPC 的教学中不应死读教材而应该通过大量的实验练习,才能 快速理解基本的理论知识,并提高动手能力 SOPC(System On a Programmable Chip)称为可编程片上系统,它基于可编程逻辑器件 (FPGA 或 CPLD)可重构的片上系统(SOC)SOPC 集成了硬核或软核 CPU、DSP、锁相环(PLL)、 存储器、I/O 接口及可编程逻辑,可以灵活高效地解决 SOC 方案,而且设计周期短,设计成 本低 目前,SOPC 技术已成为备受众多中小企业、研究所和大专院校青睐的设计技术,是 实现嵌入式系统的最高形式SOC 设计技术将是 21 世纪的技术发展趋势,是现在高校和社会 嵌入式培训班必需的内容和亮点目前,SOPC 技术已成为备受众多企业、研究所和大专院校 青睐的设计技术(国内有近 60 几所高效开展了 Vrilog 语言课程和基于 Altera SOPC 的(联合 4 实验室)实验教学) 。
EDA/SOPC 技术是进入二十一世纪以来发展最迅猛的电子设计技术之一,以其设计灵活、 可裁剪、软硬件可编程等特点和优势,倍受设计者关注随着信息技术的发展普及以及市场强 有力的驱动,设计需求日趋多样化,系统设计越来越复杂,开发时间越来越紧迫利用已有 IP 核是快速实现应用系统,缩短产品开发周期的有效途径Altera 的 NiosII 是用户可以随意配置 核构建的 32 位嵌入式处理器 IP 核,采用 Avalon 总线结构通信接口,包含由 FS2(First Silicon Solutions,FS2 公司专门致力于芯片知识产权(IP) 、设计服务和针对 SoC、SOPC、FPGA、ASSP 和 ASIC 器件的编程、测试、调试和嵌入式跟踪片上仪器的开发 工具 )开发的基于 JTAG 的片内设备内核使用 Nios II 处理器的用户可以根据他们的需要来 调整嵌入式系统的特性、性能以及成本,快速使得产品推向市场,扩展产品的生命周期,并且 避免处理器的更新换代 SOPC 的整体解决方案以及 Nios 软核概念的提出,彻底颠覆了传统嵌入式系统的设计理念, 从硬件和软件整体设计上将嵌入式系统的设计进行了极大地推动,使得嵌入式系统的硬件设计 更加简单高效、易于理解,软件设计更加可视化、可移植性更强。
嵌入式学习必须以实验为中 心,因此应该在 FPGA 及 SOPC 的教学中通过大量的实验练习才能快速理解理论知识 本书使用的是 Quartus Ⅱ9.0 free 版精选了几个有代表性的实验,通过练习不仅可以掌握工 具的使用,还可以达到掌握基于 FPGA 及 SOPC 技术的嵌入式系统设计的理论知识的目的首 先基于当前流行的集成开发环境 ADS,使读者渐渐进入角色,同时以实例的形式掌握 C 与汇 编的混合编程编译与调试,在练习的过程中掌握工具的使用、硬件知识及软件编程方法本书 力图在总体结构和内容编排上具有系统性、启发性和实用性,做到由浅入深,循序渐进,易于 入门,便于自学和适于教学在做实验的过程中,领会和掌握基本理论知识,在完成实验后争 取达到理论的升华一本教材同时也应该是一本好的参考书,能够提供许多的资源综合创新 实验则以基本实验为基础与实际应用相结合,由学生自行设计,自由发挥旨在注重培养学生 的动手能力,发现问题和解决问题的能力目的是培养复合型、创新性新世纪人才 “创新是 一个民族进步的灵魂,是一个国家兴旺发达的不竭动力” “微机原理与接口技术” 、 “嵌入式系统” 、 “DSP”及“SOPC”等系列实践教程是围绕甘 肃省教学成果“嵌入式系统课程群建设及创新型人才培养”而展开的。
系列教程得以出版,非 常感谢我的导师马义德教授的引导、帮助和鼓励,以及清华大学出版社郑寅堃老师的帮助和指 导由于技术的迅速发展,编者水平有限,教材中论述疏漏之处必然存在,敬盼读者不吝赐教 作者 2010 年 12 月 5 6 目 录 第一部分第一部分 基本理论基本理论7 第 1 章 绪论.7 1.1嵌入式系统简介7 1.2 FPGA简介.10 1.3 SOPC技术简介16 1.4 硬件描述语言及其程序的基本架构.21 1.5 基于FPGA/SOPC实现嵌入式系统概述.24 第 2 章 ALTERA可编程器件与 QUARTUS II 软件应用.25 2.1 Altera可编程逻辑器件25 2.2 QuartusII简介30 2.3 QuartusII的安装过程与使用31 2.4 QuartusII设计流程32 第 3 章 AVALON总线与 NIOSII 处理器.33 3.1 Avalon总线33 3.2 NiosII嵌入式处理器38 3.3 Nios II体系架构.42 第 4 章 基于 SOPC 的 NIOSII 处理器设计45 4.1 SOPC Builder简介45 4.2 SOPC Builder的组成与功能45 4.3 基于SOPC Builder解决嵌入式处理器外设设计面临的挑战46 4.4 参数模块库的使用.48 4.5基础预备实验示例48 示例1:基于原理图的分频器工程设计.48 示例2:基于VHDL语言的文本工程设计64 示例3:基于状态机的工程设计.71 示例4:基于LPM宏功能模块的工程设计.78 示例5:基于混合模式的工程设计.93 第二部分第二部分 基本实验基本实验103 第 5 章 QUARTUS II 和 SIGNALTAPII 的使用.103 第 6 章 “HELLO_WORD”实验及 SOPC 设计基础119 7 第 7 章 LED 实验154 第 8 章 自定义 IP 核—点阵驱动.173 第 9 章 软硬件结合设计 188 第 10 章 基于实时操作系统UC/OSII 多任务系统 194 第 11 章 工程实践项目-基于 DDS 的正弦信号发生器.205 第 12 章 基于 MCU51IP 软核的嵌入式系统设计218 第三部分第三部分 创新与自主设计创新与自主设计226 第 13 章 自主设计巩固与提高 226 第 14 章 自主设计实例方案 232 参考文献237 附录 1:网络资源及专业网站、FPGA 开发博客信息238 附录 2:实验中常见错误及处理办法.238 后记244 8 第一部分第一部分 基本理论基本理论 本部分为基本理论,包括第 1 章—第 4 章。
介绍了嵌入式系统、FPGA、SOPC 及 SOPC Builder 的基本概念和理论掌握这部分内容,将为后续的实验打好基础 第 1 章 绪论 1.1 嵌入式系统简介 在许多领域中广泛应用的嵌入式计算机系统简称嵌入式系统,它是在更大的电子器件或 设备中嵌入的重复完成特定功能的计算机系统嵌入式系统本质上就是计算机——一种特殊的 专用计算机 在现今的数字系统设计中,以“嵌入式微控制器+FPGA”为核心的体系结构因其强大的 处理能力和灵活的工作方式而被广泛采用嵌入式微控制器的优势在于将微处理器内核与丰富 多样的外围接口设备紧密结合,在提供强大的运算、控制功能的同时,降低了系统成本和功耗, 因而适合作为数字系统的控制核心;FPGA 的优势在于超高速、丰富的逻辑资源以及用户可灵 活配置的逻辑功能,适用于逻辑接口功能多种多样、灵活可变的场合将二者结合形成优势互 补,如有需要,再配以适当的专用芯片(例如音视频编解码器、数字调制解调器等) 这种体 系结构适用于大多数复杂数字系统的设计 1.基本概念 根据 IEEE 定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置” 按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计 算机系统” 。
按照一般定义,嵌入式系统是以具体应用为中心,以计算机技术为基础,采用可裁减的软 硬件,适用于对功能、可靠性、成本、体积和功耗等有严格要求的专用计算机系统 在明确了嵌入式系统定义的基础上,可从以下几方面来理解嵌入式系统 (1)嵌入式系统是面向用户、面向产品、面向应用的,是与应用紧密结合的,它具有很 强的专用性,必须结合实际系统需求进行合理的裁减利用嵌入式系统和具体应用有机地结合 9 在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较 长的生命周期 (2)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用 相结合后的产物这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的 知识集成系统 (3)嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、 成本和体积等要求为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储 器芯片或单片机本身中,而不是存贮于磁盘等载体中 (4)嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中 的程序功能进行修改的,必须有一套开发工具和环境。
