第1章 绪论 1
1.1 什么是数字电路 1
1.2 数字电路的发展及应用 2
1.3 数字电路设计方法 3
1.4 课程应用模型 5
第2章 数字电路基础 7
2.1 数制和码制 7
2.1.1 基本概念 7
2.1.2 二进制与十进制 8
2.1.3 八进制与十六进制 9
2.1.4 码制 10
2.2 逻辑代数基础 11
2.2.1 逻辑运算 11
2.2.2 基本规则 13
2.3 逻辑函数 14
2.3.1 逻辑函数及其表示方法 14
2.3.2 逻辑函数的标准形式 15
2.3.3 逻辑函数的代数化简 15
2.3.4 卡诺图化简法 16
习题 19
第3章 逻辑电路 21
3.1 门电路 21
3.1.1 基本门电路 21
3.1.2 常用集成门电路 25
3.2 组合逻辑电路 29
3.2.1 组合电路的分析和设计 29
3.2.2 组合逻辑电路的竞争与冒险 31
3.2.3 常用的集成组合逻辑电路 32
3.3 时序逻辑电路 46
3.3.1 触发器 46
3.3.2 典型触发器 47
3.3.3 典型集成触发器 55
3.3.4 时序逻辑电路的分类 56
3.3.5 同步时序逻辑电路分析与设计 57
3.3.6 异步时序逻辑电路的分析与设计 61
3.3.7 计数器 65
3.3.8 寄存器 69
习题 70
第4章 大规模数字集成电路 74
4.1 半导体存储器 74
4.1.1 只读存储器 75
4.1.2 随机存储器 77
4.2 可编程逻辑器件 79
4.2.1 简单可编程逻辑器件 79
4.2.2 复杂可编程逻辑器件(CPLD) 85
4.2.3 现场可编程门阵列(FPGA) 87
4.3 常用CPLD/FPGA器件 89
4.3.1 Altera公司产品 89
4.3.2 Xilinx公司产品 90
4.3.3 Lattice公司产品 91
习题 92
第5章 Verilog HDL数字设计基础 94
5.1 Verilog HDL简介 94
5.2 语法基本要素 95
5.3 模块的结构 99
5.3.1 模块的介绍 99
5.3.2 模块的调用 101
5.4 数据类型与表达式 102
5.4.1 线网型变量 103
5.4.2 寄存器型变量 106
5.5 运算符 110
5.5.1 操作数 110
5.5.2 Verilog HDL的运算符 112
5.6 赋值语句 115
5.6.1 连续赋值语句 115
5.6.2 线网声明赋值 115
5.6.3 过程赋值语句 116
5.7 结构说明语句 117
5.8 条件语句 117
5.8.1 if-else语句 117
5.8.2 case语句 118
5.9 循环语句 119
5.9.1 forever循环语句 119
5.9.2 repeat循环语句 119
5.9.3 while循环语句 119
5.9.4 for循环语句 120
5.10 块语句 120
5.10.1 顺序语句块 120
5.10.2 并行语句块 121
5.11 结构语句 122
5.11.1 initial语句 122
5.11.2 always语句 123
5.12 系统任务 126
5.12.1 任务 126
5.12.2 任务定义 126
5.12.3 任务调用 127
5.13 函数语句 127
5.13.1 函数定义 128
5.13.2 函数调用 129
5.13.3 函数的使用规则 129
5.13.4 task和function的区别 129
5.14 常用的系统任务和函数 130
5.14.1 $display和$write 131
5.14.2 系统任务$monitor 133
5.14.3 系统函数$time和$realtime 133
5.14.4 系统任务$finish和$stop 134
5.14.5 系统任务$readmem 135
5.14.6 系统任务$random 135
5.14.7 文件输入/输出任务 136
5.15 编译预处理 136
5.15.1 ′define和′undef 137
5.15.2 ′ifdef、′else和′endif 137
5.15.3 ′default_nettype 137
5.15.4 ′include 137
5.15.5 ′resetall 138
5.15.6 ′timescale 138
5.15.7 ′unconnected_drive和′nounconnected_drive 139
习题 140
第6章 Quartus Ⅱ功能及应用 141
6.1 Quartus Ⅱ软件简介及特点 141
6.2 Quartus Ⅱ软件开发流程 141
6.2.1 设计输入 143
6.2.2 综合 143
6.2.3 布局布线 143
6.2.4 编译和配置 144
6.2.5 仿真 144
6.2.6 调试 147
6.2.7 系统级设计 148
6.3 Quartus Ⅱ软件的使用举例 148
6.3.1 创建Quartus Ⅱ工程 148
6.3.2 设计输入 154
6.3.3 工程配置及时序约束 159
6.3.4 编译 161
6.3.5 器件与引脚设定 161
6.3.6 功能仿真 163
6.3.7 时序仿真 166
6.3.8 机器编程和配置 167
6.4 Quartus Ⅱ下载及安装建议 169
第7章 基础应用实例 170
7.1 基本门电路设计实例 170
7.1.1 基本逻辑门 170
7.1.2 三态门电路 172
7.1.3 总线缓冲器 173
7.2 组合逻辑电路设计实例 174
7.2.1 逻辑函数的实现 174
7.2.2 多路数据选择器 176
7.2.3 数据分配器 177
7.2.4 比较器 178
7.2.5 优先编码器 179
7.2.6 3线-8线译码器 181
7.2.7 BCD-七段显示译码器 183
7.2.8 码制转换器 184
7.3 加法器 185
7.3.1 半加器 185
7.3.2 全加器 187
7.4 减法器 188
7.4.1 半减器 188
7.4.2 全减器 189
7.5 时序逻辑电路设计实例 190
7.5.1 触发器 190
7.5.2 计数器 195
7.5.3 寄存器 196
7.5.4 移位寄存器 198
第8章 高级应用实例 200
8.1 投票表决器 200
8.1.1 功能要求 200
8.1.2 设计实现 200
8.1.3 仿真结果 201
8.2 序列信号发生器 201
8.2.1 功能要求 201
8.2.2 设计实现 202
8.2.3 仿真结果 203
8.3 分频器 203
8.3.1 功能要求 203
8.3.2 设计实现 204
8.3.3 仿真结果 204
8.4 交通灯控制器 205
8.4.1 功能要求 205
8.4.2 设计实现 205
8.4.3 仿真结果 208
8.5 颗粒物罐装系统 209
8.5.1 功能要求 209
8.5.2 设计实现 209
8.5.3 仿真结果 210
附录A 参考系统硬件原理图 212
附录B 参考系统管脚对应表 219
参考文献 223