第1章 使用VHDL和PLD进行数字系统设计 1
1.1 VHDL/PLD设计方法 1
1.2需求分析与规范制定 3
1.3 VHDL设计描述 4
1.4通过仿真进行验证 6
1.5测试平台 8
1.6功能(行为)仿真 10
1.7可编程逻辑器件(PLD) 11
1.8 SPLD和22V10 13
1.9目标器件的逻辑综合 17
1.10布局布线和时序仿真 19
1.11编程和目标器件的验证 22
1.12 VHDL/PLD设计方法的优点 23
1.13 VHDL的发展 23
1.14 VHDL在仿真和综合中的应用 24
1.15本书的主要目标 24
习题 24
第2章 实体、结构体和编程风格 27
2.1设计单元、库单元和设计实体 27
2.2实体说明 28
2.3 VHDL语法定义 28
2.4端口模式 31
2.5结构体 32
2.6编程风格 33
2.7综合结果与程序风格的关系 40
2.8抽象和综合的层次 42
2.9层次化设计与电路的结构描述 43
习题 45
第3章 信号和数据类型 50
3.1对象分类和对象类型 50
3.2信号对象 51
3.3标量类型 53
3.4 STD_LOGIC类型 56
3.5标量文字(scalar literal)和标量常量(scalar constant) 60
3.6复合类型 60
3.7数组 61
3.8无符号和有符号类型 65
3.9复合文字和复合常量 66
3.10整型 68
3.11可综合的端口类型 70
3.12操作符(算子)和表达式 71
习题 72
第4章 数据流风格的组合逻辑电路设计 75
4.1逻辑操作符 75
4.2数据流方式结构体中的信号赋值 77
4.3选择型信号赋值 79
4.4布尔型及相关的操作符 80
4.5条件(型)信号赋值 81
4.6优先级编码器 84
4.7输入无关项与输出无关项 85
4.8译码器 88
4.9查表法 90
4.10三态缓冲器 93
4.11避免组合(逻辑)环路 95
习题 96
第5章 行为风格的组合逻辑电路设计 101
5.1行为风格的结构体 101
5.2进程语句 103
5.3顺序语句 104
5.4 case语句 104
5.5 if语句 107
5.6 loop语句 110
5.7变量 113
5.8例题:奇偶校验检测器电路 114
5.9描述组合逻辑电路的进程综合 118
习题 119
第6章 事件驱动的仿真 123
6.1仿真器类型 123
6.2精确化(elaboration) 124
6.3信号驱动器 127
6.4仿真器内核进程 129
6.5仿真初始化 130
6.6仿真周期 131
6.7信号和变量 136
6.8 8延迟 141
6.9 8延迟和组合环路 144
6.10多重驱动器 146
6.11信号属性 148
习题 151
第7章 组合逻辑电路的测试平台 155
7.1设计验证 155
7.2组合逻辑电路的功能验证 157
7.3一个简单的测试平台 157
7.4物理类型 159
7.5单进程测试平台 160
7.6等待语句 162
7.7断言(assert)和报告(report)语句 164
7.8基于记录和查找表的测试平台 165
7.9计算激励和期望结果的测试平台 168
7.10预定义的移位操作符 169
7.11根据UUT的功能安排激励顺序 170
7.12将UUT与等效模型进行比较 172
7.13代码覆盖率和分支覆盖率 174
7.14组合逻辑电路的网表验证和时序验证 176
7.15使用VITAL和SDF的时序模型 179
习题 186
第8章 锁存器与触发器 189
8.1时序系统及其存储元件 189
8.2 D锁存器 191
8.3检测时钟边沿 195
8.4 D触发器 196
8.5使能(门控)触发器 200
8.6其他类型的触发器 203
8.7 PLD中的基本存储元件 205
8.8定时需求与同步输入数据 206
习题 207
第9章 多位锁存器、寄存器、计数器和存储器 209
9.1多位锁存器与寄存器 209
9.2移位寄存器 211
9.3移位寄存式计数器 215
9.4计数器 216
9.5检测非时钟信号的边沿 224
9.6具有微处理器接口的脉宽调制器 228
9.7存储器 231
习题 235
第10章 有限状态机 238
10.1有限状态机 238
10.2 FSM的状态图 241
10.3三进程FSM的VHDL模型 242
10.4创建状态图 244
10.5 OSE译码器 252
10.6状态编码与状态分配 255
10.7状态机可靠性 258
10.8禁止逻辑FSM举例 261
10.9用摩尔型FSM实现的计数器 263
习题 265
第11章 ASM图和RTL设计 269
11.1算法状态图 269
11.2将ASM图转换成VHDL 273
11.3系统结构 274
11.4连续逼近寄存器设计举例 277
11.5时序乘法器设计 285
习题 291
第12章 子程序 293
12.1子程序 293
12.2函数 296
12.3过程 299
12.4数组特性和非受约束数组 302
12.5子程序和操作符过载 306
12.6类型转换 308
习题 311
第13章 程序包 312
13.1包头和包体 312
13.2标准程序包和实际存在的标准程序包 314
13.3 STD_LOGIC_1164程序包 318
13.4 NUMERIC_STD程序包(IEEE STD 1076.3) 322
13.5 STD_LOGIC_ARITH程序包 326
13.6 VHDL文本输出程序包 327
习题 327
第14章 时序系统的测试平台 328
14.1简单时序电路的测试平台 328
14.2生成系统时钟 328
14.3生成系统复位信号 331
14.4同步激励的产生和监控 331
14.5连续逼近寄存器的测试平台 335
14.6时序系统测试平台激励的选择 338
14.7使用过程产生激励 340
14.8激励过程中的输出验证 343
14.9总线功能建模 344
14.10响应监控 350
习题 352
第15章 模块化和层次化设计 354
15.1模块和层次的划分 354
15.2设计单元和库单元 356
15.3设计库 357
15.4库单元的使用 358
15.5设计实体的直接例化 360
15.6元件和设计实体的间接例化 362
15.7配置说明 366
15.8元件连接 371
15.9参数化的设计实体 374
15.10参数化的模块库(LPM) 376
15.11生成语句 378
习题 383
第16章 设计实例 385
16.1与微处理器兼容的正交译码器/计数器设计 385
16.2正交译码/计数器的验证 390
16.3参数化的正交译码/计数器 394
16.4电子安全锁设计 394
16.5电子安全锁的验证 405
16.6 RF发射器编码器的设计 408
习题 413
附录 414
参考文献 416