第1章 PMC计算机简介 1
1.1 历史背景 1
1.2 并行计算机冲突概述 3
1.3 PU-MU-CHL并行结构 5
1.3.1 计算机核心重组 5
1.3.2 PU-MU-CHL结构 7
1.4 PMC110计算机 9
1.4.1 PMC11O计算机实体 9
1.4.2 相关数据 9
1.4.3 PMC110计算机的特色 10
1.5 配套教材 15
习题1 16
第2章 PMC110计算机操作 17
2.1 PMC110计算机组织 17
2.2 PMC110计算机逻辑结构 18
2.3 指令系统 19
2.3.1 指令设计 19
2.3.2 指令格式和寻址方式 21
2.3.3 指令全程与控制函数 22
2.4 机器语言程序输入 37
2.4.1 汇编例题 37
2.4.2 程序输入与编译操作 37
2.4.3 程序设计器的安装 39
2.4.4 程序设计器的使用 39
2.5 程序输入、装填与执行 41
2.5.1 程序输入与装填 41
2.5.2 输入编辑 42
2.5.3 程序执行启动 42
2.5.4 人机交互方式 43
2.5.5 执行结果表示 43
2.6 系统复位与复杂操作 43
2.6.1 系统复位的方法 44
2.6.2 缓冲区复位 44
2.6.3 用复位输入操作 44
2.7 需要知道的限制 45
2.7.1 存储器的限制 45
2.7.2 输入缓冲区的限制 45
习题2 46
第3章 汇编程序设计与编译方法 47
3.1 PMC110计算机的输入输出管理 47
3.2 PMC110计算机的管理程序 48
3.3 汇编语言程序设计 49
3.3.1 汇编程序的基本结构 50
3.3.2 指令的分类 51
3.3.3 分支循环结构 53
3.3.4 多重循环 54
3.3.5 使用地址指针 55
3.3.6 起泡排序 58
3.4 宏指令 61
3.4.1 宏指令格式 61
3.4.2 无参数宏 61
3.4.3 带参数的宏 62
3.4.4 宏与函数 62
3.5 编译方法 62
3.5.1 编译的一般过程 62
3.5.2 段内编译的例题 63
3.5.3 PMC110计算机的编译方法 64
3.5.4 机器编译方法 65
3.5.5 用数据库软件设计编译器 65
3.6 典型例题 66
3.7 虚拟存储器结构设计 71
3.7.1 虚拟存储执行的机制 71
3.7.2 虚拟存储编程 71
3.7.3 虚拟存储程序设计 71
习题3 75
第4章 加减法计算器设计 77
4.1 微指令计算机 77
4.2 加减法计算器的结构 78
4.3 寄存器设计 79
4.3.1 QuartusⅡ启动及建立工程项目 79
4.3.2 设计寄存器 83
4.3.3 部件封装与修改 88
4.4 加减法器设计过程 90
4.4.1 加减法单元设计 90
4.4.2 加减法器整体设计 90
4.4.3 加减法计算器总线结构设计 92
4.5 加减法计算器设计仿真 93
4.5.1 项目工程编译 93
4.5.2 建立波形文件 95
4.5.3 设定仿真数据 98
4.5.4 进行仿真 99
4.6 PMC110板下载和操作验证 99
4.6.1 建立下载工程 99
4.6.2 数码管驱动程序 100
4.6.3 连接驱动程序 102
4.6.4 FPGA引脚与设备连接 104
4.6.5 设计工程下载 104
4.6.6 加法测试 106
4.6.7 减法测试 106
4.6.8 验证结论 107
4.7 改进的加减法计算器 107
4.7.1 8位加减法器 107
4.7.2 加减法器输入输出设计 108
4.7.3 总线结构设计 108
4.7.4 下载连接程序 110
4.7.5 8位加减运算测试 112
习题4 113
第5章 随机存储器设计 115
5.1 存储部件的设计 115
5.1.1 存储单元设计 115
5.1.2 地址译码器设计 116
5.1.3 存储器本体设计 117
5.1.4 完整的存储器设计 117
5.2 存储器总线结构 119
5.3 仿真检测 121
5.3.1 简单结构的检测 121
5.3.2 实际下载连接 122
5.3.3 检验写和读 123
5.3.4 资源使用情况 124
习题5 125
第6章 同步阵列乘法器设计 127
6.1 乘法器的设计 127
6.1.1 阵列乘法器结构 127
6.1.2 同步无符号乘法阵列 128
6.1.3 前端绝对值处理 128
6.1.4 后端值符号处理 129
6.2 阵列乘法器仿真 131
6.3 同步阵列乘法器下载与操作检测 131
6.3.1 带总线监视机制的乘法器 131
6.3.2 同PMC110板连接的驱动程序 131
6.3.3 乘法器下载检测 133
习题6 134
第7章 同步阵列除法器设计 135
7.1 理论除法器设计 135
7.1.1 输入输出结构 135
7.1.2 无符号除法器设计 136
7.1.3 正负对称区间除法阵列 136
7.2 实用除法器 138
7.2.1 实用除法阵列电路 138
7.2.2 分析流程 139
7.2.3 最小数的判断 139
7.2.4 除法器的仿真验证 145
7.3 除法器的连接驱动 145
7.4 除法器的下载检测 147
习题7 147
第8章 PMC计算机设计实例 149
8.1 计算机设计实例说明 149
8.1.1 PMC110核心计算机的一般结构 149
8.1.2 计算机的设计目标 150
8.2 器件设计 150
8.2.1 8位加减法器设计 150
8.2.2 同步计数器的设计 151
8.2.3 堆栈指针的设计 153
8.2.4 累加器设计 154
8.2.5 节拍器的设计 154
8.2.6 8位译码器的设计 155
8.2.7 存储器的设计 156
8.3 完整部件设计 161
8.3.1 存储器部件 161
8.3.2 ALU部件 161
8.4 总线结构设计 162
8.4.1 连接存储器和运算器 162
8.4.2 累加器、计数器连入总线 162
8.4.3 操作数寄存器、数据寄存器和输出寄存器连入总线 164
8.5 指令系统设计 165
8.5.1 确定指令系统 165
8.5.2 指令全程分析 167
8.5.3 计算机指令全程表 167
8.6 控制器设计 172
8.6.1 控制矩阵设计 172
8.6.2 组织控制器 175
8.7 输入接口设备设计 175
8.7.1 缓冲区接口电路 176
8.7.2 输入接口解决的问题 177
8.7.3 操作系统的设计 179
8.7.4 操作系统的发展 180
8.8 总体设计 180
8.8.1 顶层结构 180
8.8.2 输入程序数据控制 182
8.9 程序运行仿真 183
8.9.1 仿真程序的输入方法 183
8.9.2 观察仿真波形 184
8.10 工程下载与检测 185
8.10.1 时钟设计 185
8.10.2 下载连接驱动程序 189
8.10.3 检验程序设计 195
8.11 计算机设计制作要掌握的知识 200
习题8 201
附录A Verilog HDL语言介绍 203
A.1 Verilog HDL语言 203
A.2 Verilog HDL语言的基本概念 204
A.2.1 模块 204
A.2.2 时延 205
A.2.3 数据流描述方式 206
A.2.4 行为描述方式 207
A.2.5 结构化形式描述 209
A.2.6 混合设计描述方式 211
A.2.7 设计模拟 211
A.3 Verilog HDL语言要素 214
A.3.1 标识符 214
A.3.2 注释 215
A.3.3 格式 215
A.3.4 系统任务和函数 215
A.3.5 编译指令 216
A.3.6 值集合 219
A.3.7 数据类型 222
A.3.8 参数 229
A.4 表达式 230
A.4.1 操作数 230
A.4.2 操作符 232
A.4.3 表达式种类 241
A.5 门电路模型 241
A.5.1 内置基本门 242
A.5.2 多输入门 242
A.5.3 多输出门 244
A.5.4 三态门 244
A.5.5 上拉、下拉电阻 245
A.5.6 MOS开关 246
A.5.7 双向开关 247
A.5.8 门时延 247
A.5.9 实例数组 249
A.5.10 隐式线网 249
A.5.11 简单示例 250
A.5.12 解码器举例 250
A.5.13 主从触发器举例 251
A.5.14 奇偶电路 252
A.6 用户定义的元语 253
A.6.1 UDP的定义 253
A.6.2 组合电路UDP 253
A.6.3 时序电路UDP 254
A.6.4 另一实例 256
A.6.5 表项汇总 256
A.7 数据流模型化 257
A.7.1 连续赋值语句 257
A.7.2 举例 258
A.7.3 线网说明赋值 258
A.7.4 时延 259
A.7.5 线网时延 260
A.7.6 举例 261
A.8 行为建模 262
A.8.1 过程结构 262
A.8.2 时序控制 266
A.8.3 语句块 269
A.8.4 过程性赋值 273
A.8.5 if语句 278
A.8.6 case语句 279
A.8.7 循环语句 281
A.8.8 过程性连续赋值 284
A.8.9 握手协议实例 286
A.9 结构建模 287
A.9.1 模块 287
A.9.2 端口 288
A.9.3 模块实例语句 288
A.9.4 外部端口 292
A.9.5 举例 294
A.10 任务与函数 296
A.10.1 任务 296
A.10.2 函数 298
A.10.3 系统任务和系统函数 300
A.10.4 禁止语句 310
A.10.5 命名事件 311
A.10.6 结构描述方式和行为描述方式的混合使用 313
A.10.7 层次路径名 314
A.10.8 共享任务和函数 316
A.10.9 值变转储文件 317
A.10.10 指定程序块 320
A.10.11 强度 323
A.10.12 竞争状态 324
附录B FPGA简介 327
B.1 可编程逻辑设计技术 327
B.1.1 ASIC与FPGA 327
B.1.2 FPGA程序设计 328
B.2 Cyclone EP1C6T的外形结构 328
B.3 FPGA的内部结构 330
参考文献 332