丛书序 1
前言 1
第1章 简单逻辑门电路的设计 1
1.1 基本逻辑门电路 1
1.1.1 与门电路 1
1.1.2 或门电路 3
1.1.3 非门电路 5
1.2 组合逻辑门电路 6
1.2.1 与非门电路 6
1.2.2 或非门电路 8
1.2.3 与或非门电路 10
1.2.4 异或门电路 12
1.2.5 同或门电路 14
1.3 多输入逻辑门电路 16
1.3.1 三输入与门电路 16
1.3.2 两级与非门电路 18
1.3.3 两级或非门电路 19
1.4 三态门和总线缓冲器 21
1.4.1 三态门电路 21
1.4.2 单向总线缓冲器 22
1.4.3 双向总线缓冲器 24
2.1.1 普通编码器 27
2.1 编码器 27
第2章 常用组合逻辑电路的设计 27
2.1.2 优先编码器 28
2.2 译码器 33
2.2.1 二进制译码器 33
2.2.2 编码转换译码器 34
2.2.3 数字显示译码器 37
2.2.4 地址译码器 40
2.3 数据选择器和分配器 43
2.3.1 数据选择器 44
2.3.2 数据分配器 48
2.4.1 一位加法器 50
2.4 运算器 50
2.4.2 数值比较器 57
2.4.3 求补器 60
2.4.4 奇偶校验器 61
第3章 常用时序逻辑电路的设计 64
3.1 触发器 64
3.1.1 基本D触发器 64
3.1.2 异步复位D触发器 66
3.1.3 同步复位D触发器 68
3.1.4 异步置位/复位D触发器 69
3.1.5 同步置位/复位D触发器 71
3.1.6 异步置位/复位JK触发器 73
3.1.7 T触发器 75
3.2 锁存器和寄存器 77
3.2.1 锁存器 77
3.2.2 寄存器 78
3.2.3 通用寄存器 80
3.3 移位寄存器 82
3.3.1 串入/串出移位寄存器 82
3.3.2 串入/并出移位寄存器 86
3.3.3 循环移位寄存器 87
3.4.1 基本同步计数器 91
3.4 计数器 91
3.4.2 带有复位端口的同步计数器 92
3.4.3 带有预置端口的同步计数器 94
3.4.4 带有使能端口的同步计数器 96
3.4.5 同步可逆计数器 98
3.4.6 通用同步计数器 102
3.4.7 异步计数器 103
3.5 存储器 107
3.5.1 只读存储器 107
3.5.2 随机访问存储器 110
4.1 偶数分频电路 115
4.1.1 非2N分频电路 115
第4章 分频电路的设计 115
4.1.2 2N分频电路 118
4.1.3 占空比是1∶1的偶数分频电路 122
4.1.4 占空比不是1∶1的偶数分频电路 123
4.2 奇数分频电路 126
4.2.1 占空比不是1∶1的奇数分频电路 126
4.2.2 占空比是1∶1的奇数分频电路 129
4.3 半整数分频电路 134
4.3.1 半整数分频电路的实现一 134
4.3.2 半整数分频电路的实现二 140
4.4.1 大数值分频电路的一般实现 144
4.4 大数值分频电路 144
4.4.2 大数值分频电路的级联实现 147
第5章 中规模电路的设计 156
5.1 循环冗余校验码的设计 156
5.1.1 循环冗余校验码的基本原理 156
5.1.2 循环冗余校验码的设计实现 157
5.1.3 循环冗余校验码的VHDL设计 160
5.1.4 循环冗余校验码的程序仿真 163
5.2 I2C总线控制电路的设计 164
5.2.1 I2C总线概述 165
5.2.2 i2c_core的设计实现 166
5.2.3 simple_i2c的设计实现 174
5.2.4 元件的封装 181
5.3 一个简单小游戏的设计 182
5.3.1 游戏的功能结构和模块划分 182
5.3.2 游戏的顶层结构设计 183
5.3.3 游戏的底层结构设计 188
5.3.4 底层结构设计的说明 192
5.3.5 程序包的设计 194
第6章 秒表的设计 196
6.1 秒表的设计要求和工作原理 196
6.2 秒表的顶层设计 197
6.2.1 秒表的系统结构和模块划分 197
6.2.2 秒表的顶层VHDL设计 200
6.3 秒表的底层模块1——简单模块 203
6.3.1 按键输入模块 203
6.3.2 时钟分频模块 206
6.3.3 秒表控制模块 212
6.4 秒表的底层模块2——计时模块 213
6.4.1 三进制计数器 214
6.4.2 四进制计数器 216
6.4.3 六进制计数器 217
6.4.4 十进制计数器 218
6.4.5 计时模块的VHDL设计 220
6.5 秒表的底层模块3——显示模块 227
6.5.1 八进制计数器 228
6.5.2 显示位选择译码电路 229
6.5.3 计时位选择电路 231
6.5.4 七段显示译码电路 232
6.5.5 显示模块的VHDL设计 233
6.6 秒表的系统仿真和分析 236
第7章 8259中断控制器的设计 239
7.1 8259中断控制器的顶层设计 239
7.1.1 8259的系统结构框图 239
7.1.2 8259的顶层设计程序 239
7.2.1 中断序列控制逻辑的设计程序 246
7.2 底层模块1——中断序列控制逻辑 246
7.2.2 序列控制逻辑 250
7.2.3 中断矢量多路选择器 261
7.3 底层模块2——中断锁存逻辑 263
7.3.1 中断锁存逻辑的设计程序 263
7.3.2 中断请求寄存器 266
7.3.3 中断优先权判别 269
7.3.4 中断服务寄存器 274
7.4 底层模块3——读写控制逻辑 276
7.4.1 读写控制逻辑的设计程序 277
7.4.2 读写控制寄存器 284
7.4.3 初始化寄存器 285
7.4.4 操作命令字寄存器(一) 291
7.4.5 操作命令字寄存器(二) 296
7.4.6 操作命令字译码 298
7.4.7 读操作多路选择器 300
第8章 自动售货机的设计 302
8.1 自动售货机的设计要求 302
8.2 自动售货机的顶层设计 303
8.2.1 系统结构和模块划分 303
8.2.2 顶层的VHDL设计程序 303
8.3 自动售货机的底层模块设计 310
8.3.1 找零计算模块 310
8.3.2 确认取消控制模块 315
8.3.3 找零控制模块 318
8.3.4 总钱数加和模块 325
8.3.5 锁定模块 330
8.3.6 显示模块 332
8.3.7 时钟分频模块 339
8.3.8 消抖模块 341
8.4 自动售货机的系统仿真和分析 343
8.4.1 用于仿真的顶层VHDL设计程序 344
8.4.2 系统仿真的具体分析 348
第9章 一个简化的32位RISC CPU的设计 356
9.1 简化的32位RISC CPU的原理和设计要求 356
9.2.1 简化的32位RISC CPU采用的指令集 358
9.2 简化的32位RISC CPU的内部结构和模块划分 358
9.2.2 简化的32位RISC CPU的执行过程 362
9.2.3 简化的32位RISC CPU的结构 362
9.2.4 测试C程序、汇编程序和存储器中的机器码 363
9.3 简化的32位RISC CPU的顶层设计 369
9.4 简化的32位RISC CPU的底层模块设计 376
9.4.1 算术逻辑单元模块 376
9.4.2 比较器模块 379
9.4.3 控制单元模块 381
9.4.4 指令寄存器模块 393
9.4.5 程序计数器模块 395
9.4.6 地址计算器模块 397
9.4.7 通用寄存器组模块 400
9.4.8 数据选择器模块 403
9.5 存储器模块 410
9.6 简化的32位RISC CPU的系统仿真和分析 415
9.6.1 系统测试平台的设计 415
9.6.2 addiu指令的仿真分析 417
9.6.3 sw指令的仿真分析 419
9.6.4 lbu指令的仿真分析 423
附录 VHDL标准程序包 427
参考文献 438