第1章 概述 1
1.1 EDA技术 1
1.1.1 EDA技术发展 1
1.1.2 EDA设计方法 2
1.1.3 EDA设计层次 3
1.2 可编程逻辑器件概述 4
1.2.1 可编程逻辑器件发展 4
1.2.3 可编程逻辑器件设计流程 5
1.2.2 可编程逻辑器件常用开发软件 5
第2章 FPGA/CPLD结构与应用 8
2.1 可编程逻辑器件基础 8
2.1.1 逻辑电路符号表示方法 8
2.1.2 可编程逻辑器件的分类 8
2.1.3 简单PLD原理 9
2.2 复杂可编程逻辑器件 12
2.2.1 CPLD结构与原理 12
2.2.2 FPGA结构与原理 15
2.2.3 CPLD和FPGA特点总结 20
2.2.4 FPGA/CPLD的发展趋势 21
2.3 Altera新型器件简介 22
2.3.1 低成本FPGA——Cyclone Ⅱ 22
2.3.2 高性能、高密度FPGA——Stratix Ⅱ 26
2.3.3 低成本、低功耗CPLD——MAX Ⅱ 34
2.4 编程与配置 37
2.4.1 Altera FPGA的配置方式 37
2.4.2 配置过程 38
2.4.3 Altera配置器件 39
2.4.4 ByteBlaster Ⅱ下载电缆 41
2.4.5 Quartus Ⅱ软件支持 42
第3章 VHDL基础 46
3.1 简介 46
3.1.1 VHDL的出现 46
3.1.2 VHDL的主要优点 46
3.2 VHDL程序基本结构 47
3.2.1 实体描述 48
3.3 VHDL的库和包 50
3.2.2 结构体描述 50
3.3.1 VHDL库的种类和使用 52
3.3.2 程序包 52
3.3.3 库和程序包的引用 53
3.4 VHDL的基本词法 53
3.4.1 标识符 53
3.4.2 数据对象 54
3.4.3 数据类型 56
3.4.4 运算符 58
3.4.5 VHDL表达式 60
3.5 VHDL的基本语法 60
3.5.1 并行描述语句 60
3.5.2 顺序描述语句 63
3.5.3 结构描述语句 69
3.6 简单逻辑电路的VHDL描述 71
3.6.1 译码器 71
3.6.2 三态门 72
3.6.3 电位型触发器 73
3.6.4 钟控型触发器 74
第4章 Quartus Ⅱ使用入门 76
4.1 Quartus Ⅱ简介 76
4.1.1 Quartus Ⅱ的设计流程 76
4.1.2 Quartus Ⅱ的设计特点 77
4.1.3 Quartus Ⅱ的图形用户界面 78
4.2 Quartus Ⅱ使用方法 79
4.2.1 设计输入 79
4.2.2 编译 85
4.2.3 仿真 87
4.2.4 配置器件 90
4.2.5 原理图输入方式 92
4.3 使用Quartus Ⅱ设计数字逻辑 99
4.3.1 层次化设计方法——3分频器设计 99
4.3.2 有限状态机设计——A/D采样控制器设计 105
第5章 Quartus Ⅱ使用进阶 114
5.1 设计输入与约束 114
5.1.1 预备知识 115
5.1.2 设计输入 118
5.1.3 设计约束 146
5.2 编译 148
5.2.1 综合 150
5.2.2 布局布线 153
5.3 仿真与硬件验证 155
5.3.1 仿真 155
5.3.2 SignalTap Ⅱ在系统分析工具 158
5.4 Altera的IP Core 161
第6章 Quartus Ⅱ与第三方EDA工具 164
6.1 Quartus Ⅱ对第三方EDA工具的支持 164
6.1.1 Quartus Ⅱ支持的第三方EDA工具 164
6.1.2 Quartus Ⅱ与第三方EDA工具协同设计流程 165
6.2 Synplify/Synplify Pro综合工具 165
6.2.1 Synplify Pro驱动的设计流程 165
6.2.2 Quartus Ⅱ驱动的设计流程 173
6.3 ModelSim仿真工具 175
6.3.1 使用ModelSim进行功能仿真 176
6.3.3 ModelSim与Quartus Ⅱ结合的仿真流程 183
6.3.2 Altera仿真库的指定 183
第7章 LogicLock设计方法 186
7.1 LogicLock简介 186
7.1.1 LogicLock区域 187
7.1.2 反标注布局布线信息 188
7.2 应用LogicLock方法设计流水线乘法器 189
7.2.1 开始前的准备 189
7.2.2 创建LogicLock区域 190
7.2.3 指定LogicLock区域的逻辑内容 194
7.2.4 反标注LogicLock区域 195
7.2.5 导出LogicLock约束 197
7.2.6 在顶层设计中使用导入LogicLock约束信息 198
7.2.7 查看LogicLock设计结果 201
第8章 DSP Builder设计工具 203
8.1 DSP Builder设计流程 203
8.1.1 Matlab/Simulink简介 203
8.1.2 DSP Builder设计流程 203
8.2.1 设计内容 205
8.2.2 建立Simulink模型 205
8.2 简单的DSP Builder设计实例 205
8.2.3 系统级仿真 213
8.2.4 使用ModelSim进行RTL仿真 216
8.2.5 自动完成综合适配流程 220
8.2.6 手动流程下的设计综合 221
8.2.7 使用Quartus Ⅱ进行时序仿真 224
8.2.8 将DSP Builder设计作为模块调用 226
8.3.2 位宽设计规则 227
8.3.1 DSP Builder命名规范 227
8.3 DSP Builder设计规则 227
8.3.3 关于数据转换的说明 228
8.3.4 频率设计规则 229
8.3.5 Goto和From模块 234
8.3.6 层次化设计 234
8.4 在DSP Builder中使用IP核 236
第9章 Nios Ⅱ SOPC嵌入式系统设计 238
9.1 Nios Ⅱ处理器简介 238
9.1.1 Nios Ⅱ软核处理器的特性 238
9.1.2 使用Nios Ⅱ实现SOPC的特点 240
9.2 简单SOPC设计实例 243
9.2.1 SOPC设计流程 243
9.2.2 设计内容及步骤 244
9.2.3 建立Quartus Ⅱ工程 245
9.2.4 使用SOPC Builder创建NiosⅡ硬件系统 246
9.2.5 编译Nios Ⅱ系统并配置到目标器件 254
9.2.6 使用Nios Ⅱ IDE开发软件系统 257
9.3 基于HAL的软件开发 262
9.3.1 使用HAL开发Nios Ⅱ软件程序 263
9.3.2 HAL设计实例 264
9.4 MicroC/OS-Ⅱ基础 268
9.5 用户自定义元件 272
9.5.1 用户自定义元件开发流程 272
9.5.2 自定义PWM元件 274
9.6 用户自定义指令 280
9.6.1 用户自定义指令开发流程 280
9.6.2 自定义指令实例 281
参考文献 287
光盘说明 288