| 作者 |
| (美)约翰·F. 韦克利(John F. Wakerly) |
| 丛书名 |
| 国外电子与电气工程技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111599418 |
| 简要 |
| 简介 |
| 内容简介 本书是数字设计领域的经典教材,是作者牢固的理论功底、严谨的学术风范与丰富的实践经验的完美融合。本书第5版是作者经过十年的实践积累,在第4版的基础上从原理和实践两个方面全面讲述了数字设计的概念、理论、方法,以及最新的技术和实践。原理方面涵盖高级(HDL)、低级(电子电路)以及“广泛中间级”(门电路、触发器和一些较高级的数字设计构件)的多层次基础知识,更加方便不同专业的教学内容选取;实践方面专注于Verilog一种实现语言,强调基于FPGA的设计,并且添加了更多应用实例。 |
| 目录 |
| 第1章 引言 1 1.1 关于数字设计 1 1.2 模拟与数字 3 1.3 模拟信号 7 1.4 数字逻辑信号 7 1.5 逻辑电路与门电路 9 1.6 数字设计的软件方面 13 1.7 集成电路 16 1.8 逻辑序列与CMOS 19 1.9 CMOS逻辑电路 20 1.10 可编程器件 25 1.11 专用集成电路 27 1.12 印制电路板 28 1.13 数字设计层次 29 1.14 数字设计的重要目标 33 1.15 继续学习 34 训练题 34 第2章 数制系统和编码 35 2.1 按位计数制系统 36 2.2 二进制、八进制和十六进制 37 2.3 二进制与十进制的转换 39 2.4 二进制数的加法和减法 42 2.5 负数的表示 44 2.5.1 符号–数值表示法 2.5.2 补码数制系统 2.5.3 二进制补码表示法 2.5.4 二进制反码表示法 2.5.5 余码表示法 2.6 二进制补码的加法和减法 48 2.6.1 加法规则 2.6.2 图示法 2.6.3 溢出 2.6.4 减法规则 2.6.5 二进制补码与无符号二进制数 2.7 二进制反码的加法和减法 52 2.8 二进制乘法 54 2.9 二进制除法 56 2.10 十进制数的二进制编码 57 2.11 格雷码 60 2.12 字符编码 62 2.13 动作、条件和状态的编码 64 2.14 n维体与距离 66 2.15 检错码和纠错码 67 2.15.1 检错码 2.15.2 纠错码与多重检错码 2.15.3 汉明码 2.15.4 循环冗余校验码 2.15.5 二维码 2.15.6 校验和码 2.15.7 n中取m码 2.16 用于串行数据传输与存储的编码 78 2.16.1 并行/串行数据 2.16.2 串行线路编码 参考资料 82 训练题 83 练习题 85 第3章 开关代数和组合逻辑 89 3.1 开关代数 91 3.1.1 公理 3.1.2 单变量定理 3.1.3 二变量定理和三变量定理 3.1.4 n变量定理 3.1.5 对偶性 3.1.6 逻辑函数的标准表示法 3.2 组合电路分析 104 3.3 组合电路综合 110 3.3.1 电路描述与设计 3.3.2 电路处理 3.3.3 组合电路最小化 3.3.4 卡诺图 3.4 定时冒险 122 3.4.1 静态冒险 3.4.2 利用卡诺图发现静态冒险 3.4.3 动态冒险 3.4.4 设计无冒险电路 参考资料 126 训练题 128 练习题 129 第4章 数字设计实践 133 4.1 文档标准 133 4.1.1 方框图 4.1.2 门电路符号 4.1.3 信号名和有效电平 4.1.4 引脚的有效电平 4.1.5 圈到圈逻辑设计 4.1.6 HDL程序中的信号命名 4.1.7 绘制布局图 4.1.8 总线 4.1.9 附加图示信息 4.2 电路定时 154 4.2.1 定时图 4.2.2 传输延迟 4.2.3 定时规格说明 4.2.4 采样定时规格说明 4.2.5 定时分析工具 4.3 基于HDL的数字设计 165 4.3.1 HDL的历史 4.3.2 为什么用HDL 4.3.3 HDL的EDA工具套件 4.3.4 基于HDL的设计流程 参考资料 172 训练题 174 练习题 176 第5章 Verilog硬件描述语言 177 5.1 Verilog模型和模块 179 5.2 逻辑系统、网格、变量和常量 184 5.3 向量和操作符 189 5.4 数组 193 5.5 逻辑操作符和表达式 194 5.6 编译器指令 197 5.7 结构化模型 198 5.8 数据流模型 203 5.9 行为化模型(过程代码) 205 5.9.1 always语句和程序块 5.9.2 过程语句 5.9.3 推理出的锁存器 5.9.4 赋值语句 5.9.5 begin-end程序块 5.9.6 if和if-else语句 5.9.7 case语句 5.9.8 循环语句 5.10 函数和任务 220 5.11 时间维度 224 5.12 模拟 225 5.13 测试平台 226 5.14 时序逻辑设计的Verilog特性 232 5.15 综合 232 参考资料 233 训练题 234 练习题 235 第6章 基本组合逻辑元件 237 6.1 只读存储器 240 6.1.1 ROM和真值表 6.1.2 ROM用于随机组合逻辑函数 6.1.3 FPGA查询表 6.2 组合PLD 246 6.2.1 可编程逻辑阵列 6.2.2 可编程阵列逻辑器件 6.3 译码器和选择器 250 6.3.1 更加“数学化”的译码器定义 6.3.2 二进制译码器 6.3.3 大型译码器 6.3.4 用Verilog实现译码器 6.3.5 定制的译码器 6.3.6 七段译码器 6.3.7 二进制编码器 6.4 多路复用器 281 6.4.1 门级多路复用器电路 6.4.2 扩展的多路复用器 6.4.3 多路复用器、多路分配器和总线 6.4.4 用Verilog实现多路复用器 参考资料 294 训练题 295 练习题 296 第7章 其他组合构件 301 7.1 三态器件 302 7.1.1 三态缓冲器 7.1.2 标准MSI三态缓冲器 7.1.3 用Verilog实现三态输出 7.1.4 用FPGA实现三态输出 7.2 优先编码器 312 7.2.1 级联优先编码器 7.2.2 用Verilog实现优先编码器 7.3 异或门和奇偶校验函数 320 7.3.1 异或门和异或非门 7.3.2 奇偶电路 7.3.3 奇偶校验的应用 7.3.4 用Verilog实现异或门和奇偶电路 7.4 比较器 331 7.4.1 比较器的结构 7.4.2 迭代电路 7.4.3 迭代比较器电路 7.4.4 数值比较器 7.4.5 用HDL实现比较器 7.4.6 用Verilog实现比较器 7.4.7 比较器测试平台 7.4.8 比较器的性能测评 7.5 用Verilog实现随机逻辑的例子 356 训练题 363 练习题 364 第8章 组合算术元件 371 8.1 加法和减法 372 8.1.1 半加器和全加器 8.1.2 行波进位加法器 8.1.3 减法器 8.1.4 先行进位加法器 8.1.5 组间行波进位加法器 8.1.6 组间先行进位 8.1.7 MSI算术和逻辑单元 8.1.8 用Verilog实现加法器 8.1.9 并行前缀加法器 8.1.10 FPGA CARRY4元件 8.2 移位和循环 403 8.2.1 桶形移位器 8.2.2 用Verilog实现桶形移位器 8.3 乘法 416 8.3.1 组合乘法器的结构 8.3.2 用Verilog实现乘法 8.4 除法 426 8.4.1 基本无符号二进制除法算法 8.4.2 用Verilog实现除法 参考资料 433 训练题 433 练习题 434 第9章 状态机 439 9.1 状态机基础知识 440 9.2 状态机结构和分析 443 9.2.1 状态机结构 9.2.2 输出逻辑 9.2.3 状态机定时 9.2.4 采用D触发器的状态机分析 9.3 用状态表设计状态机 445 9.3.1 状态表设计举例 9.3.2 状态最小化 9.3.3 状态赋值 9.3.4 采用D触发器综合 9.3.5 状态表之外 9.4 用状态图设计状态机 472 9.4.1 雷鸟车尾灯举例 9.5 用ASM图设计状态机 478 9.5.1 用ASM图实现雷鸟车尾灯 9.6 用Verilog实现状态机设计 483 参考资料 486 训练题 487 练习题 490 第10章 时序逻辑元件 495 10.1 双稳态元件 496 10.1.1 数字分析 10.1.2 模拟分析 10.1.3 亚稳态特性 10.2 锁存器和触发器 499 10.2.1 S - R锁存器 10.2.2 –S - –R锁存器 10.2.3 D锁存器 10.2.4 边沿触发D触发器 10.2.5 带有使能端的边沿触发D触发器 10.2.6 T触发器 10.3 用Verilog实现锁存器和触发器 508 10.3.1 实例化语句和库组件 10.3.2 行为化锁存器和触发器模型 10.3.3 更多关于用Verilog实现时钟的讨论 10.4 多位寄存器和锁存器 522 10.4.1 MSI寄存器和锁存器 10.4.2 用Verilog实现多位寄存器和锁存器 10.5 锁存器和双稳态的应用 525 10.5.1 开关消颤 10.5.2 总线保持电路 10.6 时序型PLD 528 10.7 FPGA时序逻辑元件 531 10.8 反馈时序电路 534 10.8.1 基本分析 10.8.2 用多反馈回路分析电路 10.8.3 反馈时序电路设计 10.8.4 用Verilog实现反馈时序电路 参考资料 544 训练题 545 练习题 547 第11章 计数器和移位寄存器 553 11.1 计数器 554 11.1.1 行波计数器 11.1.2 同步计数器 11.1.3 4位通用计数器电路 11.1.4 二进制计数器状态译码 11.1.5 用Verilog实现计数器 11.2 移位寄存器 566 11.2.1 移位寄存器结构 11.2.2 移位寄存器型计数器 11.2.3 环形计数器 11.2.4 Johnson计数器 11.2.5 线性反馈移位寄存器型计数器 11.2.6 用Verilog实现移位寄存器 11.2.7 定时发生器举例 11.2.8 LFSR举例 11.3 迭代电路与时序电路 593 参考资料 596 训练题 596 练习题 599 第12章 用Verilog实现状态机 605 12.1 Verilog状态机编码风格 606 12.1.1 基本编码风格 12.1.2 Verilog状态机举例 12.1.3 组合状态存储器和次态逻辑 12.1.4 复位输入 12.1.5 用Verilog实现流水线的Moore输出 12.1.6 不用状态表的直接Verilog编码 12.1.7 状态机的抽取 12.2 Verilog状态机测试平台 616 12.2.1 状态机测试平台的构建方法 12.2.2 测试平台举例 12.2.3 配置用于测试的次态逻辑 12.2.4 总结 12.3 1计数器 626 12.4 组合锁 628 12.5 雷鸟车尾灯 632 12.6 重新构建交通灯控制器 637 12.7 猜谜游戏 642 12.8 “无关”状态编码 646 12.9 状态机的分解 648 12.9.1 猜谜游戏的再讨论 12.10 “三部曲”游戏 656 参考资料 664 训练题 664 练习题 666 第13章 时序电路设计实践 673 13.1 时序电路文档实践 674 13.1.1 一般要求 13.1.2 逻辑符号 13.1.3 状态机描述 13.1.4 定时图和定时规格说明 13.2 同步设计方法论 681 13.2.1 同步系统结构 13.2.2 同步系统设计举例 13.3 同步设计的难点 691 13.3.1 时钟偏移 13.3.2 选通时钟 13.3.3 异步输入 13.4 同步器故障和亚稳定性 701 13.4.1 同步器故障 13.4.2 亚稳定性分辨时间 13.4.3 可靠同步器设计 13.4.4 亚稳定的定时分析 13.4.5 优质同步器 13.4.6 其他同步器设计 13.5 双时钟同步举例 710 参考资料 729 训练题 729 练习题 730 第14章 数字电路 733 14.1 CMOS逻辑电路 735 14.1.1 CMOS逻辑电平 14.1.2 MOS晶体管 14.1.3 基本CMOS反相器电路 14.1.4 CMOS与非门和异或门 14.1.5 扇入 14.1.6 非反相门 14.1.7 CMOS与或非门和或与非门 14.2 CMOS电路的电气特性 745 14.2.1 概述 14.2.2 数据表和规格说明 14.3 CMOS的稳态电气特性 748 14.3.1 逻辑电平和噪声容限 14.3.2 带电阻性负载的电路特性 14.3.3 非理想输入时的电路特性 14.3.4 扇出 14.3.5 负载效应 14.3.6 不用的输入端 14.3.7 CMOS器件是如何损坏的 14.4 CMOS的动态电气特性 764 14.4.1 转换时间 14.4.2 传输延迟 14.4.3 功率损耗 14.4.4 电流尖峰与去耦合电容 14.4.5 电感效应 14.4.6 同时切换和地电平弹跳 14.5 其他CMOS输入和输出结构 778 14.5.1 传输门 14.5.2 施密特触发器输入 14.5.3 三态输出 14.5.4 漏极开路输出 14.5.5 驱动LED及延迟 14.5.6 多源总线 14.5.7 线连逻辑 14.5.8 上拉电阻 14.6 CMOS逻辑系列 790 14.6.1 HC和HCT 14.6.2 AHC和AHCT 14.6.3 HC、HCT、AHC和AHCT的电气特性 14.6.4 AC和ACT 14.6.5 FCT和FCT-T 14.7 低电压CMOS逻辑和接口 798 14.7.1 3.3V LVTTL和LVCMOS的逻辑电平 14.7.2 5V容限输入 14.7.3 5V容限输出 14.7.4 TTL/LVTTL 接口小结 14.7.5 低于3.3V的逻辑电平 14.8 差分信号 803 参考资料 804 训练题 805 练习题 808 第15章 ROM、RAM和FPGA 813 15.1 只读存储器 814 15.1.1 ROM的内部结构 15.1.2 二维译码器 15.1.3 商用ROM的类型 15.1.4 并行ROM的接口 15.1.5 并行ROM的定时 15.1.6 与非闪存的字节串行接口 15.1.7 与非存储器的定时和访问带宽 15.1.8 与非存储器的存储管理 15.2 读/写存储器 833 15.3 静态RAM 834 15.3.1 静态RAM的输入和输出 15.3.2 静态RAM的内部结构 15.3.3 静态RAM的定时 15.3.4 标准异步SRAM 15.3.5 同步SRAM 15.4 动态RAM 844 15.4.1 动态RAM的结构 15.4.2 SDRAM的定时 15.4.3 DDR SDRAM 15.5 现场可编程门阵列 851 15.5.1 Xilinx 7系列的FPGA 15.5.2 CLB和其他逻辑资源 15.5.3 输入/输出块 15.5.4 可编程互连 参考资料 863 训练题 864 |