第1章 THINPAD教学计算机硬件平台 1
1.1 概述 1
1.2 可编程逻辑器件简介 2
1.2.1 可编程逻辑器件简介 2
1.2.2 FPGA工作原理及内部结构 3
1.2.3 CPLD工作原理及内部结构 7
1.3 教学机总体结构 9
1.4 实验芯片 11
1.4.1 FPGA芯片 11
1.4.2 CPLD芯片 15
1.5 存储器 18
1.5.1 SRAM 18
1.5.2 Flash 19
1.6 总线 19
1.7 外部接口 20
第2章 THINPAD教学计算机软件平台 21
2.1 概述 21
2.2 指令系统 21
2.2.1 教学计算机指令格式 22
2.2.2 教学计算机指令及功能 22
2.3 监控程序 32
2.3.1 监控程序简介 32
2.3.2 监控程序框架 33
2.3.3 监控程序支持的命令 34
2.3.4 对中断的支持 35
2.3.5 监控程序使用 36
2.4 模拟器 36
2.4.1 模拟器简介 36
2.4.2 模拟器使用 36
2.5 汇编器Assembleler 42
2.6 终端程序Term 42
2.7 数据通信 43
第3章 VHDL硬件描述语言 45
3.1 概述 45
3.2 程序结构 46
3.2.1 基本结构 46
3.2.2 实体 47
3.2.3 结构体 49
3.2.4 配置 50
3.2.5 包集合 50
3.2.6 库 52
3.2.7 结构体子结构 54
3.3 语言元素 56
3.3.1 标识符 56
3.3.2 数据对象 56
3.3.3 数据类型 59
3.3.4 运算符与操作符 64
3.3.5 属性 67
3.4 基本描述语句 69
3.4.1 顺序描述语句 69
3.4.2 并行描述语句 76
3.5 描述方式 80
3.5.1 行为描述 80
3.5.2 寄存器传输描述方式 81
3.5.3 结构化描述 82
第4章 开发环境 83
4.1 概述 83
4.2 ISE用户界面 84
4.3 秒表设计实例 85
4.3.1 创建空白工程 85
4.3.2 添加源文件 87
4.3.3 综合与功能仿真 91
4.3.4 添加用户约束 95
4.3.5 实现 97
4.3.6 配置 97
第5章 验证性实验 101
5.1 THCO MIPS指令系统实验 101
5.1.1 实验目的 101
5.1.2 实验环境 101
5.1.3 实验内容 101
5.1.4 实验原理 101
5.1.5 主要实验步骤 101
5.1.6 思考题 102
5.2 监控程序扩展实验 102
5.2.1 实验目的 102
5.2.2 实验环境 102
5.2.3 实验内容 103
5.2.4 实验原理 103
5.2.5 主要实验步骤 103
5.2.6 思考题 103
5.3 算术逻辑部件ALU实验 103
5.3.1 实验目的 103
5.3.2 实验环境 103
5.3.3 实验内容 103
5.3.4 实验原理 104
5.3.5 主要实验步骤 104
5.3.6 实验数据 106
5.3.7 思考题 106
5.4 内存储器系统实验 106
5.4.1 实验目的 106
5.4.2 实验环境 106
5.4.3 实验内容 106
5.4.4 实验原理 107
5.4.5 主要实验步骤 108
5.4.6 实验数据 110
5.4.7 思考题 111
5.5 串行接口实验 111
5.5.1 实验目的 111
5.5.2 实验环境 111
5.5.3 实验内容 111
5.5.4 实验原理 112
5.5.5 主要实验步骤 113
5.5.6 实验数据 115
5.5.7 思考题 115
5.6 VGA接口实验 116
5.6.1 实验目的 116
5.6.2 实验环境 116
5.6.3 实验内容 116
5.6.4 实验原理 116
5.6.5 主要实验步骤 117
5.6.6 实验数据 118
5.6.7 思考题 118
5.7 PS2键盘接口控制器设计实验 119
5.7.1 实验目的 119
5.7.2 实验环境 119
5.7.3 实验内容 119
5.7.4 实验原理 119
5.7.5 主要实验步骤 122
5.7.6 实验数据 123
5.7.7 思考题 124
5.8 Flash实验 124
5.8.1 实验目的 124
5.8.2 实验环境 124
5.8.3 实验内容 124
5.8.4 实验原理 124
5.8.5 主要实验步骤 127
5.8.6 实验数据 130
5.8.7 思考题 130
5.9 控制器观测实验 131
5.9.1 实验目的 131
5.9.2 实验环境 131
5.9.3 实验内容 131
5.9.4 实验原理 131
5.9.5 主要实验步骤 136
5.9.6 实验数据 138
5.9.7 思考题 138
第6章 设计性实验 139
6.1 多周期CPU实验 139
6.1.1 实验目的 139
6.1.2 实验环境 139
6.1.3 实验内容 139
6.1.4 实验原理 139
6.1.5 主要实验步骤 139
6.1.6 实验测试及数据 140
6.1.7 思考题 140
6.2 指令流水CPU实验 141
6.2.1 实验目的 141
6.2.2 实验环境 141
6.2.3 实验内容 141
6.2.4 实验原理 141
6.2.5 主要实验步骤 141
6.2.6 实验测试及数据 142
6.2.7 思考题 143
第7章 综合性实验 144
7.1 基于多周期CPU的计算机系统设计与实现 144
7.1.1 实验目的 144
7.1.2 实验环境 144
7.1.3 实验内容 144
7.1.4 实验原理 144
7.1.5 主要实验步骤 145
7.1.6 实验测试及数据 145
7.1.7 思考题 146
7.2 支持指令流水的计算机系统设计与实现 146
7.2.1 实验目的 146
7.2.2 实验环境 146
7.2.3 实验内容 146
7.2.4 实验原理 146
7.2.5 主要实验步骤 147
7.2.6 实验测试及数据 147
7.2.7 思考题 148
7.3 扩展:中断 148
7.3.1 实验目的 148
7.3.2 实验环境 148
7.3.3 实验内容 148
7.3.4 实验原理 148
7.3.5 主要实验步骤 148
7.3.6 实验测试 149
7.3.7 思考题 149
7.4 扩展:双机通信 149
7.5 扩展:多道程序 149
7.6 扩展:外部设备 150
7.7 扩展:应用程序动态加载 150
附录A 监控程序源代码 151
附录B CPLD中UART的源代码 165
附录C 实验5.9 所使用的控制器源代码 174