Digital Logic and Microprocessor Design with VHDL

作者:Enoch O. Hwang(La Sierra University, Riverside) 出版社:Brooks/Cole 2007,ISBN: 0-534-47-422-6 513页,12章 + 4个附录

核心定位

这是一本从数字逻辑门到完整微处理器设计的系统级教材,独特之处在于:

  • 一条主线贯穿到底:从最基础的二进制、逻辑门,到组合电路、时序电路、数据通路、控制单元,最终亲手构建一个通用微处理器(EC-1/EC-2)
  • VHDL 全程实践:每一章都有对应的 VHDL 代码示例(结构级/数据流级/行为级三种建模风格),理论与实现紧密结合
  • 自底向上 + 自顶向下:先讲底层电路(晶体管→门→触发器),再上升到抽象层次(FSM→数据通路→控制单元→微处理器),两条路线相互印证
  • 配套实验教程:附录包含 MAX+plus II 原理图输入、VHDL 输入、UP2 开发板编程三个完整实验教程

全书知识体系

第一部分:数字逻辑基础(第1-5章)

章节主题核心内容
第1章Designing Microprocessors微处理器概述、设计抽象层级(行为级/门级/晶体管级)、VHDL 简介、综合概念
第2章Digital Circuits二进制数、基本逻辑运算、真值表、布尔代数、最小项/最大项、标准形式、逻辑门电路、汽车安防系统实例
第3章Combinational Circuits组合电路分析与综合、卡诺图化简、时序冒险与毛刺、BCD-七段译码器、三种 VHDL 建模风格(结构/数据流/行为)
第4章Standard Combinational Components加法器(全加器/行波进位/超前进位)、补码、ALU、译码器、编码器、多路选择器、三态缓冲、比较器、移位器、桶形移位器、乘法器
第5章Implementation TechnologiesMOSFET 原理、CMOS 逻辑电路、ROM/PLA/PAL 实现、CPLD、FPGA 结构原理

第二部分:时序电路与标准组件(第6-8章)

章节主题核心内容
第6章Latches and Flip-Flops双稳态元件、SR 锁存器、D 锁存器、D 触发器、异步输入、特征表/特征方程/状态图/激励表、时序参数、SR/JK/T 触发器
第7章Sequential CircuitsFSM 模型(Moore/Mealy)、状态图、时序电路分析(6步法:激励方程→次态方程→次态表→输出方程→输出表→状态图)、时序电路综合、状态编码优化、状态化简
第8章Standard Sequential Components寄存器、移位寄存器(串入并出/并入串出)、计数器(二进制/BCD/加减/并行加载)、寄存器堆、SRAM 存储器

第三部分:数字系统设计(第9-12章)

章节主题核心内容
第9章Datapaths专用数据通路设计(寄存器选择/功能单元/数据传输方法/状态信号生成)、通用数据通路、时序问题、VHDL 实现
第10章Control Units控制单元构造、实例(计数/求和)、独立控制器(旋转灯/PS/2键盘/VGA显示器)、ASM 图与状态动作表、VHDL 实现
第11章Dedicated Microprocessors专用微处理器手动构建、GCD/猜数字/找最大值等实例、三种 VHDL 建模:FSM+D 模型、FSMD 模型、行为模型
第12章General-Purpose MicroprocessorsEC-1 通用微处理器:指令集→数据通路→控制单元→完整电路→示例程序→仿真→硬件实现;EC-2:扩展指令集与更复杂数据通路;结构级 FSM+D 与行为级 FSMD 两种 VHDL 实现

附录

  • 附录A:原理图输入教程(MAX+plus II)
  • 附录B:VHDL 输入教程(MAX+plus II)
  • 附录C:UP2 开发板编程教程(ByteBlaster 驱动、引脚分配、硬件测试、EPM7128S 器件总结)
  • 附录D:VHDL 语法速查(ENTITY、ARCHITECTURE、PROCESS、PACKAGE、COMPONENT、GENERIC 等)

核心设计方法学

设计抽象三层模型

行为级 (Behavioral)  → 描述功能,不关心结构
    ↓ 综合
寄存器传输级 (RTL)  → 数据通路 + 控制单元(FSMD)
    ↓ 综合
门级 (Gate Level)   → 逻辑门与触发器互连
    ↓ 技术映射
晶体管级 (Transistor) → CMOS 物理实现

FSMD 设计方法

全书最核心的设计方法论是 FSM + Datapath(FSMD) 模型:

  1. 数据通路(Datapath):由寄存器、功能单元(ALU/加法器/乘法器等)、多路选择器、三态缓冲组成,负责数据存储与运算
  2. 控制单元(Control Unit):有限状态机,负责生成控制信号(寄存器加载、多路选择、ALU 操作码等),根据状态信号跳转到下一个状态
  3. 状态信号(Status Signals):数据通路产生的反馈信号(零标志、进位、比较结果等),供控制单元做决策

设计流程:算法/伪代码 → 确定数据通路(寄存器+功能单元) → 确定控制信号 → 构建 FSM 状态图 → VHDL 实现

VHDL 三种建模风格对照

风格特点适用场景
结构级 (Structural)组件实例化 + 端口映射,最接近硬件顶层电路组装、已知精确结构
数据流级 (Dataflow)并行赋值语句(when-else, with-select)组合电路、数据通路
行为级 (Behavioral)process + if/case 顺序语句控制单元、FSM、复杂算法

关键概念速查

组合电路 vs 时序电路

  • 组合电路:输出仅取决于当前输入,无记忆(加法器、译码器、多路选择器)
  • 时序电路:输出取决于当前输入 + 历史状态,有记忆(触发器、计数器、FSM)

Moore vs Mealy

  • Moore FSM:输出仅取决于当前状态(输出与时钟同步)
  • Mealy FSM:输出取决于当前状态 + 当前输入(输出可在输入变化时立即变化)

时序电路分析六步法

  1. 写出激励方程(触发器输入的布尔表达式)
  2. 写出次态方程(代入触发器特征方程)
  3. 构造次态表
  4. 写出输出方程
  5. 构造输出表
  6. 画出状态图

数据通路设计四要素

  1. 寄存器选择(哪些数据需要存储)
  2. 功能单元选择(需要哪些运算)
  3. 数据传输方式(总线结构 vs 点对点连接)
  4. 状态信号生成(哪些条件判断需要硬件支持)

与 FPGA 开发的关联

这本书虽然以 VHDL 为教学语言,但与 FPGA 开发深度相关:

  • 第5章专门讲解 FPGA/CPLD 内部结构(LUT、CLB、可编程互连、IOB)
  • 所有设计实例都可以在 FPGA 上实现
  • 附录有完整的 Altera UP2 开发板编程教程
  • 从”写 VHDL 代码”到”在 FPGA 上跑起来”的完整链路都有覆盖

延伸关联

学习路径建议

初学者按章节顺序学习:

  1. 第1-2章:建立数字逻辑基础概念
  2. 第3-4章:掌握组合电路设计与标准组件
  3. 第6-8章:理解时序电路与时序组件
  4. 第9-10章:学会数据通路 + 控制单元的系统设计方法
  5. 第11-12章:亲手构建专用和通用微处理器,体验”从门到CPU”的完整过程

有基础者可直接跳到第9-12章,重点掌握 FSMD 设计方法论。