第1章 第一天——数码管显示模块的设计 1
1.1 设计需求讲解 1
1.2 七段式数码管显示原理讲解 2
1.3 设计工具使用讲解 4
1.3.1 Quartus Ⅱ工具的配置 4
1.3.2 数码管显示模块的可综合代码 6
1.3.3 显示模块的测试 8
1.3.4 转到ModelSim仿真工具进行测试 11
1.3.5 下载程序到开发板进行调试 13
1.4 今天工作总结 19
1.5 夏老师评述 19
第2章 第二天——键盘扫描模块的设计 21
2.1 设计需求讲解 21
2.2 七段式数码管显示原理讲解 22
2.3 设计工具使用讲解 23
2.3.1 矩阵键盘码扫描分析模块的可综合代码 24
2.3.2 矩阵键盘码扫描分析模块代码解析 29
2.3.3 矩阵键盘扫描分析模块的测试 35
2.3.4 转到ModelSim仿真工具进行测试 42
2.3.5 下载程序到开发板进行调试 42
2.4 今天工作总结 46
2.5 夏老师评述 47
第3章 第三天——输入状态机模块的设计 48
3.1 设计需求讲解 48
3.2 我对状态机概念的理解 48
3.3 设计工具使用讲解 49
3.3.1 范例代码解析 49
3.3.2 重写状态机代码 61
3.3.3 转到ModelSim仿真工具进行测试 67
3.3.4 下载程序到开发板进行调试 67
3.4 今天工作总结 71
3.5 夏老师评述 72
第4章 第四天——BCD码与二进制码转换模块的设计 73
4.1 设计需求讲解 73
4.2 BCD码转二进制码 74
4.2.1 BCD码转二进制码的可综合代码 74
4.2.2 BCD码转二进制码模块的测试代码 75
4.2.3 转到ModelSim仿真工具进行测试 76
4.2.4 二进制码转BCD码的可综合代码 76
4.2.5 二进制码转BCD码模块的测试 80
4.2.6 转到ModelSim仿真工具进行测试 82
4.3 今天工作总结 83
4.4 夏老师评述 83
第5章 第五天——计算模块的设计 84
5.1 设计需求讲解 84
5.2 设计工具使用讲解 84
5.2.1 计算模块的可综合代码 85
5.2.2 计算模块的测试 85
5.2.3 转到ModelSim仿真工具进行仿真 87
5.2.4 模块连接关系 88
5.2.5 下载程序到开发板进行调试 95
5.3 今天工作总结 95
5.4 夏老师评述 95
第6章 第六天——可进行连续运算的状态机改进 97
6.1 设计需求讲解 97
6.2 状态机设计讲解 97
6.2.1 状态机的编码形式 97
6.2.2 状态机的分类 98
6.2.3 状态转移图(STD) 102
6.3 设计工具使用讲解 103
6.3.1 状态机模块的可综合代码 103
6.3.2 状态机模块的测试 107
6.3.3 转到ModelSim仿真工具进行仿真 111
6.3.4 下载程序到开发板进行调试 111
6.4 今天工作总结 113
6.5 夏老师评述 114
第7章 第七天——面积优化 115
7.1 设计需求讲解 115
7.2 面积与速度 116
7.3 模块改进 118
7.3.1 计算模块的可综合代码 118
7.3.2 转到ModelSim仿真工具进行测试 121
7.3.3 下载程序到开发板进行调试 123
7.4 今天工作总结 125
7.5 夏老师评述 126
第8章 第八天——二进制码转BCD码模块的优化 127
8.1 设计需求讲解 127
8.2 算法实现 128
8.3 模块改进 129
8.3.1 二进制码转BCD码模块的可综合代码 129
8.3.2 转到ModelSim仿真工具进行测试 132
8.3.3 下载程序到开发板进行调试 134
8.4 今天工作总结 138
8.5 夏老师评述 140
第9章 第九天——去“0”模块的设计 141
9.1 设计需求讲解 141
9.2 算法实现 141
9.3 模块改进 142
9.3.1 去“0”模块的可综合代码 142
9.3.2 转到ModelSim仿真工具进行测试 144
9.3.3 下载程序到开发板进行调试 146
9.4 今天工作总结 150
9.5 夏老师评述 151
第10章 第十天——负数计算 152
10.1 设计需求讲解 152
10.2 二进制数表示法 152
10.3 补码原码转换模块 153
10.3.1 补码转原码模块的可综合代码 154
10.3.2 转到ModelSim仿真工具进行测试 154
10.3.3 原码转补码模块的可综合代码 155
10.3.4 转到ModelSim仿真工具进行测试 155
10.4 其他模块的修改 156
10.4.1 显示模块的修改 156
10.4.2 消“0”模块的修改 159
10.4.3 BCD码和二进制码转换模块的修改 160
10.4.4 计算模块的修改 163
10.4.5 按键状态机模块的修改 165
10.4.6 顶层模块的修改 169
10.5 下载程序到开发板进行调试 171
10.6 今天工作总结 171
10.7 夏老师评述 172
参考文献 174