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 Technologies | MOSFET 原理、CMOS 逻辑电路、ROM/PLA/PAL 实现、CPLD、FPGA 结构原理 |
第二部分:时序电路与标准组件(第6-8章)
| 章节 | 主题 | 核心内容 |
|---|---|---|
| 第6章 | Latches and Flip-Flops | 双稳态元件、SR 锁存器、D 锁存器、D 触发器、异步输入、特征表/特征方程/状态图/激励表、时序参数、SR/JK/T 触发器 |
| 第7章 | Sequential Circuits | FSM 模型(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 Microprocessors | EC-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) 模型:
- 数据通路(Datapath):由寄存器、功能单元(ALU/加法器/乘法器等)、多路选择器、三态缓冲组成,负责数据存储与运算
- 控制单元(Control Unit):有限状态机,负责生成控制信号(寄存器加载、多路选择、ALU 操作码等),根据状态信号跳转到下一个状态
- 状态信号(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:输出取决于当前状态 + 当前输入(输出可在输入变化时立即变化)
时序电路分析六步法
- 写出激励方程(触发器输入的布尔表达式)
- 写出次态方程(代入触发器特征方程)
- 构造次态表
- 写出输出方程
- 构造输出表
- 画出状态图
数据通路设计四要素
- 寄存器选择(哪些数据需要存储)
- 功能单元选择(需要哪些运算)
- 数据传输方式(总线结构 vs 点对点连接)
- 状态信号生成(哪些条件判断需要硬件支持)
与 FPGA 开发的关联
这本书虽然以 VHDL 为教学语言,但与 FPGA 开发深度相关:
- 第5章专门讲解 FPGA/CPLD 内部结构(LUT、CLB、可编程互连、IOB)
- 所有设计实例都可以在 FPGA 上实现
- 附录有完整的 Altera UP2 开发板编程教程
- 从”写 VHDL 代码”到”在 FPGA 上跑起来”的完整链路都有覆盖
延伸关联
- 与 FPGA设计概述-培训讲义-1.1 中的 FPGA 原理部分相互印证
- 与 Verilog基础与电路设计-培训讲义-2.1 的数字逻辑与 Verilog 基础形成互补(此书用 VHDL,培训讲义用 Verilog)
- 与 FSM高级状态机设计-培训讲义-4.3 的 FSM 设计方法完全一致,此书讲解更系统深入
- 与 Nios II处理器与SOPC Builder设计-培训讲义-3 中的软核处理器概念呼应,此书从底层自己构建微处理器,Nios II 是现成的软核
学习路径建议
初学者按章节顺序学习:
- 第1-2章:建立数字逻辑基础概念
- 第3-4章:掌握组合电路设计与标准组件
- 第6-8章:理解时序电路与时序组件
- 第9-10章:学会数据通路 + 控制单元的系统设计方法
- 第11-12章:亲手构建专用和通用微处理器,体验”从门到CPU”的完整过程
有基础者可直接跳到第9-12章,重点掌握 FSMD 设计方法论。