第1章 概述 1
1.1 EDA技术及其优势 1
1.2面向FPGA的数字系统开发流程 2
1.2.1设计输入 3
1.2.2综合 3
1.2.3适配(布线布局) 4
1.2.4仿真 4
1.3可编程逻辑器件 5
1.4 FPGA的结构与工作原理 6
1.4.1查找表逻辑结构 6
1.4.2 Cyclone Ⅲ系列器件的结构原理 7
1.5硬件描述语言 9
1.6 Quartus Ⅱ 10
1.7 CISC和RISC处理器 11
1.8 FPGA在现代计算机领域中的应用 13
第2章 系统设计与测试基础 15
2.1原理图输入设计方法的特点 15
2.2原理图输入方式基本设计流程 16
2.2.1建立工作库文件夹和存盘原理图空文件 16
2.2.2创建工程 17
2.2.3功能初步分析 19
2.2.4编译前设置 20
2.2.5全程编译 21
2.2.6时序仿真测试电路功能 22
2.3引脚设置和编程下载 24
2.3.1引脚锁定 24
2.3.2配置文件下载 25
2.3.3 JTAG间接编程模式 26
2.3.4 USB-Blaster编程配置器安装方法 28
2.4层次化设计 28
2.5 SignalTap Ⅱ的使用方法 31
习题 35
实验与设计 35
第3章CPU宏功能模块调用方法 38
3.1计数器宏模块调用 38
3.1.1调用LPM计数器及参数设置 38
3.1.2对计数器进行仿真测试 39
3.2寄存器与锁存器的调用 40
3.2.1基于D触发器的寄存器的调用 40
3.2.2基于锁存器的寄存器的调用 41
3.3 ROM/RAM宏模块的调用与测试 41
3.3.1存储器初始化文件 42
3.3.2 ROM宏模块的调用 44
3.3.3 ROM宏模块的测试 45
3.3.4 LPM存储器在系统读写方法 46
3.3.5 RAM宏模块的调用 47
3.3.6 RAM宏模块的测试 48
3.4信号在系统测试与控制编辑器用法 49
3.5嵌入式锁相环使用方法 52
实验与设计 54
第4章 计算机功能模块的原理与设计 57
4.1 CPU基本功能与结构 57
4.2计算机中的基本部件 59
4.2.1算术逻辑单元 59
4.2.2数据缓冲寄存器 61
4.2.3移位运算器 61
4.2.4程序存储器与数据存储器 63
4.2.5程序计数器与地址寄存器 63
4.2.6指令寄存器 65
4.2.7微程序控制器 65
4.2.8微程序控制器电路结构 68
4.2.9时序发生器 71
4.3数据通路设计 73
4.3.1模型计算机的数据通路 73
4.3.2模型机的电路结构 74
习题 75
实验与设计 75
第5章8位模型计算机原理与设计 82
5.1 8位模型CPU结构 82
5.2指令系统结构及其功能的确定 85
5.2.1模型机指令系统 85
5.2.2拟定指令流程和微命令序列 86
5.2.3微程序设计方法 89
5.3 CPU硬件系统设计 91
5.3.1 CPU顶层设计 92
5.3.2取指令和指令译码 98
5.3.3设计微代码表 100
5.3.4建立数据与控制通路 100
5.3.5控制执行单元 101
5.3.6在模型机中运行软件 102
5.3.7模型机整机系统时序仿真 104
5.3.8模型机系统硬件功能测试 106
5.4具有移位功能的CPU设计 110
5.4.1移位运算器与ALU的结合设计 110
5.4.2测试程序设计和模型机时序仿真 113
5.5含更多指令的模型机设计 115
5.5.1指令系统的格式与指令 116
5.5.2微程序控制流程图设计 117
5.5.3程序编辑与系统仿真 119
习题 120
实验与设计 121
第6章16位实用CPU原理与创新设计 132
6.1 KX9016结构原理及其特色 132
6.2 KX9016基本硬件系统设计 134
6.2.1单步节拍发生模块 136
6.2.2运算器ALU 136
6.2.3比较器COMP 137
6.2.4基本寄存器与寄存器阵列组 138
6.2.5移位器 140
6.2.6程序与数据存储器 141
6.3指令系统设计 141
6.3.1指令格式 142
6.3.2指令操作码 143
6.3.3软件设计实例 144
6.3.4 KX9016v1控制器设计 146
6.3.5指令设计实例详解 150
6.4 KX9016的时序仿真与硬件测试 152
6.4.1时序仿真与指令执行波形分析 152
6.4.2 CPU工作情况的硬件测试 154
6.5 KX9016应用程序设计实例和系统优化 156
6.5.1乘法算法及其硬件实现 156
6.5.2除法算法及其硬件实现 157
6.5.3 KX9016v1的硬件系统优化 158
习题 159
实验与设计 159
第7章 流水线CPU原理 164
7.1流水线的一般概念 164
7.1.1 DLX指令流水线结构 165
7.1.2流水线CPU的时空图 167
7.1.3流水线分类 169
7.2与流水线技术相关的问题及处理方法 169
7.2.1资源相关及其冲突 170
7.2.2数据相关及其分类 170
7.2.3数据竞争的处理技术 171
7.2.4控制相关 177
7.2.5流水实现的关键技术 178
7.3流水线的性能评价 179
7.3.1流水线的性能指标 179
7.3.2流水线性能评估举例 181
7.3.3 Amdahl定律 187
习题 188
实验与设计 189
第8章 流水线CPU设计 196
8.1流水线CPU的结构 196
8.2指令系统设计 197
8.3数据通路设计 200
8.4流水线各段的功能描述与设计 201
8.4.1 Stage 1取指令段 201
8.4.2 Stage 2译码段ID 205
8.4.3 Stage 3执行有效地址计算段(EXE) 210
8.4.4 Stage 4访存段(MEM) 215
8.4.5 Stage 5回写段(WB) 217
8.4.6一些关键功能部件的设计 217
8.4.7控制单元 222
8.4.8中断与异常 223
8.4.9流水线CPU系统构建与测试 224
实验与设计 227
第9章32位OpenRISC软核结构及应用 239
9.1 OpenRISC 1200处理器核概述 239
9.1.1 OpenRISC 1000/ 1200处理器的体系结构 239
9.1.2 OR1200指令集及指令流水线 241
9.1.3 OR1200核的异常模型和可编程中断控制器 243
9.1.4 OR1200核的寄存器 244
9.1.5 OR1200核的Tick定时器 245
9.2 WISHBONE片上总线 246
9.2.1 WISHBONE总线概述 246
9.2.2 WISHBONE接口信号说明 247
9.2.3 WISHBONE总线协议与数据传输 249
9.3 OpenRISC的软件开发环境 250
9.3.1 OpenRISC的GNU工具链 251
9.3.2使用Makefile管理工程 252
9.4一个简单的OR1200核的SOC设计示例 252
9.4.1 KX_ OR1200 SOC概述及设计流程 253
9.4.2 KX_ OR1200 SOC的存储器结构及初始化 254
9.4.3 GPIO通用输入输出端口 255
9.4.4 uart16550串行通信模块应用 255
9.4.5 VGA/LCD显示控制器设计 257
9.4.6外设的初始化及系统的启动 258
9.4.7 KX_ OR1200_SOC的μC/OS Ⅱ移植 260
9.4.8基于SignalTap Ⅱ的硬件实时调试 260
9.5基于OR1200的ORPSoC设计 261
实验与设计 261
第10章 基于经典处理器IP的SOC实现 263
10.1基于8051单片机核的SOC系统实现 263
10.1.1 K8051单片机软核基本功能和结构 264
10.1.2单片机扩展功能模块的SOC设计 264
10.2基于8088 IP核的SOC系统实现 269
10.2.1 8088 IP核SOC系统 269
10.2.2基于8088 CPU IP软核的最小系统构建 272
10.2.3可编程并行接口8255 IP核 274
10.2.4 8255 IP核基本功能测试 276
10.2.5 8255 IP在8088 IP核系统中的应用示例 278
10.2.6 8254/8253IP核可编程定时器/计数器 280
10.2.7 8254 IP核基本功能测试 281
10.2.8 8254 IP核在8088系统中的应用示例 283
10.2.9 8259 IP中断控制器的功能和用法 285
10.2.10 8259 IP在8086/8088系统中的应用 287
10.2.11 8237 DMA控制器 288
10.2.12 16550IP核可编程串行通信模块 290
10.3基于8086 IP软核的SOC微机系统设计 292
10.3.1 8086Z CPU性能特点 292
10.3.2 KX86Z微机系统的结构与功能 293
10.3.3 KX86Z FULL系统上MS-DOS的使用 295
10.3.4在KX86Z FULL系统进行C程序或BASIC程序编程 297
10.3.5在KX86Z FULL上启动Windows 3.0 297
习题与设计实验 298
附录 现代计算机组成与创新设计实验系统 300
1.1 KX DN8系列实验开发系统 301
1.2 mif文件生成器使用方法 304
参考文献 306