第1章 数字系统设计概述 1
1.1 数字系统的基本概念 1
1.2 数字系统的设计方法 4
1.2.1 三类常用芯片 4
1.2.2 数字系统的设计过程 5
1.3 EDA技术基础 7
1.3.1 硬件描述语言HDL 8
1.3.2 EDA软件开发工具 10
1.3.3 EDA芯片的设计开发流程 11
习题 12
第2章 数字技术基础 13
2.1 数制与编码 13
2.1.1 进位计数制 13
2.1.2 数制转换 15
2.1.3 几种常用的编码 17
2.2 逻辑代数 20
2.2.1 基本逻辑运算 20
2.2.2 复合逻辑运算 23
2.2.3 逻辑函数 27
2.2.4 逻辑代数的基本定律、规则和公式 30
2.2.5 逻辑函数的标准形式 32
2.3 逻辑函数的化简 35
2.3.1 代数法化简逻辑函数 36
2.3.2 卡诺图法(图解法)化简逻辑函数 38
2.3.3 含有任意项的逻辑函数化简 46
2.4 逻辑门电路 48
2.4.1 逻辑门电路概述 48
2.4.2 TTL集成逻辑门 52
2.4.3 CMOS电路 60
习题 66
第3章 Verilog HDL语法基础 70
3.1 Verilog HDL程序的基本结构 70
3.1.1 Verilog HDL设计风格 70
3.1.2 Verilog HDL模块结构 73
3.2 Verilog HDL基本语法 76
3.2.1 分隔符、标识符和关键字 76
3.2.2 常量 77
3.2.3 变量 80
3.3 Verilog HDL运算符 83
3.4 Verilog HDL常用建模方式 88
3.4.1 Verilog HDL门级建模 88
3.4.2 Verilog HDL数据流建模 91
3.4.3 Verilog HDL行为建模 93
3.5 模块化的电路设计 100
3.5.1 分层次电路设计 100
3.5.2 任务和函数的使用 102
3.5.3 编译预处理命令 104
习题 106
第4章 组合逻辑电路 108
4.1 组合逻辑电路概述 108
4.2 组合逻辑电路分析 108
4.2.1 组合逻辑电路分析方法 108
4.2.2 简单组合逻辑电路分析举例 109
4.3 组合逻辑电路设计 111
4.3.1 用中小规模集成电路设计组合逻辑电路 112
4.3.2 用Verilog HDL设计组合逻辑电路的方法 112
4.3.3 组合逻辑电路设计举例 113
4.4 常用组合逻辑电路 121
4.4.1 加法器 121
4.4.2 编码器 126
4.4.3 译码器 132
4.4.4 数据选择器和数据分配器 144
4.4.5 数值比较器 153
4.4.6 奇偶产生/校验电路 157
4.5 组合电路中的竞争与险象 161
4.5.1 竞争与险象的概念 161
4.5.2 险象分类 162
4.5.3 险象的判别 164
4.5.4 险象的消除 165
习题 167
第5章 时序逻辑电路 170
5.1 时序逻辑电路概述 170
5.1.1 时序逻辑电路的特点 170
5.1.2 时序逻辑电路的分类 171
5.2 集成触发器 171
5.2.1 触发器的工作原理 172
5.2.2 常用触发器 176
5.2.3 各种类型触发器的相互转换 189
5.3 时序逻辑电路分析 191
5.3.1 同步时序逻辑电路分析 192
5.3.2 异步时序逻辑电路分析 195
5.4 时序逻辑电路的设计方法 198
5.4.1 同步时序逻辑电路的传统设计方法 199
5.4.2 异步时序逻辑电路的传统设计方法 213
5.4.3 用Verilog HDL描述时序逻辑电路 216
5.5 常用时序电路及其应用 222
5.5.1 计数器 222
5.5.2 寄存器 243
习题 262
第6章 可编程逻辑器件 267
6.1 可编程逻辑器件概述 267
6.1.1 可编程逻辑器件的概念 267
6.1.2 可编程逻辑器件的发展历程 268
6.1.3 可编程逻辑器件的分类 269
6.2 PLD的编程元件 270
6.2.1 熔丝型开关 270
6.2.2 浮栅型编程元件 271
6.2.3 SRAM编程元件 274
6.3 简单PLD的原理与结构 275
6.3.1 PLD的阵列图符号 275
6.3.2 可编程逻辑阵列PLA 277
6.3.3 可编程阵列逻辑PAL 278
6.3.4 通用阵列逻辑GAL 280
6.4 复杂可编程逻辑器件CPLD 282
6.4.1 CPLD的原理与结构 282
6.4.2 CPLD器件实例 283
6.5 现场可编程门阵列FPGA 288
6.5.1 FPGA的原理与结构 288
6.5.2 FPGA器件实例 290
6.6 CPLD和FPGA的编程 299
6.6.1 在系统可编程技术 299
6.6.2 JTAG边界扫描测试技术 301
习题 305
第7章 Verilog HDL综合设计实例 307
7.1 分频器的设计 307
7.1.1 偶数分频器 307
7.1.2 奇数分频器 311
7.1.3 半整数分频器 315
7.2 乐曲播放器 317
7.2.1 时钟信号发生器模块 318
7.2.2 音频产生器模块 319
7.2.3 乐曲存储模块 322
7.2.4 乐曲控制模块 330
7.2.5 乐曲播放器顶层模块 331
7.3 电子表 332
7.3.1 时钟调校及计时模块 332
7.3.2 整数分频模块 335
7.3.3 时钟信号选择模块 336
7.3.4 七段显示模块 337
7.3.5 顶层模块的实现 339
7.4 VGA控制器 339
7.4.1 VGA显示原理 339
7.4.2 VGA控制信号发生器 342
7.4.3 像素点RGB数据输出模块 354
7.4.4 顶层模块的设计与实现 355
7.4.5 RGB模拟信号的产生 357
7.5 简单模型机设计 357
7.5.1 指令系统设计 357
7.5.2 数据通路设计 362
7.5.3 系统各功能模块设计 364
7.5.4 指令时序设计 374
7.5.5 控制器设计 378
习题 391
第8章 QuartusⅡ开发环境简介 392
8.1 QuartusⅡ简介 392
8.1.1 Quartus软件的版本 392
8.1.2 QuartusⅡ软件的主要特性 392
8.1.3 QuartsⅡ软件的开发流程 393
8.2 QuartusⅡ开发环境的建立 396
8.2.1 系统配置要求 396
8.2.2 QuartusⅡ软件的下载 396
8.2.3 QuartusⅡ软件的安装 397
8.2.4 安装下载线缆驱动程序 400
8.3 QuartusⅡ软件的开发过程 402
8.3.1 建立新项目 402
8.3.2 设计输入 407
8.3.3 编译 412
8.3.4 功能仿真 413
8.3.5 时序仿真 420
8.3.6 工程配置及引脚分配 421
8.3.7 器件编程和配置 426
习题 429
参考文献 430