标题：Altera FPGA工程师成长手册
基本信息
作　者：陈欣波　等编著
出 版 社：清华大学出版社
出版时间：2012-6-1[1]
版　次：1
页　数：394
印刷时间：2012-6-1
开　本：16开
内容简介
《altera fpga工程师成长手册》以altera公司的fpga为例，由浅入深，全面、系统地详细讲述了基于可编程逻辑技术的设计方法。本书讲解时穿插了大量典型实例，便于读者理解和演练。另外，为了帮助读者更好地学习，本书提供了配套语音教学视频，这些视频和本书源代码一起收录于本书配书光盘中。
《altera fpga工程师成长手册》涉及面广，从基本的软件使用到一般电路设计，再到nios Ⅱ软核处理器的设计，几乎涉及fpga开发设计的所有知识。具体内容包括：eda开发概述、altera quartus ii开发流程、altera quartus ii开发向导、vhdl语言、基本逻辑电路设计、宏模块、lpm函数应用、基于fpga的dsp开发设计、sopc系统构架、soc系统硬件开发、sopc系统软件开发、nios ii常用外设、logiclock优化技术等。
《altera fpga工程师成长手册》适合学习fpga开发设计的各个院校的本科学生阅读，也适合各类使用fpga进行开发的初级工程技术人员使用。
目录
第1篇 fpga开发基础
第1章 eda技术概述
1.1 eda技术及发展
1.1.1 何谓eda技术
1.1.2 基于大规模可编程逻辑器件的数字系统设计
1.2 可编程逻辑器件的发展简介
1.2.1 逻辑设计基本流程
1.2.2 可编程逻辑器件pal
1.2.3 从pal到pld到复杂可编程逻辑器件cpld
1.2.4 从cpld到fpga的产生
1.2.5 在系统编程问题的解决
1.3 fpga系统结构和资源
1.3.1 可编程逻辑单元（le）
1.3.2 可编程布线
1.3.3 可编程i/o
1.3.4 嵌入式存储器ram
1.3.5 嵌入式乘法器
1.3.6 时钟
1.3.7 锁相环 　
1.3.8 fpga与cpld的对比
1.4 fpga的设计流程
1.5 altera公司fpga低成本器件—sycloneⅡ
1.5.1 主要特性
1.5.2 基于数字信号处理（dsp）应用
1.5.3 专用外部存储器接口
1.5.4 嵌入式锁相环
1.5.5 单端i/o特性
1.5.6 差分i/o特性
1.5.7 自动crc检测
1.5.8 支持nios ii嵌入式处理器
1.6 altera公司fpga高成本器件—stratix Ⅲ器件
1.6.1 主要特性
1.6.2 体系架构
1.6.3 trimatrix嵌入式存储器
1.6.4 dsp块
1.6.5 时钟网络和锁相环
1.6.6 高速i/o信号和接口
1.6.7 设计安全性
1.7 小结
第2章 altera quartus ii软件开发流程
2.1 quartus ii综述
2.1.1 quartus ii软件的特点
2.1.2 quartus ii设计软件的流程和集成的工具
2.1.3 quartus ii软件的用户界面
2.2 设计输入
2.2.1 建立工程
2.2.2 输入方式
2.3 约束输入
2.3.1 使用分配编辑器
2.3.2 使用引脚规划器
2.3.3 使用settings对话框
2.4 综合
2.4.1 使用quartus ii软件集成的综合工具
2.4.2 使用其他 eda 综合工具
2.4.3 使用rtl查看器和状态机查看器分析综合结果
2.5 布局布线
2.5.1 设置fitter选项
2.5.2 设置物理综合优化选项
2.5.3 通过反标保留分配
2.6 仿真
2.6.1 quartus ii仿真器设置
2.6.2 建立用于仿真的波形文件
2.7 编程与配置
2.7.1 建立编程文件
2.7.2 器件编程和配置
2.8 小结
第3章 altera quartus ii软件开发向导
3.1 模块编辑及设计流程
3.1.1 原理图输入文件的建立
3.1.2 图表模块输入
3.1.3 原理图设计流程
3.1.4 波形仿真
3.1.5 引脚分配
3.1.6 下载验证
3.1.7 quartus ii的几个常用功能。
3.2 文本编辑及设计流程
3.2.1 建立文本文件
3.2.2 文本设计流程——建立新工程
3.2.3 文本设计流程——编译工程
3.2.4 文本设计流程——建立矢量波形文件
3.2.5 文本设计流程——仿真波形
3.2.6文本设计流程——引脚分配及下载验证
3.3 混合设计
3.3.1 建立计数器文件
3.3.2 建立七段译码显示电路文件
3.3.2 设计流程
3.4 使用signal tap ii的实时测试
3.4.1 打开signal tap ii的编辑窗口
3.4.2 调入待测信号
3.4.3 设置signal tap ii参数
3.4.4 文件存盘
3.4.5 编译选择
3.4.6 启动signal tap ii进行采样分析
3.4.7 signal tap ii的其他设置和控制方法
3.5 小结
第4章 vhdl语言基础
4.1 vhdl语言基本结构
4.1.1 实体
4.1.2 结构体
4.1.3 配置
4.1.4 库
4.2 vhdl语言要素
4.2.1 vhdl文法规则
4.2.2 vhdl数据对象
4.2.3 数据类型
4.2.4 操作符
4.3 顺序语句
4.3.1 赋值语句
4.3.2 if语句
4.3.3 case语句
4.3.4 loop语句
4.3.5 跳出循环的语句
4.3.6 return语句
4.4.7 null语句
4.4 并行语句
4.4.1 并行信号赋值语句
4.4.2 进程(process)语句
4.5 子程序
4.5.1 过程
4.5.2 函数
4.6 vhdl语言描述风格
4.6.1 行为描述
4.6.2 数据流描述
4.6.3 结构化描述
4.7 小结
第5章 基本逻辑电路设计
5.1 组合逻辑电路设计
5.1.1 门电路设计
5.1.2 三态门及总线缓冲器设计
5.1.3 编码器、译码器设计
5.1.4 多路数据选择器和多路数据分配器设计
5.2 时序逻辑电路设计
5.2.1 触发器设计
5.2.2 寄存器设计
5.2.2 计数器设计
5.3 有限状态机电路设计
5.3.1 有限状态机概述
5.3.2 有限状态机的算法描述
5.3.3 有限状态机的vhdl描述模式
5.4 设计实例：交通信号灯控制器设计
5.4.1 交通信号灯控制器设计要求
5.4.2 交通信号灯控制器的设计分析
5.5 小结
第2篇 fpga实例开发部分
第6章 宏模块和lpm函数的应用
6.1 存储器模块的用法
6.1.1 ram的使用
6.1.2 rom的建立过程
6.1.3 fifo的建立使用
6.2 乘法器和锁相环的使用
6.2.1 乘法器的使用
6.2.2 锁相环的使用
6.3 nco ip核的使用
6.4 基于宏模块的设计实例
6.4.1 正弦波信号发生器的设计
6.4.2 流水线乘累加器的设计
6.5 小结
第7章 基于fpga的dsp开发设计
7.1 概述
7.2 dsp builder功能简介与设计流程
7.2.1 dsp builder功能简介
7.2.2 dsp builder设计流程
7.3 基于dsp builder技术的设计示例——调幅电路
7.3.1 在matlab/simulink中建立算法模型
7.3.2 准备工作
7.3.3 在新模型窗口中添加单元模块
7.3.4 在simulink环境中仿真
7.3.5 在modelsim环境中进行功能仿真
7.3.6 在quartusⅡ环境中进行时序仿真
7.4 基于dsp builder的层次化设计——fir滤波器
7.4.1 fir滤波器的原理
7.4.2 建立系统设计模型
7.4.3 建立子系统的模型
7.4.4 在 simulink和modelsim中仿真
7.5 megacore function函数的使用
7.5.1 安装megacore函数
7.5.2 使用megacore函数的设计流程
7.5.3 使用megacore函数设计fir滤波器
7.6 小结
第3篇 fpga高级应用部分
第8章 sopc技术开发概述
8.1 sopc的概念
8.2 sopc系统的核心——nios ii处理器
8.3 sopc系统开发流程
8.3.1 sopc builder的设计流程
8.3.2 sopc的设计阶段
8.4 sopc系统开发环境
8.5 小结
第9章 sopc系统构架
9.1 nios Ⅱ处理器体系结构
9.1.1 nios ii的内部寄存器
9.1.2 nios ii存储器与i/o组织
9.2 nios ii的异常处理
9.2.1．硬件中断
9.2.2．软件异常
9.2.3．nios ii的异常处理流程
9.3 算术逻辑单元和复位信号
9.3.1．算术逻辑单元
9.3.2 复位信号
9.4 jtag调试模块
9.5 avalon总线
9.5.1 avalon互联规范
9.5.2 avalon总线的概念
9.5.3 avalon总线信号
9.5.4 avalon的中断与复位信号
9.5.5 avalon总线传输
9.6 小结
第10章 soc系统硬件开发
10.1 数字钟的设计要求
10.2 硬件开发流程
10.3 创建quartus ii工程
10.3.1 创建quartus ii工程
10.3.2 创建顶层实体文件
10.4 创建nios ii系统模块
10.4.1 创建新系统
10.4.2 加入nios ii处理器
10.4.3 加入外围模块
10.4.4 分配系统各ip模块的地址和中断号分配、niosⅡ系统配置
10.4.5 生成nios ii并添加到工程中
10.4.6 建立锁相环pll模块
10.5 编译和下载
10.5.1 引脚分配
10.5.2 配置工程
10.5.3 编译设计
10.5.4 程序配置下载
10.6 小结
第11章 sopc系统软件开发
11.1 nios ii ide 简介
11.1.1 nios ii ide的功能模块
11.1.2 niosii ide开发流程
11.2 基于niosⅡide软件示例——数字钟软件
11.2.1 建立软件工程
11.2.2 编译工程
11.2.3 运行
11.3 数字钟的程序设计
11.4 hal系统库
11.4.1 hal简述
11.4.2 目前提供的主要hal资源
11.5 使用hal开发应用程序
11.6 小结
第12章 nios ii常用外设使用
12.1 并行输入输出内核（pio）
12.1.1 pio内核简介
12.1.2 pio内核的配置
12.1.3 pio内核的c语言编程
12.2 定时器的使用
12.2.1 内核定时器简介
12.2.2 定时器内核的配置
12.2.3 定时器内核的c语言编程
12.3 flash接口控制器的使用
12.3.1 flash接口控制器简介
12.3.2 cfi控制器的配置
12.3.3 cfi控制器的c语言编程
12.4 sdram控制器的使用
12.4.1 sdram控制器内核概述
12.4.2 sdram内核配置
12.4.3 软件编程
12.5 uart的使用
12.5.1 uart内核简介
12.5.2 uart内核的寄存器
12.5.3 uart内核配置
12.5.4 软件编程
12.6 小结
第13章 logiclock优化技术
13.1 logiclock优化技术简介
13.1.1 logiclock 设计方法目标
13.1.2 logiclock的区域
13.1.3 锁定区域的基本方式
13.1.4 logiclock技术的应用流程
13.2 为应用logiclock技术准备的具体实例
13.2.1 数字滤波器结构及其vhdl描述
13.2.2 滤波器设计和结果
13.3 logiclock优化设计——底层模块设计
13.3.1 建立底层模块工程
13.3.2 建立父区域
13.3.3 定义逻辑锁定子区域
13.3.4 将设计实体移至锁定区域
13.3.5 编译优化锁定后的filter模块
13.3.6 输出逻辑锁定后的vqm文件
13.4 logiclock优化设计——顶层设计
13.4.1 建立顶层工程
13.4.2 将vqm文件加到顶层工程中
13.4.3 导入logiclock约束
13.5 小结
第14章 数字系统设计实例——电子乐器
14.1 电子乐器的设计
14.1.1 设计要求
14.1.2 设计原理
14.1.3 乐曲硬件演奏电路的层次化设计方案
14.2 fft设计
14.2.1 fft的原理
14.2.2 基于dsp builder设计fft的方法
14.3 sd卡驱动的设计
14.3.1 sd卡和spi内核简介
14.3.2 sd卡与fpga接口电路
14.3.3 硬件系统的sopc设计
14.3.4 系统软件设计
14.4 小结