第1章 概述 1
1.1 计算机系统概述 1
1.1.1 计算机系统的组成 1
1.1.2 计算机存储结构类型 5
1.1.3 计算机指令集类型 6
1.1.4 单周期、多周期和流水线处理器 6
1.2 嵌入式系统与软硬件协作设计 8
1.2.1 嵌入式系统概述 8
1.2.2 SoC技术及其发展 9
1.2.3 软硬件协同设计 10
1.3 目标系统MiniSys概述 11
思考题 12
第2章 MiniSysCPU设计 14
2.1 MiniSysCPU结构 14
2.1.1 MiniSysCPU体系结构 14
2.1.2 MiniSysCPU的寄存器组 16
2.1.3 MiniSys的指令系统 18
2.1.4 MiniSys指令执行过程分析 32
2.2 MiniSysCPU设计 40
2.2.1 取指单元的设计 41
2.2.2 控制单元的设计 44
2.2.3 译码单元及寄存器组的设计 45
2.2.4 执行单元的设计 50
2.2.5 存储单元的设计 56
2.2.6 顶层文件的设计 58
思考题 61
第3章 MiniSys接口部件设计 62
3.1 I/O接口模块设计 62
3.1.1 I/O端口地址与I/O地址空间设计 62
3.1.2 MiniSysBus与总线控制模块设计 64
3.2 中断模块设计 68
3.2.1 MiniSys的中断系统 68
3.2.2 中断控制逻辑的设计 70
3.3 常规接口部件的设计 71
3.3.1 4位7段LED数码管控制器 71
3.3.2 4×4键盘控制器 74
3.3.3 定时/计数器 77
3.3.4 PWM控制器 84
3.3.5 UART串行通信控制器 86
3.3.6 看门狗控制器 92
思考题 95
第4章 BIOS设计 96
4.1 堆栈的实现 96
4.2 BIOS的基本功能 97
4.2.1 BIOS及其基本功能 97
4.2.2 BIOS程序的设计 97
4.3 BIOS基本功能设计 99
4.3.1 初始化模块 99
4.3.2 7段LED数码管显示模块 100
4.3.3 键盘功能模块 102
思考题 106
第5章 汇编器的设计 107
5.1 MiniSys汇编语言程序设计 107
5.1.1 汇编伪指令 107
5.1.2 汇编程序结构 109
5.1.3 中断处理程序设计 110
5.1.4 MiniSys程序编程还需注意的问题 111
5.2 MiniSys汇编语言汇编器 112
5.2.1 MiniSys汇编基础 113
5.2.2 一个简易汇编器程序 114
思考题 143
第6章 综合测试与验证 145
6.1 测试方法简介 145
6.2 对CPU正确性的测试与验证 146
6.3 对接口部件的测试与验证 153
6.3.1 LED数码管控制器的测试与验证 153
6.3.2 4×4键盘控制器的测试与验证 154
6.3.3 定时/计数器的测试与验证 154
6.3.4 PWM控制器的测试与验证 156
6.3.5 UART串行通信控制器的测试与验证 157
6.3.6 看门狗控制器的测试与验证 158
6.3.7 与CPU联合测试与验证 159
6.4 软件系统的测试与验证 165
思考题 169
第7章 高级设计讨论 170
7.1 流水线CPU设计 170
7.1.1 流水线的概念 170
7.1.2 流水线设计中需解决的关键问题 175
7.1.3 流水线的设计 178
7.2 乘法和除法运算单元设计 180
7.2.1 乘除法指令的扩展与寄存器设置 180
7.2.2 乘法运算单元的设计 181
7.2.3 除法运算单元的设计 182
7.3 浮点运算单元设计 185
7.3.1 IEEE 754浮点标准 185
7.3.2 数据类型与寄存器扩展 186
7.3.3 浮点指令级的扩展 186
7.4 Mini C编译器的设计 188
7.4.1 MiniC简介 188
7.4.2 词法分析工具 190
7.4.3 语法分析工具 205
7.4.4 编译器设计 216
思考题 223
第8章 Verilog HDL语言基础 224
8.1 Verilog HDL设计初步 224
8.1.1 Verilog HDL设计流程简介 224
8.1.2 Verilog HDI.语言与C语言的比较 225
8.1.3 基本的VerilogHDL模块 225
8.2 Verilog语言要素 229
8.2.1 词法 229
8.2.2 数据类型 232
8.2.3 寄存器和存储器 234
8.3 Verilog HDL行为语句 234
8.3.1 过程语句 235
8.3.2 语句块 238
8.3.3 赋值语句 239
8.3.4 高级程序语句 241
8.4 有限状态机 246
8.4.1 有限状态机的基本概念 246
8.4.2 用Verilog HDL语言设计有限状态机 250
8.5 Verilog HDL的描述风格 256
8.5.1 门级描述方式 256
8.5.2 数据流描述方式 260
8.5.3 行为描述方式 260
思考题 261
附录A Quartus Ⅱ工具的使用 262
A.1 Quartus Ⅱ简介 262
A.2 Quartus Ⅱ设计流程 262
A.2.1 使用图形设计芯片 263
A.2.2 使用Verilog语言进行设计 275
A.2.3 顶层文件的设计 277
A.2.4 器件编程(芯片下载) 281
附录B “计算机系统综合设计”设计报告 283
参考文献 288