零基础学FPGA
2010-9
机械工业出版社
葛亚明 等 著
无
《零基础学FPGA:基于Altera FPGA器件&Verilog HDL语言》以Altera公司的FPGA为样本,系统地介绍了FPGA的基本知识和相关软件的使用方法,重点讲述了VerilogHDL语言的编程特性、QuartusⅡ软件的使用技巧和Altera公司的高级软件工具,并给出了SDRAM综合设计实例。主要内容包括:FPGA的开发流程和开发工具,AlteraFPGA的硬件结构,VerilogHDL的基本知识,设计综合、优化和验证,基于AlteraFPGA的开发流程,基于QuartusII的时序约束与分析,基于ModelSim的仿真,VerilogHDL设计进阶,基于QuartusⅡ的设计优化,QuartusII的常用辅助设计工具,Altera其他高级工具和SRAM控制器设计等。 全书重点突出,层次分明,注重知识的系统性、针对性和先进性;注重理论与实践联系,培养工程应用能力。另外,《零基础学FPGA:基于Altera FPGA器件&Verilog HDL语言》配套光盘给出了书中的实例文件、开发过程的操作录像文件、常用元器件及芯片等丰富的拓展资源,极大地方便了读者自学,动手实践。 《零基础学FPGA:基于Altera FPGA器件&Verilog HDL语言》既可作为高等院校电子科学与技术、微电子学、集成电路设计与集成系统、电气工程及其自动化、自动化等专业的教材,也可作为相关领域工程技术人员、IC设计及嵌入式系统开发人员的参考书。
前言第1章 FPGA的开发流程和开发工具1.1 FPGA概述1.1.1 FPGA的发展1.1.2 FPGA的生产厂家及其产品1.2 FPGA的开发流程1.2.1 FPGA的设计方法1.2.2 典型FPGA的开发流程1.2.3 基于FPGA的SOC设计方法1.2.4 基于IP核的设计方法1.3 FPGA的常用开发工具1.3.1 代码输入工具1.3.2 综合工具1.3.3 仿真工具1.3.4 实现与优化工具1.3.5 EDA工具1.4 实践拓展1.5 思考与练习第2章 AIteraFPGA的硬件结构2.1 主流高端FPGA——Stratix和stratixⅡ2.1.1 Stratix器件2.1.2 StratixⅡ器件2.2 StratixIVFPGA器件2.2.1 StratixⅣFPGA的核心架构2.2.2 StratixⅣFPGATriMatrix存储器2.3 主流低端FPGA——cyclone和CvcloneⅡ2.3.1 Cyclone器件2.3.2 CycloneⅡ器件2.4 CycloneⅣ器件2.5 实例:FPGA最小系统设计2.6 实践拓展2.7 思考与练习第3章 Verlog HDL的基本知识3.1 Verilog HDL简介3.2 Verilog HDL的开发流程3.3 Verilog HDL的基本概念3.3.1 程序格式3.3.2 注释、间隔符和标识符3.3.3 数值和字符串3.3.4 数据类型3.3.5 编译指令3.3.6 系统任务和函数结构3.3.7 运算符和表达式3.4 行为级描述3.4.1 过程结构3.4.2 语句块3.4.3 时序控制3.4.4 赋值语句3.4.5 分支语句3.4.6 循环控制语句3.4.7 任务与函数3.5 结构级描述3.5.1 模块级建模3.5.2 门级建模3.6 实例:交通灯控制器设计3.7 实践拓展3.8 思考与练习第4章 设计综合.优化和验证4.1 VerilogHDL语言综合4.1.1 综合的基本概念4.1.2 可综合的VerilogHDL结构4.1.3 可综合的VeIilogHDL操作符4.1.4 通常忽略的VerilogHDL结构4.1.5 不可综合的verilogHDL结构4.2 VemogHDL语言设计优化4.2.1 公因子和公共子表达式4.2.2 循环语句优化4.2.3 触发器和锁存器的优化4.2.4 算术表达式优化4.2.5 运算符优化4.2.6 其他优化方式4.3 实例:阶乘模型4.4 功能验证4.4.1 验证方法学4.4.2 搭建一个简单TestBench4.5 实例:移位寄存器的测试程序4.6 实践拓展4.7 思考与练习第5章基于AlteraFPGA的开发流程5.1 QuaItusⅡ软件功能与特点5.2 QuanusⅡ软件安装与授权5.2.1 QuaJtusⅡ软件的安装过程5.2.2 QuanusⅡ软件的授权文件5.2.3 在QualtusⅡ软件中指定授权文件5.3 QuartusⅡ软件的用户界面5.4 QuanusⅡ软件开发流程5.4.1 图形用户界面设计流程5.4.2 EDA工具设计流程5.4.3 命令行设计流程5.5 设计输入5.5.1 建立工程5.5.2 建立设计文件5.5.3 指定初始设计的约束条件5.6 设计综合5.6.1 使用QuanusⅡ的集成综合5.6.2 使用其他EDA综合工具5..布局布线5.7.1 设置布局布线参数5.7.2 物理综合优化参数设置5.7.3 分析适配结果5.7.4 优化适配5.8 仿真验证5.8.1 使用EDA工具进行仿真设计5.8.2 使用QuanusⅡ仿真器进行仿真设计5.9 编程与配置5.10 实例:3线-8线译码器电路设计5.11IP核5.11.IP核的基本概念与分类5.11.2 Ahera公司的IP核及其使用流程5.11.3 Open Core的安装5.12 实践拓展5.13 思考与练习第6章 基于QuartusIl的时序约束与分析6.1 时序约束与时序分析的基本概念6.1.1 周期和最高频率6.1.2 时钟建立时间和保持时间6.1.3 时钟到输出延时和引脚到引脚延时6.1.4 时钟偏斜6.2 时序约束的设置6.2.1 设置全局时序约束6.2.2 设置个别时序约束6.3 静态时序分析报告6.4 实例:定位到Floorplan6.5 实例:定位到工艺映射查看器6.6 其他场景时序分析方法6.6.1 多时钟域场景时序分析6.6.2 多周期约束6.6.3 异步时钟域时序分析6.7 最小化时序分析6.8 实践拓展6.9 思考与练习第7章 基于ModelSim的仿真7.1 ModelSim简介7.2 ModelSim仿真软件的安装7.3 ModelSim图形用户界面7.4 ModelSim的基本仿真方法7.5 实例:分频电路的图形界面仿真7.6 实例:分频电路的命令行方式仿真7.7 实例:分频电路的TestBench仿真7.8 ModelSim仿真工具高级操作7.8.1 force命令7.8.2 DO文件7.8.3 modelsim.ini文件7.8.4 SDF文件7.9 在ModelSimSE中创建Altera的仿真库7.10实践拓展7.11思考与练习第8章设计技巧及风格8.1 VerilogHDL设计进阶8.1.1 状态机设计8.1.2 速度与面积原则8.1.3 流水线设计8.1.4 异步时钟域设计8.1.5 乒乓操作8.2 实例:串并转换8.3 层次化的设计8.4 FIFO设计8.5 实例:同步FIFO设计8.6 实例:异步FIFO设计8.7 时钟设计8.7.1 数字锁相环介绍8.7.2 全局时钟网络应用设计8.8 复位设计8.8.1 同步复位8.8.2 异步复位8.9 编码风格8.9.1 coding8tyle的意义8.9.2 可重用设计8.9.3 组合逻辑设计8.9.4 同步逻辑设计8.9.5 信号敏感列表8.9.6 状态机设计的一般原则8.9.7 三态信号的设计8.10实践拓展8.1l思考与练习第9章基于QUanuslI的设计优化9.1 设计分析9.1.1 时钟资源分析9.1.2 I/O接口分析9.1.3 最差路径分析9.2 设计优化基础9.2.1 设计优化基本流程9.2.2 首次编译的约束设置9.2.3 查看编译报告9.3 资源优化9.4 时钟频率优化_9.4.1 设计优化9.4.2 布局布线工具设置9.4.3 网表优化和物理综合9.4.4 使用LDgicLock优化9.5 增量编译9.6 实例计数器设计9.7 实践拓展9.8 思考与练习第10章 QuartusII的常用辅助设计工具10.1 引脚验证10.1.1 验证流程10.1.2 验证结果分析10.2 代码辅助工具10.2.1 RTI_.用户界面10.2.2 原理图选择10.2.3 原理图关联10.2.4 使用RTLviewer辅助定位问题10.3 SimalProbe及signalTapⅡ逻辑分析器10.3.1 signalProbe10.3.2 simalTapⅡ逻辑分析器10.4 chipEditor底层编辑器10.4.1 ChipEditor功能10.4.2 ChipEditor视图10.4.3 ChipEditor编辑使用方法10.4.4 ChipEditor应用10.5 实例:状态机设计10.6 实践拓展10.7 思考与练习第11章 AItea器件的其他特性11.1 时钟管理11.1.1 ALtera器件的时钟资源11.1.2 基于Altera器件的时钟分配及管理11.2 片内存储资源11.2.1 Altera器件的主要存储资源11.2.2 Altera主要存储资源的使用11.2.3 Altera器件存储资源的优化……第12章 Altera其他高级工具第13章 SDRAM控制器设计参考文献
为了方便读者学习,本书在介绍:FPGA的发展历史及其特点、开发流程和开发工具等基础上,针对Ahera FPGA器件和Verilog HDL进行讲解,在后续章节中结合具体的实例,逐步介绍了Quartus Ⅱ和ModelSim等常用EDA(电子设计自动化)工具的使用、FPGA设计的基本原则、技巧、IP核,并通过实例对FPGA在接口设计领域的典型应用进行阐述。 本书内容在保证实用的前提下,详细介绍了FPGA开发各个方面的知识。同时,针对有一定开发基础的读者,以Ahera相关软件为例,讲解了一些Altera软件在时序分析及约束方面的知识。针对高级用户,讲解了Ahera器件的一些高级特性及一些专用IP核的使用,并针对Altera软件中的高级工具作了一定的讲述。最后,介绍了目前主流的FPGA开发辅助工具,具有较强的实用性。读者可以根据书中的具体步骤实现所给实例,将理论与实践相结合,更利于学习。
无