内容简介
第1章 布尔代数、布尔函数、VHDL和门
1.1 引言
1.2 布尔代数基础
1.2.1 维恩图
1.2.2 布尔函数的黑盒子
1.2.3 基本逻辑符号
1.2.4 布尔代数公理
1.2.5 布尔代数定理
1.2.6 布尔代数定理的证明
1.3 从真值表推导出布尔函数
1.3.1 用函数的1值推导出布尔函数
1.3.2 用函数的0值推导出布尔函数
1.3.3 用最小项和最大项推导出布尔函数
1.4 简单门函数的VHDL设计
1.4.1 NOT函数的VHDL设计
1.4.2 AND函数的VHDL设计
1.4.3 OR函数的VHDL设计
1.4.4 XOR函数的VHDL设计
1.4.5 NAND函数的VHDL设计
1.4.6 NOR函数的VHDL设计
1.4.7 XNOR函数的VHDL设计
1.4.8 BUFFER函数的VHDL设计
1.4.9 用标准形式给出的任意布尔函数的VHDL设计
1.5 有关逻辑门的更多内容
1.5.1 等价门符号
1.5.2 全功能门
1.5.3 等价门电路
1.5.4 门的简化描述名称
1.5.5 门的国际逻辑符号
习题
第2章 数制转换、码制和函数最简化
2.1 引言
2.2 数字电路与模拟电路
2.2.1 人类心脏的数字化信号
2.2.2 离散信号与连续信号
2.3 二进制数制转换
2.3.1 十进制数、二进制数、八进制数和十六进制数
2.3.2 转换技术
2.4 二进制码制
2.4.1 小键盘和键盘的最少比特表示
2.4.2 常见码制:BCD、ASCII以及其他
2.4.3 二进制和反射格雷码之间的模2加法和转换
2.4.4 七段码
2.4.5 字母显示系统的VHDL设计
2.5 卡诺图化简方法
2.5.1 卡诺图资源管理器
2.5.2 使用两变量卡诺图
2.5.3 使用三变量卡诺图
2.5.4 使用四变量卡诺图
2.5.5 无关的输出
习题
第3章 逻辑电路分析和设计简介
3.1 引言
3.2 集成电路器件
3.3 分析和设计逻辑电路
3.3.1 分析和设计继电器逻辑电路
3.3.2 分析IC逻辑电路
3.3.3 设计IC逻辑电路
3.4 生成详细的原理图
3.5 用与非/与非和或非/或非形式设计电路
3.6 传输延时
3.7 译码器
3.7.1 用译码器和单个门设计逻辑电路
3.8 多路选择器
3.8.1 用多路选择器设计逻辑电路
3.9 险象
3.9.1 功能险象
3.9.2 逻辑险象
习题
第4章 用VHDL实现组合逻辑电路的设计
4.1 引言
4.2 VHDL
4.3 库组成
4.4 实体声明
4.5 结构体声明
4.5.1 数据流设计风格评价
4.5.2 行为设计风格评价
4.5.3 结构设计风格评价
4.6 数据流设计风格
4.7 行为设计风格
4.8 结构设计风格
4.9 用连线和总线实现
4.10 VHDL设计实例
4.10.1 用标量输入和输出设计
4.10.2 用向量输入和输出设计
4.10.3 通用VHDL架构
习题
第4章 双稳态存储器件的VHDL设计
5.1 引言
5.2 S-R NOR锁存器分析
5.2.1 简单的电灯开关
5.2.2 S-R NOR锁存器的电路延迟模型
5.2.3 S-R NOR锁存器的特性表
5.2.4 S-R NOR锁存器的特征方程
5.2.5 S-R NOR锁存器的PS/NS表
5.2.6 S-R NOR锁存器的时序图
5.3 S-R NAND锁存器分析
5.3.1 S-R NAND锁存器电路延迟模型
5.3.2 S-R NAND锁存器的特性表
5.3.3 S-R NAND锁存器的特征方程
5.3.4 S-R NAND锁存器的PS/NS表
5.3.5 S-R NAND锁存器的时序图
5.4 设计一个简单的时钟
5.5 设计一个D锁存器
5.5.1 门控S-R锁存器电路设计
5.5.2 用S-R锁存器设计D锁存器电路
5.5.3 利用D锁存器的特性表来设计D锁存器电路
5.5.4 D锁存器的时序图
5.5.5 用D锁存器构造一个时钟
5.5.6 构造一个8比特的D锁存器
5.6 设计D触发器电路
5.6.1 设计主从型D触发器电路
5.6.2 用S-R NAND设计D触发器
5.6.3 上升沿触发的D触发器的时序图
习题
第6章 用VHDL设计简单的有限状态机
6.1 引言
6.2 同步电路
6.3 用VHDL构造一个D型触发器
6.4 设计简单的同步电路
6.5 用算法公式法设计计数器
6.6 用算法公式法设计非传统计数器
6.7 用算术法设计计数器
6.8 分频(降低一个快时钟的频率)
6.9 用PS/NS表格法设计计数器
6.10 用PS/NS表格法设计非传统计数器
习题
第7章 计算机电路
7.1 引言
7.2 三态输出与断开状态
7.3 微型计算机系统的数据总线共享
7.4 深入了解XOR和XNOR符号及功能
7.4.1 奇函数和偶函数
7.4.2 单比特错误检测系统
7.4.3 比较器和大于电路
7.5 加法器设计
7.5.1 半加器模块的设计
7.5.2 全加器模块的设计
7.6 设计及使用行波进位加法器和减法器
7.7 行波进位加法器的传播延迟时间
7.8 设计超前进位加法器
7.9 超前进位加法器的传播延迟时间
习题
第8章 电路实现技术
8.1 引言
8.2 可编程逻辑器件
8.2.1 可编程只读存储器(PROM)和查找表(LUT)
8.2.2 可编程逻辑阵列(PLA)
8.2.3 可编程阵列逻辑(PAL)或者通用阵列逻辑(GAL)
8.2.4 使用PROM或者LUT进行电路设计
8.2.5 使用PLA进行电路设计
8.2.6 使用PAL或者GAL进行电路设计
8.3 正逻辑规则和直接极性标志
8.3.1 信号名称
8.3.2 PLC和DPI系统的等效电路分析
8.4 更多关于多路选择器和数据分路器的内容
8.4.1 MUX树设计
8.4.2 DMUX树设计
习题
第9章 复杂有限状态机的VHDL设计
9.1 引言
9.2 基于双进程PS/NS方法的设计
9.3 CPLD、FPGA和状态机编码风格浅析
9.4 有限状态机模型总结
9.5 利用摩尔输出设计紧凑编码状态机
9.6 利用摩尔输出设计单热点编码的状态机
9.7 利用摩尔和米利输出设计紧凑编码状态机
9.8 利用摩尔和米利输出设计单热点编码状态机
9.9 利用算法公式法设计复杂状态机
9.10 提高复杂状态机的可靠性
9.11 其他状态机设计方法
9.11.1 双分配PS/NS方法
9.11.2 混合PS/NS方法
习题
第10章 基本的计算机体系结构
10.1 引言
10.2 通用数据处理系统或计算机
10.3 哈佛型计算机和RISC体系结构
10.4 普林斯顿(冯·诺依曼)型计算机和CISC体系结构
10.5 VBC1概述
10.6 VBC1设计原理
10.7 VBC1编程器寄存器模型
10.8 VBC1指令集体系结构
10.9 汇编语言程序的编写格式
习题
第11章 VBC1的汇编语言编程
11.1 引言
11.2 VBC1指令集
11.3 IN指令
11.4 OUT指令
11.5 MOV指令
11.6 LOADI指令
11.7 ADDI指令
11.8 ADD指令
11.9 SR0指令
11.10 JNZ指令
11.11 VBC1编程实例和技术
11.11.1 无条件跳转
11.11.2 标签
11.11.3 循环计数器
11.11.4 程序“横行”
11.11.5 减法指令
11.11.6 乘法指令
11.11.7 除法指令
习题
第12章 设计输入输出电路
12.1 引言
12.2 设计仲裁电路
12.3 设计总线仲裁电路
12.4 设计可加载寄存器电路
12.5 设计输入电路
12.5.1 设计由4个滑动开关驱动的输入电路
12.6 设计输出电路
12.6.1 设计驱动4个LED的输出电路
12.6.2 设计一个可以驱动七段显示器的输出电路
12.6.3 仔细观察显示0的电路
12.7 结合输入输出电路搭建一个简单I/O系统
12.8 可选的VHDL设计风格
习题
第13章 设计指令存储器、加载程序计数器和去抖动电路
13.1 引言
13.2 设计一个指令存储器
13.2.1 指令存储器的代码变形
13.2.2 在启动阶段初始化VBC1的指令存储器
13.3 设计一个加载程序计数器
13.4 设计一个去抖动单脉冲电路
13.5 设计去抖动单脉冲电路的验证电路
习题
第14章 设计多路显示系统
14.1 引言
14.2 4个七段LED显示器构成的多路显示系统
14.3 用VHDL设计多路显示系统
14.3.1 设计模块1:四选一MUX阵列
14.3.2 设计模块2:十六进制显示译码器
14.3.3 设计模块3:2比特计数器和分频器
14.3.4 设计模块4:2-4线译码器
14.4 用平面设计方法设计多路显示系统
14.5 用层次化设计方法设计多路显示系统
14.6 利用平面设计方法设计一个字符显示系统
习题
第15章 设计指令译码器
15.1 引言
15.2 指令译码器设计目标
15.3 指令IN、OUT和MOV的指令译码器真值表
15.4 设计指令IN的指令译码器
15.5 设计指令OUT和MOV的指令译码器
15.6 指令LOADI的指令译码器真值表
15.7 指令ADDI的指令译码器真值表
15.8 指令ADD的指令译码器真值表
15.9 指令SR0的指令译码器真值表
15.10 设计指令SR0的指令译码器
15.11 JNZ指令译码器真值表
15.12 设计指令JNZ的指令译码器
15.13 设计VBC1的指令译码器
习题
第16章 设计算术逻辑单元
16.1 引言
16.2 算术逻辑单元的使用
16.3 设计ALU的LOADI指令部分
16.4 设计ALU的ADDI指令部分
16.5 设计ALU的ADD指令部分
16.6 设计ALU的SR0指令部分
16.7 设计一个用于VBC1的ALU
16.8 用VHDL设计的附加电路
16.8.1 设计额外的ALU电路
16.8.2 设计移位电路
16.8.3 设计桶形移位电路
16.8.4 设计移位寄存器电路
习题
第17章 完成VBC1的设计
17.1 引言
17.2 设计一个运行程序计数器
17.3 将载入程序计数器与运行程序计数器结合起来
17.4 设计运行频率电路和速度电路
17.5 设计VBC1的指令存储器的载入电路
习题
第18章 VBC1-E的汇编语言编程
18.1 引言
18.2 指令总结
18.3 输入、输出与中断指令
18.4 数据存储指令
18.5 算术指令与逻辑指令
18.6 移位指令与循环移位指令
18.7 跳转指令、相对跳转指令与暂停指令
18.8 关于中断与汇编器命令的更多内容
18.9 VBC1-E完整指令集总结
习题
第19章 设计VBC1-E的输入输出电路
19.1 引言
19.2 VBC1-E的输入电路设计
19.3 VBC1-E的修改后IN指令的指令译码真值表
19.4 VBC1-E的输出电路设计
19.5 VBC1-E的修改后OUT指令的指令译码真值表
19.6 VBC1-E的修改后IN和OUT指令的指令译码器设计
19.7 VBC1-E的LOADI、ADDI和JNZ指令的指令译码器设计
习题
第20章 设计VBC1-E的数据存储器电路
20.1 引言
20.2 设计VBC1-E的数据存储器
20.3 设计VBC1-E的寄存器和数据选择电路
20.4 VBC1-E的STORE和FETCH指令的指令译码器真值表
20.5 设计VBC1-E的STORE和FETCH指令的指令译码器
20.6 设计VBC1-E的MOV指令的指令译码器
习题
第21章 设计VBC1-E的算术、逻辑、移位、旋转和无条件跳转电路
21.1 引言
21.2 VBC1-E ALU的算术和逻辑指令部分设计
21.3 VBC1-E的算术和逻辑指令译码器设计
21.4 VBC1-E ALU的移位和旋转指令部分设计
21.5 VBC1-E的移位和旋转指令译码器设计
21.6 VBC1-E的JMP和JMPR电路设计
21.7 VBC1-E的JMP和JMPR指令译码器设计
习题
第22章 设计VBC1-E中手动载入时阻止程序执行的电路
22.1 引言
22.2 设计VBC1-E中修改手动载入的电路
22.3 修改手动载入时VBC1-E中的指令译码器
习题
第23章 设计VBC1-E的扩展指令存储器
23.1 引言
23.2 为VBC1-E修改指令存储器以增加扩展指令存储器
23.3 为VBC1-E修改运行程序计数器电路
23.4 为VBC1-E修改合理地址电路
23.5 为VBC1-E修改加载程序计数器电路
23.6 为VBC1-E修改JMPR电路
习题
第24章 设计VBC1-E的软件中断电路
24.1 引言
24.2 设计VBC1-E的运行程序计数器与选择电路的改进电路
24.3 设计VBC1-E的存储PCPLUS1的电路
24.4 VBC1-E的INT和IRET指令的指令译码器真值表
24.5 设计VBC1-E的INT和IRET指令的指令译码器
习题
第25章 完成VBC1-E的设计
25.1 引言
25.2 设计VBC1-E的去抖动单脉冲触发中断电路并修改RPC电路
25.3 设计VBC1-E的RETA信号的显示电路
25.4 设计VBC1-E的提供指令存储器的加载器功能的电路
习题
附录A 实验案例
实验1A:门电路的设计与仿真
实验1B:完成设计流程
实验2:键盘编码系统的设计与测试
实验3:门电路检验系统的设计与测试
实验4:自定义十进制显示译码系统的设计与测试
实验5A:D锁存器与带CLR输入的D触发器的设计与测试
实验5B:8位寄存器及带PRE输入的D触发器的设计与测试
实验6A:简单计数系统的设计与测试——8位单热递增计数器
实验6B:简单计数器系统的设计与测试——两位格雷码计数器
实验6C:简单非常规计数系统的设计与测试——机器眼电路
实验6D:简单非常规计数系统的设计与测试——笑脸电路
实验7A:用平面设计方法进行简单错误系统的设计与测试
实验7B:用层次化设计方法进行简单4位加减系统的设计与测试
实验8:利用平面设计方法进行LUT系统的设计与测试
实验9A:用平面设计方法进行单热递增/递减计数系统的设计与测试
实验9B:用层次化设计方法进行十状态计数系统的设计与测试
实验10:VBC1系统EASY1(编辑器/汇编器/仿真器)的使用
实验11:用EASY1编写和仿真VBC1程序
实验12:VBC1系统的设计与测试(数据通路单元)
实验13:VBC1系统的设计与测试(指令存储单元)
实验14:VBC1系统的设计与测试(显示系统)
实验15:VBC1系统的设计与测试(指令译码器)
实验16:VBC1系统的设计与测试(算术逻辑单元)
实验17:VBC1系统的设计与测试(最终设计)
实验17L:设计VBC1系统的指令加载器
实验18:在VBC1系统上编写并运行汇编程序
实验19:VBC1-E的设计与测试(IN、OUT和未修改的指令)
实验20:VBC1-E系统的设计与测试(数据转移和访存指令)
实验21:VBC1-E系统的设计与测试(大部分指令)
实验22:VBC1-E系统的设计与测试(添加手动加载电路)
实验23:VBC1-E系统的设计与测试(添加扩展指令存储器)
实验24:VBC1-E系统的设计与测试(实现INT和IRET指令)
实验25:VBC1-E系统的设计与测试(最终设计)
实验25L:VBC1-E指令加载器的设计
附录B 用VHDL测试平台程序进行仿真
B.1 简介
B.2 例1:组合逻辑设计(工程:AND 3)
B.3 例2:同步时序逻辑设计(工程:DFF)
附录C FPGA管脚连接关系查询手册
C.1 BASYS 2开发板
C.2 NEXYS 2开发板
C.3 BASYS 2及NEXYS 2开发板上FPGA存储加载器的管脚接口
C.4 FX2MIB(模块转接板)——NEXYS 2外加电路板
附录D EASY1教程
D.1 简介
D.2 EASY1用户界面
D.3 EASY1界面布局
D.4 如何使用EASY1
D.5 例1:简单输入输出程序
D.6 例2:修改后能够一直执行的输入输出程序
D.7 例3:简单状态机程序
D.8 例4:复杂状态机程序
D.9 例5:产生延时
D.10 用EASY1产生VBC1平台的机器码
附录E 将指令加载到存储器中的三种方法
E.1 手动载入存储器
E.2 在启动时初始化存储器内容
E.3 通过存储器加载程序载入存储器