首页>参考读物>计算机科学与技术>综合

零基础学FPGA——基于Altera FPGA器件&Verilog HDL语言
作者 : 葛亚明 彭永丰 薛冰 等编著
出版日期 : 2010-08-06
ISBN : 978-7-111-31120-1
定价 : 48.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 357
开本 : 16
原书名 : FPGA设计从入门到精通(视频实录)
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书以Altera公司的FPGA为背景,系统地介绍了FPGA的基本知识和相关软件使用方法,重点讲述了Verilog HDL语言的高级特性、Quartus II软件的使用技巧和Altera公司的高级软件工具,并给出了SDRAM综合设计实例。本书主要内容包括:FPGA的开发流程和开发工具,Altera FPGA的硬件结构,Verilog HDL的基本知识,设计综合、优化和验证,基于Altera FPGA开发流程,基于Quartus II时序约束与时序分析,基于ModelSim的仿真,Verilog HDL设计进阶,基于Quartus II的设计优化,Quartus II的常用辅助设计工具,Altera其他高级工具和SRAM控制器设计等。
全书重点突出,层次分明,注重知识的系统性、针对性和先进性;注重理论与实践联系,培养工程应用能力。
本书既可作为高等院校电工、电子、自控等专业学生的专业教材,也可作为相关领域工程技术人员、嵌入式应用系统开发人员以及电子产品设计爱好者的参考书。

图书特色

你想从零开始,系统学习Altera FPGA 可编程器件的原理与开发应用吗?你想快速上手,真正掌握Verilog HDL硬件描述语言及QuartusⅡ软件开发FPGA 系统吗?你想举一反三,稍事修改就可以移植到自己的系统中吗?
本书将给予你学习、实践与移植的全部答案!
本书由从事FPGA开发与应用的一线科研与教学人员联合编著。全书基于Altera FPGA器件&Verilog HDL语言,系统论述了FPGA的开发流程、Altera FPGA 的硬件结构、Verilog HDL的应用编程、设计综合语优化验证、基于Quartus Ⅱ的开发流程、时序约束与分析、设计优化、辅助工具、ModelSim仿真及其他高级工具。同时,全书给出了17个功能实例及1个工程案例。
为了便于读者迅速动手实践,本书配有精心制作的多媒体视频光盘,涵盖了书中的实例文件、开发过程录像文件及常用学习交流网址等。
涵盖内容
n FPGA开发流程和常用开发工具
n FPGA硬件结构
n Verilog HDL语言的开发流程
n Verilog HDL逻辑综合、优化和功能验证
n 使用Quartus II进行 FPGA 设计
n 时序约束与时序分析
n 使用ModelSim对设计进行仿真
n Verilog设计中的一些高级特性
n Quartus的设计优化方法
n QuartusII的常用辅助工具
n Altera器件的特性
n Altera的高级工具
n SDRAM控制器设计
综合实例
n 8位数据锁存器设计
n 多路选择器的设计
n 二进制到BCD码转换
n 二进制到格雷码转换
n 二进制到七段码转换
n 数字跑表设计
n 移位寄存器设计
n 移位寄存器的测试
n 阶乘模型
n 三线-八线译码器电路设计
n 分频电路的图形界面仿真
n 同步、异步FIFO设计
n 计数器设计
n 异步接口转换设计
n 状态机设计
n NIOS II系统开发

图书前言

FPGA在近几年的发展中凸显出功能灵活、应用广泛的特点,不论是在简单的计数控制中,还是在复杂的算法设计中,都能满足各种需求。FPGA设计倾向于实际应用,属于数字电路设计领域,在经过前期的模块代码设计后,通过特定的软件工具,将逻辑代码转换为映射到FPGA芯片的实际电路,完成代码到电路的转换。在目前越来越激烈的IC竞争市场中,FPGA能迅速满足客户的定制需求,功能升级便利,是目前研究应用的热点。
  为了使广大读者既能了解FPGA基础知识,又能将FPGA应用于实际,本书基于Altera公司的器件和Verilog HDL语言,结合实例对FPGA设计流程进行了深入浅出的论述。本书内容翔实、实践性强。在学习本书后,相信读者能够掌握FPGA开发的基本技术,并能够独立进行FPGA项目开发。
如何学习FPGA设计
  学习一门技术往往从它的编程语言开始,FPGA的编程语言有两种:VHDL和Verilog HDL。本书以Verilog HDL为例进行说明,是因为它易于学习,与C语言类似。如果读者具有C语言的基础,就不需要花很多时间便能迅速掌握Verilog HDL。其次,精通了一家公司的FPGA产品,对其他几家公司的产品熟悉一下就可以了,所以本书选择应用广泛的Altera FPGA器件。再者,读者应熟悉FPGA设计的软件工具。最后,必须通过动手实践,将自己编写的程序在FPGA器件中运行起来。
本书特点
  本书主要有以下特点。
  1.循序渐进,由浅入深
  为了方便读者学习,本书在介绍FPGA的发展历史及其特点、开发流程和开发工具等基础上,针对Altera FPGA器件和Verilog HDL进行讲解,在后续章节中结合具体的实例,逐步介绍了Quartus II和ModelSim等常用EDA(电子设计自动化)工具的使用、FPGA设计的基本原则、技巧、IP核,并通过实例对FPGA在接口设计领域的典型应用进行阐述。
  2.技术全面,内容充实
  本书内容在保证实用的前提下,详细介绍了FPGA开发各个方面的知识。同时,针对有一定开发基础的读者,以Altera相关软件为例,讲解了一些Altera软件在时序分析及约束方面的知识。针对高级用户,讲解了Altera器件的一些高级特性及一些专用IP核的使用,并针对Altera软件中的高级工具作了一定的讲述。最后,介绍了目前主流的FPGA开发辅助工具,具有较强的实用性。读者可以根据书中的具体步骤实现所给实例,将理论与实践相结合,更利于学习。
  3.精选实例,注重实战
  书中的每个知识点都有相应的实例代码,并对关键的代码部分进行了注释说明。本书配有大量实例,读者通过跟踪练习可加深对FPGA知识的掌握和理解,最终具备FPGA系统设计和开发的能力。
主要内容
  本书共13章,各章的主要内容如下。
  第1章:介绍FPGA的发展概况、开发流程和常用开发工具,通过示例讲解了FPGA的开发方法,以及FPGA常用开发工具的使用方法。读者如果是一个FPGA新手,本章将把读者带入FPGA世界。
  第2章:介绍Altera公司FPGA的硬件结构。Altera的主流FPGA分为两大类:一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Cyclone;还有一种侧重于高性能应用,容量大,性能可以满足各类高端应用,如Stratix。通过本章的学习,读者可以充分理解Altera公司FPGA的结构特点和工作原理,最大限度地发挥它们在系统中的作用,使设计达到最优化。
  第3章:介绍Verilog HDL语言的基本知识、Verilog HDL语言的开发流程和使用Verilog HDL应具备的一些基础知识,并通过示例和实例讲解了它们的使用方法。
  第4章:介绍Verilog HDL逻辑综合、语言优化和逻辑综合后的功能验证问题。逻辑综合就是从Verilog HDL的各种基本元素到硬件中所使用的各种基本元件的映射过程。为了减少系统的硬件资源开销,并获得最高的系统工作效率,则必须对Verilog HDL代码进行优化。为了验证设计的网表是否实现了规格说明书所规定的功能,则必须进行验证。
  第5章:介绍Quartus II软件的功能、Altera Quartus II设计软件为可编程片上系统(SOPC)提供的设计环境,以及如何帮助设计者进行FPGA设计,最后介绍了IP核的基本概念和分类,以及Altera IP核的使用流程和OpenCore安装。
  第6章:介绍时序约束与时序分析的基本概念和分类、静态时序分析报告和其他场景时序分析方法,重点介绍了全局约束和个别时序约束的种类与设置方法、独立时钟和衍生时钟的定义与关系,以及最小化时序分析。
  第7章:从入门的角度对ModelSim软件进行总体描述。介绍了ModelSim软件的安装过程和软件图形框架;通过分频电路详细描述了使用图形界面、使用交互式命令行方式和使用Testbench对设计进行仿真的过程以及在ModelSim软件中建立Altera仿真库的方法。
  第8章:介绍了Verilog设计中的一些高级特性。叙述了在系统设计中常用的FIFO、时钟、复位设计以及编码风格,通过本章的学习可以深化读者对FPGA编程思想与技巧的了解。
  第9章:基于Quartus软件介绍了一些基本的设计优化方法,并介绍Quartus的常用工具以及基本的设计分析方法。按照设计人员在整个流程中遇到以及需要解决的问题依次介绍了时钟设计及分析、接口分析、综合报告最差时序分析及优化等。
  第10章:介绍Quartus II提供的常用辅助工具。其中,引脚验证工具的主要功能是辅助设计人员进行引脚分配等检查;代码辅助工具主要是帮助设计人员进行比较直观的检查,使用代码相关工具检查软件综合后的模块关系是否与预想一致;SignalTap是上板调试中常用的一种辅助调试工具,通过这一工具能便利地定位上板验证中出现的问题;通过Chip Editor(芯片编辑器)可以进行一些最底层的修正,降低返工率。
  第11章:介绍Altera器件的特性。主要包括时钟的管理、片内存储资源的使用及优化、片内提供的主要通信IP核的使用及相关内容、片内提供的常用存储控制器的实现结构框图,最后介绍了常用高速接口的核的生成以及相关配置。
  第12章:介绍Altera软件提供的其他高级工具,主要包括HardCopy、基于Nios II处理器的开发、DSP Builder工具以及SOPC Builder相关介绍。这些工具涉及了Altera提供的高级特性,如结构化ASIC的开发、嵌入式开发等。
  第13章:通过一个简单的SDRAM控制器设计,引导读者进行完整的、合理的工程开发,通过实战,完全掌握FPGA的开发流程与技巧。
光盘内容
  课后习题答案
  书中全部实例文件
  开发过程录像文件
  常用芯片及元器件
  常用学习交流网址
读者对象
  FPGA初学者
  FPGA开发人员
  硬件电路工程师、IC设计与验证工程师及嵌入式工程师
  高等院校电子科学与技术、微电子学、集成电路设计与集成系统、电气工程及其自动化、自动化等相关专业师生
  FPGA技术发展迅速,应用领域日趋广泛。由于掌握的资料和水平有限,加之时间仓促,书中难免存在错误和不妥之处,恳请读者批评指正。
  本书主要由葛亚明、彭永丰、薛冰编著,李军老师详细审阅了本书的全部底稿并提出了许多宝贵意见。此外,其他参与编著和资料整理的人员还有宋一兵、管殿柱、张兰勇、张玉廷、李高云、王五桂、常绪成、杨震、刘业明、程垠钟、范国良、顾铭明、贾云璐、李莉红、李秀鹏、刘杨、任冬、宋颖慧等,在此一并表示感谢!
  感谢您选择了本书,希望我们的努力对您的工作和学习有所帮助,也希望您把对本书的意见和建议告诉我们。
  作者联系方式:gdz_zero@126.com
  编辑联系方式:sdl@hzbook.com

上架指导

电子与电气工程

作者简介

葛亚明 彭永丰 薛冰 等编著:暂无简介

图书目录

前言
第1章 FPGA的开发流程和开发工具1
  1.1 FPGA概述1
   1.1.1 FPGA的发展1
   1.1.2 FPGA的生产厂家及其产品2
  1.2 FPGA的开发流程4
   1.2.1 FPGA的设计方法4
   1.2.2 典型FPGA的开发流程5
   1.2.3 基于FPGA的SOC设计方法9
   1.2.4 基于IP核的设计方法9
  1.3 FPGA的常用开发工具11
   1.3.1 代码输入工具12
   1.3.2 综合工具13
   1.3.3 仿真工具13
   1.3.4 实现与优化工具14
   1.3.5 EDA工具14
  1.4 实践拓展15
  1.5 思考与练习16
第2章 Altera FPGA的硬件结构17
  2.1 主流高端FPGA——Stratix和Stratix Ⅱ17
   2.1.1 Stratix器件17
   2.1.2 Stratix Ⅱ器件27
  2.2 Stratix IV FPGA器件29
   2.2.1 Stratix Ⅳ FPGA的核心架构30
   2.2.2 Stratix Ⅳ FPGA TriMatrix存储器31
  2.3 主流低端FPGA——Cyclone和Cyclone Ⅱ32
   2.3.1 Cyclone器件32
   2.3.2 Cyclone Ⅱ器件36
  2.4 Cyclone Ⅳ器件37
  2.5 实例:FPGA最小系统设计38
  2.6 实践拓展46
  2.7 思考与练习47
第3章 Verilog HDL的基本知识48
  3.1 Verilog HDL简介48
  3.2 Verilog HDL的开发流程49
  3.3 Verilog HDL的基本概念50
   3.3.1 程序格式50
   3.3.2 注释、间隔符和标识符51
   3.3.3 数值和字符串53
   3.3.4 数据类型55
   3.3.5 编译指令56
   3.3.6 系统任务和函数结构59
   3.3.7 运算符和表达式63
  3.4 行为级描述66
   3.4.1 过程结构66
   3.4.2 语句块67
   3.4.3 时序控制68
   3.4.4 赋值语句71
   3.4.5 分支语句75
   3.4.6 循环控制语句78
   3.4.7 任务与函数80
  3.5 结构级描述81
   3.5.1 模块级建模81
   3.5.2 门级建模82
  3.6 实例:交通灯控制器设计83
  3.7 实践拓展86
  3.8 思考与练习87
第4章 设计综合、优化和验证88
  4.1 Verilog HDL语言综合88
   4.1.1 综合的基本概念88
   4.1.2 可综合的Verilog HDL结构89
   4.1.3 可综合的Verilog HDL操作符90
   4.1.4 通常忽略的Verilog HDL结构90
   4.1.5 不可综合的Verilog HDL结构90
  4.2 Verilog HDL语言设计优化91
   4.2.1 公因子和公共子表达式91
   4.2.2 循环语句优化91
   4.2.3 触发器和锁存器的优化92
   4.2.4 算术表达式优化92
   4.2.5 运算符优化93
   4.2.6 其他优化方式93
  4.3 实例:阶乘模型95
  4.4 功能验证96
   4.4.1 验证方法学96
   4.4.2 搭建一个简单TestBench97
  4.5 实例:移位寄存器的测试程序99
  4.6 实践拓展100
  4.7 思考与练习102
第5章 基于Altera FPGA的开发流程103
  5.1 Quartus Ⅱ软件功能与特点103
  5.2 QuartusⅡ软件安装与授权105
   5.2.1 Quartus Ⅱ软件的安装过程105
   5.2.2 Quartus Ⅱ软件的授权文件108
   5.2.3 在Quartus Ⅱ软件中指定授权文件109
  5.3 Quartus Ⅱ软件的用户界面110
  5.4 Quartus Ⅱ软件开发流程113
   5.4.1 图形用户界面设计流程113
   5.4.2 EDA工具设计流程115
   5.4.3 命令行设计流程117
  5.5 设计输入118
   5.5.1 建立工程119
   5.5.2 建立设计文件120
   5.5.3 指定初始设计的约束条件121
  5.6 设计综合122
   5.6.1 使用Quartus Ⅱ的集成综合123
   5.6.2 使用其他EDA综合工具123
  5.7 布局布线124
   5.7.1 设置布局布线参数125
   5.7.2 物理综合优化参数设置127
   5.7.3 分析适配结果129
   5.7.4 优化适配131
  5.8 仿真验证135
   5.8.1 使用EDA工具进行仿真设计135
   5.8.2 使用Quartus Ⅱ仿真器进行仿真设计138
  5.9 编程与配置139
  5.10 实例:3线-8线译码器电路设计142
  5.11 IP核149
   5.11.1 IP核的基本概念与分类…149
   5.11.2 Altera公司的IP核及其使用流程150
   5.11.3 OpenCore的安装151
  5.12 实践拓展151
  5.13 思考与练习154
第6章 基于Quartus Ⅱ的时序约束与分析155
  6.1 时序约束与时序分析的基本概念155
   6.1.1 周期和最高频率155
   6.1.2 时钟建立时间和保持时间156
   6.1.3 时钟到输出延时和引脚到引脚延时157
   6.1.4 时钟偏斜157
  6.2 时序约束的设置158
   6.2.1 设置全局时序约束158
   6.2.2 设置个别时序约束162
  6.3 静态时序分析报告166
  6.4 实例:定位到Floorplan168
  6.5 实例:定位到工艺映射查看器169
  6.6 其他场景时序分析方法171
   6.6.1 多时钟域场景时序分析171
   6.6.2 多周期约束171
   6.6.3 异步时钟域时序分析173
  6.7 最小化时序分析173
  6.8 实践拓展174
  6.9 思考与练习175
第7章 基于ModelSim的仿真176
  7.1 ModelSim简介176
  7.2 ModelSim仿真软件的安装177
  7.3 ModelSim图形用户界面180
  7.4 ModelSim的基本仿真方法180
  7.5 实例:分频电路的图形界面仿真180
  7.6 实例:分频电路的命令行方式仿真189
  7.7 实例:分频电路的TestBench仿真191
  7.8 ModelSim仿真工具高级操作195
   7.8.1 force命令195
   7.8.2 DO文件195
   7.8.3 modelsim.ini文件196
   7.8.4 SDF文件196
  7.9 在ModelSim SE中创建Altera的仿真库196
  7.10 实践拓展198
  7.11 思考与练习201
第8章 设计技巧及风格202
  8.1 Verilog HDL设计进阶202
   8.1.1 状态机设计202
   8.1.2 速度与面积原则206
   8.1.3 流水线设计206
   8.1.4 异步时钟域设计208
   8.1.5 乒乓操作210
  8.2 实例:串并转换211
  8.3 层次化的设计214
  8.4 FIFO设计215
  8.5 实例:同步FIFO设计216
  8.6 实例:异步FIFO设计219
  8.7 时钟设计223
   8.7.1 数字锁相环介绍223
   8.7.2 全局时钟网络应用设计224
  8.8 复位设计225
   8.8.1 同步复位225
   8.8.2 异步复位226
  8.9 编码风格226
   8.9.1 coding style的意义226
   8.9.2 可重用设计227
   8.9.3 组合逻辑设计228
   8.9.4 同步逻辑设计229
   8.9.5 信号敏感列表231
   8.9.6 状态机设计的一般原则231
   8.9.7 三态信号的设计232
  8.10 实践拓展233
  8.11 思考与练习233
第9章 基于Quartus Ⅱ的设计优化234
  9.1 设计分析234
   9.1.1 时钟资源分析234
   9.1.2 I/O接口分析235
   9.1.3 最差路径分析235
  9.2 设计优化基础236
   9.2.1 设计优化基本流程237
   9.2.2 首次编译的约束设置237
   9.2.3 查看编译报告239
  9.3 资源优化241
  9.4 时钟频率优化244
   9.4.1 设计优化244
   9.4.2 布局布线工具设置245
   9.4.3 网表优化和物理综合246
   9.4.4 使用LogicLock优化247
  9.5 增量编译249
  9.6 实例计数器设计250
  9.7 实践拓展254
  9.8 思考与练习254
第10章 Quartus Ⅱ的常用辅助设计工具255
  10.1 引脚验证255
   10.1.1 验证流程255
   10.1.2 验证结果分析256
  10.2 代码辅助工具258
   10.2.1 RTL用户界面258
   10.2.2 原理图选择260
   10.2.3 原理图关联262
   10.2.4 使用RTL Viewer辅助定位问题264
  10.3 SignalProbe及SignalTap Ⅱ逻辑分析器264
   10.3.1 SignalProbe264
   10.3.2 SignalTap Ⅱ 逻辑分析器265
  10.4 Chip Editor底层编辑器268
   10.4.1 Chip Editor功能269
   10.4.2 Chip Editor视图269
   10.4.3 Chip Editor编辑使用方法271
   10.4.4 Chip Editor应用273
  10.5 实例:状态机设计273
  10.6 实践拓展281
  10.7 思考与练习282
第11章 Altera器件的其他特性283
  11.1 时钟管理283
   11.1.1 Altera器件的时钟资源283
   11.1.2 基于Altera器件的时钟分配及管理284
  11.2 片内存储资源287
   11.2.1 Altera器件的主要存储资源287
   11.2.2 Altera主要存储资源的使用288
   11.2.3 Altera器件存储资源的优化293
  11.3 常用通信IP CORE293
   11.3.1 主要通信用IP CORE293
   11.3.2 FFT IP CORE294
   11.3.3 内部DSP使用296
  11.4 常用存储控制器296
   11.4.1 QDR SRAM控制器296
   11.4.2 DDR控制器299
  11.5 高速接口300
   11.5.1 SPI-4接口300
   11.5.2 Serdes接口302
  11.6 实例:异步接口转换设计302
  11.7 实践拓展 311
  11.8 思考与练习312
第12章 Altera其他高级工具313
  12.1 HardCopy流程313
  12.2 基于Nios II处理器的嵌入式系统设计314
   12.2.1 Nios CPU314
   12.2.2 Avalon总线315
   12.2.3 软件开发流程与方法315
   12.2.4 外设及中断316
  12.3 DSP Builder工具317
   12.3.1 DSP Builder软件安装与设置317
   12.3.2 DSP Builder设计流程318
  12.4 SOPC Builder321
   12.4.1 SOPC技术321
   12.4.2 SOPC Builder使用321
   12.4.3 SOPC设计流程323
  12.5 实例:基于Nios系统开发324
  12.6 实践拓展332
  12.7 思考与练习332
第13章 SDRAM控制器设计333
  13.1 规格说明333
   13.1.1 SDRAM芯片特性333
   13.1.2 设计要求334
  13.2 控制器分析及系统架构335
   13.2.1 控制器分析335
   13.2.2 控制器实现架构设计337
  13.3 程序设计338
  13.4 验证环境搭建342
  13.5 系统验证343
  13.6 综合布线344
  13.7 实践拓展345
  13.8 思考与练习346
参考文献347

教学资源推荐
作者: 王柯柯 主编 崔英志 黄丽丰 崔贯勋 刘恒洋 编著
作者: (美)Roger S. Pressman  David Lowe 著
作者: (美)W. Bruce Croft Donald Metzler Trevor Strohman著
参考读物推荐
作者: [芬兰] 卡伦?辛格(Karan Singh)著
作者: 目丁兔 编著
作者: [希]安德烈亚斯·M. 安东波罗斯(Andreas M. Antonopoulos) [英] 加文·伍德(Gavin Wood) 著