第1章 引言 1
1.1 硬件描述语言 1
1.2 VHDL语言的产生及发展 2
1.3 VHDL语言的特点 3
1.4 VHDL语言的开发环境 3
1.5 小结 5
第2章 VHDL程序基本结构 6
2.1 VHDL程序的基本单元 6
2.2 设计实体 7
2.2.1 类属和端口说明 8
2.2.2 端口模式 9
2.2.3 实体说明部分 9
2.2.4 实体语句部分 10
2.3 设计结构体 10
2.3.1 结构体命名 11
2.3.2 定义语句 11
2.3.3 并行处理语句 11
2.4 描述风格 12
2.3.4 结构体的子结构设计方法 12
2.4.1 行为描述 13
2.4.2 数据流描述 14
2.4.3 结构描述 14
2.4.4 混合描述 16
2.5 小结 17
3.1.1 短标识符 18
3.1.2 扩展标识符 18
3.1 VHDL标识符 18
第3章 VHDL数据和表达式 18
3.2 VHDL数据对象 19
3.2.1 常量 20
3.2.2 变量 20
3.2.3 信号 21
3.2.4 文件 22
3.3 VHDL数据类型 22
3.3.1 标量类型 23
3.3.2 复合类型 24
3.3.4 文件类型 26
3.3.3 存取类型 26
3.3.5 其他类型 27
3.3.6 子类型 28
3.4 类型转换 29
3.4.1 用类型标记实现类型转换 29
3.4.2 用户创建的类型转换 30
3.4.3 数据类型的限定 31
3.4.4 IEEE标准数据类型 31
3.5.2 数字 32
3.5 词法单元 32
3.5.1 注释 32
3.5.3 字符 33
3.5.4 字符串 33
3.5.5 位串 33
3.6 VHDL表达式与运算符 33
3.6.1 逻辑运算符 34
3.6.2 算术运算符 34
3.6.3 关系运算符 35
3.6.5 运算符的优先级 36
3.6.4 并置运算符 36
3.7 小结 37
第4章 VHDL主要描述语句 38
4.1 顺序语句 38
4.1.1 变量赋值语句 38
4.1.2 信号赋值语句 39
4.1.3 IF语句 39
4.1.4 CASE语句 40
4.1.5 LOOP语句 41
4.1.7 EXIT语句 43
4.1.6 NEXT语句 43
4.1.8 断言语句 44
4.1.9 过程调用语句 44
4.1.10 RETURN语句 45
4.1.11 NULL语句 45
4.1.12 REPORT语句 45
4.2 并行语句 46
4.2.1 进程语句 46
4.2.2 WAIT语句 48
4.2.3 BLOCK语句 50
4.2.4 并行过程调用语句 52
4.2.5 并行断言语句 53
4.2.6 并行信号赋值语句 54
4.2.7 信号代入语句 55
4.2.8 元件例化语句 57
4.2.9 生成语句 59
4.2.10 参数传递语句 60
4.2.11 端口映射语句 62
4.3 命名规则和注解标注 62
4.4 小结 63
第5章 属性 64
5.1 预定义属性 64
5.2 数值类属性 64
5.2.1 数值类属性 64
5.2.2 数值类数组属性 66
5.2.3 数值类块属性 68
5.3 函数类属性 69
5.3.1 函数类属性 69
5.3.2 函数数组属性 71
5.3.3 函数信号属性 73
5.4 信号类属性 75
5.5 类型类属性 80
5.6 范围类属性 81
5.7 ATTRIBUTE语句 82
5.8 用属性检查建立和保持时间 83
5.9 小结 85
第6章 信号与延迟 86
6.1 信号驱动源 86
6.2 延迟 87
6.2.1 惯性延迟 88
6.2.2 传输延迟 89
6.3 信号驱动源上的延迟作用 90
6.3.1 信号驱动源上传输延迟的作用 90
6.3.2 信号驱动源上惯性延迟的作用 91
6.3.3 信号驱动源上阈值惯性延迟的作用 93
6.4 模拟周期 93
6.5 δ延迟 95
6.6 小结 97
7.2 库 98
7.1 设计层次 98
第7章 VHDL模型的基本结构 98
7.2.1 STD库 99
7.2.2 WORK库 99
7.2.3 资源库 99
7.2.4 USE子句 99
7.3 程序包 100
7.3.1 STANDARD程序包 102
7.3.2 TEXTIO程序包 103
7.3.3 Std_Logic-1164程序包 109
7.3.4 Numeric_Std程序包 112
7.3.5 Numeric_Bit程序包 112
7.4 元件例化 112
7.4.1 用户构造 112
7.4.2 调用元件 119
7.5 小结 121
第8章 配置 122
8.1 默认连接 122
8.2 默认配置 122
8.3 配置说明 124
8.3.1 元件配置 125
8.3.2 低级配置 126
8.3.3 实体-结构体对的配置 127
8.3.4 端口映射 128
8.4 映射实体 129
8.5 配置中的类属 132
8.5.1 结构体中的类属值 134
8.5.2 配置中的类属 136
8.6 块的配置 139
8.8 小结 141
8.7 结构体的配置 141
第9章 子程序 142
9.1 过程 142
9.2 函数 144
9.2.1 转换函数 146
9.2.2 决断函数 151
9.3 子程序重载 157
9.3.1 子程序重载 157
9.3.2 运算符重载 158
9.4 小结 161
第10章 VHDL程序设计基础 162
10.1 设计中的重要概念 162
10.1.1 组合逻辑与时序逻辑 162
10.1.2 锁存器、触发器和寄存器 164
10.1.3 存储器 168
10.2 可编程逻辑器件 169
10.2.1 PLD概述 169
10.2.2 CPLD和FPGA 171
10.2.3 开发PLD 173
10.3 相关的设计理论 175
10.3.1 集成电路的设计与综合 175
10.3.2 层次化设计方式 177
10.4 相关的设计方法 178
10.4.1 组合电路设计 178
10.4.2 时序电路设计 186
10.4.3 数字集成系统的行为综合 191
10.5 小结 193
11.1.1 与门(AND Gate) 194
11.1 逻辑门 194
第11章 基本组合电路的VHDL模型 194
11.1.2 或门(OR Gate) 195
11.1.3 反相器(Inverter) 196
11.1.4 与非门(NANDGate) 197
11.1.5 或非门(NORGate) 198
11.1.6 异或门(XORGate) 199
11.2 缓冲器 200
11.3 选择器 200
11.4 译码器 201
11.5 编码器 203
11.6 比较器 203
11.7 移位器 204
11.8 运算器 205
11.8.1 加法器(Adder) 205
11.8.2 乘法器(Multiplier) 207
11.8.3 求补器 210
11.9 算术逻辑单元ALU 210
11.10 可编程逻辑阵列PLA 217
11.11 小结 220
第12章 基本时序电路的VHDL模型 221
12.1 锁存器 221
12.1.1 电平锁存器 221
12.1.2 同步锁存器 222
12.1.3 异步锁存器 223
12.2 触发器 224
12.2.1 D触发器 224
12.2.2 T触发器 229
12.2.3 JK触发器 232
12.3 寄存器 235
12.3.1 通用寄存器 235
12.3.2 移位寄存器 236
12.4 计数器 239
12.4.1 同步计数器 239
12.4.2 异步计数器 240
12.5 小结 241
13.1 有限状态机概述 242
13.1.1 Moore状态机功能描述 242
第13章 有限状态机 242
13.1.2 Mealy状态机功能描述 243
13.1.3 有限状态机的选择 243
13.2 构造状态表 243
13.2.1 建立状态转换图 244
13.2.2 建立状态转换表 246
13.3 有限状态机的复位 247
13.3.1 有限状态机的同步复位 247
13.4.1 有限状态机的描述风格 248
13.4 建立有限状态机的VHDL模型 248
13.3.2 有限状态机的异步复位 248
13.4.2 有限状态机的描述实例 249
13.5 有限状态机状态编码方式 259
13.5.1 组合译码式 259
13.5.2 一位有效式 261
13.6 小结 263
第14章 系统设计实例 264
14.1 存储器设计 264
14.1.1 只读存储器ROM 264
14.1.2 随机读取存储器RAM 265
14.1.3 堆栈(stack) 268
14.2.1 系统层次设计方法 270
14.2 系统层次化设计 270
14.2.2 系统模块划分方法 271
14.2.3 系统层次化设计实例 271
14.3 自顶向下的系统设计方法 286
14.3.1 Top-Down分析方法 286
14.3.2 OC51微处理器设计实例 287
14.4 小结 312
15.1 系统仿真概述 313
第15章 系统仿真 313
15.2 组合电路系统仿真 314
15.3 时序电路系统仿真 316
15.4 测试激励设计方式 322
15.5 小结 326
第16章 逻辑综合与设计实现 327
16.1 逻辑综合 327
16.1.1 逻辑综合的原理 327
16.1.2 设置技术库 329
16.1.3 逻辑综合的约束条件 330
16.2 设计实现 331
16.2.1 设计实现概述 332
16.2.2 面向CPLD器件的实现概述 332
16.2.3 面向CPLD器件的实现实例 333
16.2.4 面向FPGA器件的实现概述 361
16.2.5 面向FPGA器件的实现实例 363
16.3 小结 369
17.1 MAX+PlusⅡ特点 370
第17章 MAX+PlusⅡ使用入门 370
17.2 MAX+PlusⅡ的安装 371
17.2.1 推荐的系统配置 371
17.2.2 MAX+PlusⅡ的安装 372
17.3 使用MAX+PlusⅡ软件系统的设计流程 373
17.3.1 设计输入 374
17.3.2 设计处理 375
17.3.3 设计校验 376
17.3.4 设计编程 376
17.3.5 设计流程 377
17.4.1 图形设计输入 378
17.4 逻辑设计的输入方法 378
17.4.2 文本设计输入 383
17.4.3 创建顶层图形设计文件 383
17.4.4 层次显示 383
17.5 编译设计项目 384
17.5.1 准备编译 384
17.5.2 编译选项设置 385
17.5.5 引脚锁定 389
17.5.4 在底层图编辑器中观察试配结果 389
17.5.3 运行编译器 389
17.6 设计项目仿真 390
17.7 定时分析 391
17.8 器件编程 394
17.9 小结 396
第18章 Xilinx Foundation Series ISE 3.1i简介 397
18.1 Xilinx Foundation Series ISE 3.1i特点介绍 397
18.2 Xilinx Foundation Series ISE 3.1i的安装 398
18.3.1 软件启动 401
18.3.2 项目管理 401
18.3 Xilinx Foundation Series ISE 3.1i软件系统工具综述 401
18.3.3 设计输入 403
18.3.4 逻辑综合 403
18.3.5 设计约束 405
18.3.6 功能仿真 405
18.3.7 设计实现 405
18.3.8 报告文件 406
18.3.9 时序仿真 407
18.4.1 VHDL设计输入 408
18.4 Xilinx Foundation Series ISE 3.1i使用实例 408
18.3.10 器件编程 408
18.4.2 模块功能验证 410
18.4.3 页层电路逻辑图输入 413
18.4.4 设计实现 418
18.4.5 时序分析 418
18.5 小结 421
附录A VHDL保留字 422
附录B VHDL语法总结 425
附录C VHDL英汉名词对照表 428
附录D 部分PLD厂家主流芯片介绍 437