目录 1
第1章 概述 1
1.1 电子设计自动化技术及其发展 3
1.2 电子设计自动化应用对象 5
1.3 硬件描述语言 6
1.3.1 硬件描述语言VHDL 7
1.3.2 硬件描述语言的综合 7
1.3.3 自顶向下设计方法 9
1.3.4 EDA技术设计流程 11
1.4 EDA技术的优势 12
1.5 面向FPGA的EDA 开发流程 13
1.5.1 设计输入 13
1.5.2 HDL综合 15
1.5.3 布线布局(适配) 15
1.5.4 仿真 16
1.5.5 下载和硬件测试 16
1.6.1 专用集成电路ASIC设计方法 17
1.6 专用集成电路设计流程 17
1.6.2 一般设计的流程 19
1.7 面向FPGA的EDA开发工具 20
1.7.1 设计输入编辑器 20
1.7.2 HDL综合器 21
1.7.3 仿真器 22
1.7.4 适配器(布局布线器) 23
1.7.5 下载器(编程器) 23
1.8 QuartusⅡ概述 24
1.9 IP(Intellectual Property)核 25
1.10 EDA技术的发展趋势 27
习题 28
第2章 PLD硬件特性与编程技术 29
2.1 概论 31
2.1.1 PLD的发展历程 31
2.1.2 PLD的分类 32
2.2.1 电路符号表示 33
2.2 简单PLD原理 33
2.2.2 PROM 34
2.2.3 PLA 36
2.2.4 PAL 37
2.2.5 GAL 38
2.3 CPLD的结构与工作原理 41
2.4 FPGA的结构与工作原理 44
2.4.1 查找表逻辑结构 44
2.4.2 Cyclone系列器件的结构与原理 45
2.5 硬件测试技术 50
2.5.1 内部逻辑测试 50
2.5.2 JTAG边界扫描测试 51
2.5.3 嵌入式逻辑分析仪 54
2.6 FPGA/CPLD产品概述 54
2.6.1 Lattice公司的CPLD器件系列 55
2.6.2 Xilinx公司的FPGA和CPLD器件系列 56
2.6.3 Altera公司FPGA和CPLD器件系列 58
2.6.4 Actel公司的FPGA器件 61
2.6.5 Altera公司的FPGA配置方式与配置器件 62
2.7 编程与配置 62
2.7.1 JTAG方式的在系统编程 63
2.7.2 使用PC并行口配置FPGA 64
2.7.3 FPGA专用配置器件 66
2.7.4 使用单片机配置FPGA 67
2.7.5 使用CPLD配置FPGA 68
习题 68
实验与设计 69
第3章 VHDL入门 71
3.1 简单组合电路的VHDL描述 73
3.1.1 多路选择器的VHDL描述 73
3.1.2 相关语句结构和语法说明 75
3.2 简单时序电路的VHDL描述 79
3.2.1 D触发器 79
3.2.2 D触发器VHDL描述的语言现象说明 80
3.2.3 实现时序电路的不同表述 84
3.2.4 异步时序电路设计 86
3.3.1 半加器描述和CASE语句 87
3.3 含有层次结构的VHDL描述 87
3.3.2 半加器描述 89
3.3.3 全加器描述和例化语句 91
3.4 计数器设计 93
3.4.1 4位加法计数器 93
3.4.2 整数类型 94
3.4.3 计数器设计的另一种表述 95
3.5 一般加法计数器设计 97
3.5.2 程序分析 98
3.5.1 相关语法说明 98
3.5.3 含并行置位的移位寄存器设计 100
3.6 VHDL语句结构与语法小结 101
习题 102
第4章 Quartus Ⅱ的HDL输入设计 105
4.1 十进制计数器实现流程 107
4.1.1 建立工作库文件夹和编辑设计文件 107
4.1.2 创建工程 107
4.1.3 编译前设置 109
4.1.4 全程编译 111
4.1.5 时序仿真 112
4.1.6 应用RTL电路图观察器 115
4.2 引脚设置和下载 116
4.2.1 引脚锁定 116
4.2.2 配置文件下载 118
4.2.3 编程配置器件 119
4.3 SignalTapⅡ实时测试 120
习题 124
实验与设计 125
第5章 VHDL深入 129
5.1 数据对象及其示例说明 131
5.1.1 常数 131
5.1.2 变量 131
5.1.3 信号 132
5.1.4 进程中的信号与变量赋值 133
5.2 双向和三态电路信号赋值例解 141
5.2.1 三态门设计 141
5.2.2 双向端口设计 142
5.2.3 三态总线电路设计 144
5.3 IF语句概述 146
5.4 进程语句归纳 149
5.4.1 进程语句格式 149
5.4.2 PROCESS组成 150
5.4.3 进程要点 150
5.5 并行语句例解 152
5.6 仿真延时 153
5.6.2 传输延时(Transport Delay) 154
5.6.1 固有延时(Inertial Delay) 154
5.6.3 仿真δ(Simulation Delta) 155
习题 155
实验与设计 156
第6章 图形设计方法 163
6.1 设计初步 165
6.2 应用宏模块的原理图设计 167
6.2.1 测频计数器设计 167
6.2.2 频率计主结构电路设计 168
6.2.3 时序控制电路设计 169
6.2.4 顶层电路设计 170
习题 171
实验与设计 172
第7章 LPM参数化宏模块应用 173
7.1 宏功能模块概述 175
7.1.1 知识产权(IP)核的应用 175
7.1.3 在QuartusⅡ中对宏功能模块进行例化 176
7.1.2 使用MegaWizard Plug-In Manager 176
7.2 LPM模块应用实例 177
7.2.1 电路设计原理 177
7.2.2 定制LPM_ROM初始化数据文件 178
7.2.3 定制LPM_ROM元件 180
7.2.4 完成顶层设计 184
7.3 在系统存储器数据读写编辑器应用 185
7.4 编辑SignalTapⅡ的触发信号 187
7.5 其他存储器模块的定制与应用 188
7.5.1 RAM定制 188
7.5.2 FIFO定制 189
7.6 流水线乘法累加器的混合输入设计 190
7.5.3 基于LPM_ROM的4位乘法器设计 190
7.7 LPM嵌入式锁相环调用 193
7.7.1 建立嵌入式锁相环元件 193
7.7.2 测试锁相环 194
习题 195
实验与设计 195
第8章 有限状态机设计技术 201
8.1.1 类型定义语句TYPE 203
8.1 VHDL一般状态机 203
8.1.2 实用状态机的优势 205
8.1.3 一般状态机的结构 206
8.2 Moore状态机设计 209
8.2.1 多进程状态机设计 209
8.2.2 单进程Moore状态机设计 213
8.3 Mealy状态机设计 215
8.4.1 状态位直接输出型编码 218
8.4 状态机的状态编码 218
8.4.2 顺序编码 220
8.4.3 一位热码编码 221
8.5 非法状态处理 221
习题 223
实验与设计 225
第9章 设计优化和时序分析 231
9.1 资源优化 233
9.1.1 资源共享 233
9.1.2 逻辑优化 235
9.1.3 串行化 236
9.2 速度优化 238
9.2.1 流水线设计 238
9.2.2 寄存器配平 240
9.2.3 关键路径法 241
9.3.1 Settings设置 242
9.3.2 HDL版本设置及Analysis Synthesis功能 242
9.3 优化设置与时序分析 242
9.3.3 Analysis Synthesis的优化设置 243
9.3.4 适配器Fitter设置 243
9.3.5 增量布局布线控制设置 244
9.3.6 使用DesignAssistant检查设计可靠性 245
9.3.7 时序设置与分析 246
9.3.8 查看时序分析结果 248
9.3.9 适配优化设置示例 250
9.3.11 LogicLock优化技术 253
9.3.10 Slow Slew Rate设置 253
9.4 Chip Editor应用 254
9.4.1 Chip Editor应用实例 254
9.4.2 Chip Editor功能说明 255
9.4.3 利用Change Manager检测底层逻辑 257
习题 259
实验与设计 260
第10章 VHDL程序结构与规则 269
10.1.2 参数传递说明语句 271
10.1 VHDL实体 271
10.1.1 实体语句结构 271
10.1.3 参数传递映射语句 272
10.1.4 端口说明语句 274
10.2 VHDL结构体 274
10.3 VHDL子程序 275
10.3.1 VHDL函数 275
10.3.2 VHDL重载函数 278
10.3.3 VHDL转换函数 281
10.3.5 VHDL过程 283
10.3.4 VHDL决断函数 283
10.3.6 VHDL重载过程 285
10.4 VHDL库 286
10.4.1 库的种类 286
10.4.2 库的用法 287
10.5 VHDL程序包 289
10.6 VHDL配置 291
10.7.1 数字 292
10.7.2 字符串 292
10.7 VHDL文字规则 292
10.7.3 标识符 293
10.7.4 下标名 294
10.8 VHDL数据类型 294
10.8.1 预定义数据类型 295
10.8.2 IEEE预定义标准逻辑位与矢量 297
10.8.3 其他预定义标准数据类型 297
10.8.4 VHDL数组类型 298
10.9 VHDL操作符 301
10.9.1 逻辑操作符(Logical Operator) 301
10.9.2 关系操作符(Relational Operator) 303
10.9.3 算术操作符(Arithmetic Operator) 304
习题 307
实验与设计 308
第11章 VHDL语句 317
11.1.3 CASE语句 319
11.1.2 IF语句 319
11.1.1 赋值语句 319
11.1 顺序语句 319
11.1.4 LOOP语句 322
11.1.5 NEXT语句 323
11.1.6 EXIT语句 324
11.1.7 WAIT语句 325
11.1.8 子程序调用语句 328
11.1.9 RETURN语句 330
11.2 并行语句 331
11.1.10 空操作语句 331
11.2.1 并行信号赋值语句 332
11.2.2 块语句结构 335
11.2.3 并行过程调用语句 338
11.2.4 元件例化语句 339
11.2.5 生成语句 340
11.2.6 REPORT语句 344
11.2.7 断言语句 345
11.3 属性描述与定义语句 347
习题 350
实验与设计 352
第12章 实用电路模块设计 355
12.1 步进电机细分驱动控制 357
12.2 直流电机的PWM控制 363
12.3 VGA彩条信号显示控制器设计 365
12.4 VGA图像显示控制器设计 370
12.5 采用高速A/D的存储示波器设计 372
12.6 通用异步收发器设计 375
12.7 信号采集与频谱分析电路设计 380
12.8 等精度频率/相位计设计 381
12.8.1 主系统组成 382
12.8.2 测频原理 382
12.8.3 VHDL测试程序设计 384
12.8.4 测试与实现 387
12.8.5 相位测试 388
12.9 DDS设计 389
12.10 数字移相信号发生器设计 394
12.11 PS/2键盘鼠标控制模块设计 396
12.13 IP核NCO数控振荡器使用方法 397
12.12 PS/2与VGA控制显示模块设计 397
习题 403
实验与设计 404
第13章 VHDL仿真 409
13.1 仿真 411
13.2 VHDL源程序仿真 411
13.3 仿真激励信号的产生 414
13.4 VHDL测试基准 416
13.5 VHDL系统级仿真 420
13.6 使用ModelSim进行VHDL仿真 421
13.7 VHDL的RTL表述 426
13.7.1 行为描述 427
13.7.2 数据流描述 429
13.7.3 结构描述 429
附录 431
一、实验电路结构图 435
二、GW48 EDA系统实验信号名与芯片引脚对照表 437
参考文献 440