微信扫一扫,移动浏览光盘
简介
计算机系统分为通用计算机系统和嵌入式计算机系统,计算机的大量普及,极大地推动了人类社会的进步。但是,您是否觉得计算机系统的设计神秘至极?赵刚等著的《计算机系统的自主设计(附光盘)》将为您打开计算机系统设计的神秘之门,教您如何去设计满足自己需求的计算机系统。
《计算机系统的自主设计(附光盘)》的重点是讲解计算机系统自主设计的方法,共分为四篇,全书以一个全部软硬件均自主定义与设计的教学用计算机系统的实现过程为主线,详细地介绍了自定义指令系统、CPU芯片、汇编语言、高级语言、编辑器、汇编器、编译器、链接器、编程器,以及计算机系统的完整开发流程,试图让读者将往日所学到的零碎、割裂的知识通过书中的实例予以串联整合,使读者对计算机系统的本质得以深入理解。
本书特别适合IT领域或非IT领域的广大计算机爱好者阅读,读者群覆盖高中生、本科生、硕士生和博士生,可作为高校或职业学校的课程教材,也可作为研究院所和企事业单位的培训教材。
目录
第一篇 计算机系统构成及自定义CPU芯片设计
第1章 计算机系统构成及工作原理/3
1.1 从一个产品加工厂谈起/3
1.2 计算机诞生及系统构成/4
1.2.1 计算机诞生/4
1.2.2 计算机系统结构/4
1.3 计算机开发及运行流程/5
1.3.1 计算机软硬件开发流程/5
1.3.2 计算机运行流程/6
第2章 自定义指令系统设计/7
2.1 指令系统概述/7
2.1.1 指令系统基本概念/7
2.1.2 指令系统设计方法/7
2.1.3 指令系统设计流程/10
2.2 自定义指令系统/10
2.2.1 指令分类与指令功能选择/10
2.2.2 指令格式与寻址方式/11
2.2.3 指令集/13
2.2.4 CPU芯片自动化设计流程/19
第3章 HDL硬件描述语言/20
3.1 VHDL硬件描述语言/20
3.1.1 VHDL程序的基本结构/20
3.1.2 VHDL语言的基本要素/23
3.1.3 VHDL程序的常用描述语句/25
3.1.4 VHDL程序的常用描述方式/26
3.1.5 组合逻辑电路设计/27
3.1.6 时序逻辑电路设计/30
3.1.7 存储器设计/32
3.1.8 状态机设计/34
3.2 Verilog HDL硬件描述语言/36
3.2.1 Verilog HDL语言的基本结构/36
3.2.2 Verilog HDL语言的基本要素/38
3.2.3 Verilog HDL程序的常用描述语句/41
3.2.4 Verilog HDL程序的常用描述方式/43
3.2.5 组合逻辑电路设计/44
3.2.6 时序逻辑电路设计/46
3.2.7 存储器设计/47
3.2.8 状态机设计/49
3.3 VHDL和Verilog HDL语言的对应关系/52
第4章 QUARTUSⅡ开发工具/54
4.1 QUARTUSⅡ开发系统软件使用入门/54
4.1.1 QUARTUSⅡ软件安装/54
4.1.2 QUARTUSⅡ平台下的芯片开发流程/55
4.1.3 电子琴芯片设计实例/56
4.2 QUARTUSⅡ设计技巧/71
4.2.1 增量编译/71
4.2.2 时序约束/73
4.2.3 逻辑锁定/75
4.2.4 嵌入式逻辑分析仪/77
4.2.5 定制LPM_ROM/81
4.3 DSP Builder代码自动生成/87
4.3.1 DSP Builder代码自动生成流程/87
4.3.2 直接数字频率合成器原理/87
4.3.3 DDS在MATLAB/Simulink中的建模与仿真/89
4.3.4 DDS在QUARTUSⅡ中的FPGA实现/92
第5章 自定义CPU——SCU芯片设计/98
5.1 SCU结构设计/98
5.1.1 总线宽度设计/98
5.1.2 SCU结构设计/99
5.2 SCU内核设计/103
5.2.1 控制单元设计/103
5.2.2 运算单元设计/127
5.2.3 寄存器堆设计/132
5.2.4 SCU内核模块连接/141
5.3 SCU片内外设设计/143
5.3.1 中断控制器INTERUPT设计/143
5.3.2 存储器接口电路设计/146
5.3.3 I/O接口电路设计/146
5.4 SCU整体电路/152
5.5 SCU芯片实现/153
第6章 计算机硬件系统开发与机器语言编程/158
6.1 计算机硬件系统设计/158
6.1.1 计算机硬件系统结构设计/158
6.1.2 计算机硬件系统原理图设计/159
6.2 机器语言编程/162
6.2.1 机器程序开发流程/162
6.2.2 12位二进制输入电路测试程序/163
6.2.3 3位十进制输出电路测试程序/164
6.2.4 12位二进制输入电路测试程序/165
6.2.5 3位十进制输入电路测试程序/166
6.2.6 不同时钟频率对计算机运行速度的影响/167
第二篇 软件开发流程及自定义编程语言
第7章 计算机软件的硬件基础/171
7.1 软件概述/171
7.2 数据——加工对象/172
7.2.1 数据的硬件基础/172
7.2.2 数据表达/173
7.2.3 数据存储方式/176
7.3 程序——加工流程/177
7.3.1 程序的硬件基础/177
7.3.2 程序加工流程/178
7.3.3 程序的基本结构及其开发流程/180
7.3.4 提高编程效率的有效途径——子程序与库/181
第8章 自定义汇编语言——SCL语言/185
8.1 汇编语言概述/185
8.1.1 从机器语言到汇编语言/185
8.1.2 汇编语言组成/186
8.2 指令语句与伪指令设计/186
8.2.1 指令语句/186
8.2.2 伪指令/192
8.3 汇编语言结构设计/193
8.3.1 数据段与代码段/193
8.3.2 子程序/194
8.3.3 中断服务程序/194
第9章 自定义高级语言——SCH语言/196
9.1 高级语言概述/196
9.1.1 高级语言与低级语言/196
9.1.2 高级语言组成/197
9.2 SCH语言基本成分设计/197
9.2.1 常量及变量/197
9.2.2 运算与赋值/198
9.2.3 输入/输出/199
9.2.4 控制操作/199
9.3 SCH语言结构设计/201
9.3.1 程序结构/201
9.3.2 子程序/203
9.4 SCH语言单词与语法归纳/204
第三篇 工具软件的自主开发
第10章 C++开发语言与VC开发工具/207
10.1 熟悉VC++6.0软件开发工具/207
10.1.1 VC++工具及帮助文档MSDN/207
10.1.2 Windows应用程序及VC编程流程/208
10.1.3 编写第一个控制台应用程序/210
10.1.4 编写第一个窗口应用程序/215
10.1.5 程序调试及调试窗口观察/224
10.2 C++语言基础/229
10.2.1 C++语言组成与程序结构/229
10.2.2 常量与变量运用/231
10.2.3 运算与赋值/240
10.2.4 控制语句/244
10.2.5 函数的运用/247
10.2.6 预编译指令/253
10.2.7 类与对象的运用/255
10.2.8 类的继承与派生/258
10.3 窗口应用程序编程——使用API/262
10.3.1 API库/262
10.3.2 资源及资源编辑/264
10.3.3 菜单资源运用/266
10.3.4 对话框资源运用/267
10.3.5 控件/269
10.3.6 消息/270
10.3.7 计算器制作实例/273
10.4 窗口应用程序编程——使用MFC/278
10.4.1 MFC类库/279
10.4.2 MFC应用程序运行原理/279
10.4.3 MFC编程方法/287
10.4.4 计算器制作实例/290
第11章 编辑器的自主设计/294
11.1 编辑器概述/294
11.1.1 代码编辑器功能/294
11.1.2 代码编辑器制作流程/294
11.2 编辑器基本框架生成/295
11.3 关键字高亮与文件操作/296
11.3.1 关键字高亮/296
11.3.2 文件打开与保存/297
11.4 状态栏、快捷菜单与SHELL操作/303
11.4.1 在状态栏上显示光标位置/303
11.4.2 快捷菜单设计/308
11.4.3 编辑器打开不产生新文档/309
11.4.4 文件拖放/310
第12章 汇编器的自主设计/313
12.1 汇编器概述/313
12.1.1 汇编器功能/313
12.1.2 汇编器组成/313
12.2 汇编器工作原理/314
12.2.1 符号表/314
12.2.2 单词识别/317
12.2.3 数据定义处理/319
12.2.4 指令语句处理/320
12.2.5 目标代码文件生成/322
12.3 汇编器编程实现/323
12.3.1 汇编器模板及模块间调用关系/323
12.3.2 相关符号表和地址计数器的表示/325
12.3.3 汇编器细化模板及程序说明/327
第13章 编译器的自主设计/333
13.1 编译器概述/333
13.1.1 编译器功能/333
13.1.2 编译器组成/333
13.1.3 编译器与汇编器/334
13.2 编译器的工作原理/334
13.2.1 符号表——编译过程中有关符号的存储/334
13.2.2 单词识别——字符的组合/335
13.2.3 语法分析——语法关系的比较/335
13.3 指令代码生成/337
13.3.1 临时存储区及其运用/338
13.3.2 表达式的代码生成/339
13.3.3 赋值语句、输入/输出语句的代码生成/341
13.3.4 控制语句的代码生成/343
13.4 编译器的编程实现/346
13.4.1 编译器程序模板及模块调用关系/346
13.4.2 相关符号表的表示/349
13.4.3 编译程序细化模板及程序说明/351
第14章 链接器的自主设计/360
14.1 链接器概述/360
14.1.1 链接器功能/360
14.1.2 链接器组成/361
14.2 链接器工作原理/361
14.2.1 存储器模型/361
14.2.2 链接命令文件/361
14.2.3 重定位/362
14.2.4 可执行文件生成/364
14.3 链接器编程实现/365
14.3.1 主要功能模块及模块调用关系/365
14.3.2 相关符号表的表示/366
14.3.3 链接器程序分析/367
第15章 编程器的自主设计/372
15.1 编程器概述/372
15.1.1 编程器软件组成/372
15.1.2 编程器硬件组成/373
15.2 编程器硬件电路设计/373
15.2.1 编程器硬件总电路/373
15.2.2 EEPROM芯片工作模式及时序/373
15.2.3 烧写控制电路/375
15.2.4 串口通信电路/376
15.3 RS-232通信原理及自定义通信协议/378
15.3.1 RS-232串口通信原理/378
15.3.2 自定义通信协议/378
15.4 单片机数据接收与烧写程序设计/379
15.4.1 MPLAB IDE软件使用/379
15.4.2 单片机系统初始化/382
15.4.3 单片机数据收发/383
15.4.4 EEPROM芯片烧写与读取/389
15.4.5 程序主体/392
15.5 编程器软件界面与数据发送功能设计/396
15.5.1 工程创建及二进制文件读取与显示/397
15.5.2 串口通信控件/400
15.5.3 利用串口通信控件进行数据接收与发送/403
15.6 编程器性能测试/410
15.6.1 测试原理/410
15.6.2 测试程序/410
第四篇 自定义计算机系统编程实例
第16章 自定义SCL汇编语言编程实例/417
16.1 SCL汇编语言列表/417
16.2 汇编程序开发流程/418
16.3 汇编程序开发实例/421
16.3.1 顺序程序开发实例/421
16.3.2 分支程序开发实例/422
16.3.3 循环程序开发实例/424
16.3.4 子程序开发实例/425
16.3.5 中断服务程序开发实例/427
16.3.6 查询与中断方式传送数据/428
第17章 自定义SCH高级语言编程实例/430
17.1 SCH高级语言单词列表及语法归纳/430
17.2 SCH高级程序开发流程/431
17.3 高级程序开发实例/433
17.3.1 顺序程序开发实例/433
17.3.2 分支程序开发实例/434
17.3.3 循环程序开发实例/436
17.3.4 子程序开发实例/437
17.3.5 中断服务程序开发实例/439
附录A 自定义计算机系统的SOPC实现/441
附录B 随赠光盘文件列表/446
参考文献/447
第1章 计算机系统构成及工作原理/3
1.1 从一个产品加工厂谈起/3
1.2 计算机诞生及系统构成/4
1.2.1 计算机诞生/4
1.2.2 计算机系统结构/4
1.3 计算机开发及运行流程/5
1.3.1 计算机软硬件开发流程/5
1.3.2 计算机运行流程/6
第2章 自定义指令系统设计/7
2.1 指令系统概述/7
2.1.1 指令系统基本概念/7
2.1.2 指令系统设计方法/7
2.1.3 指令系统设计流程/10
2.2 自定义指令系统/10
2.2.1 指令分类与指令功能选择/10
2.2.2 指令格式与寻址方式/11
2.2.3 指令集/13
2.2.4 CPU芯片自动化设计流程/19
第3章 HDL硬件描述语言/20
3.1 VHDL硬件描述语言/20
3.1.1 VHDL程序的基本结构/20
3.1.2 VHDL语言的基本要素/23
3.1.3 VHDL程序的常用描述语句/25
3.1.4 VHDL程序的常用描述方式/26
3.1.5 组合逻辑电路设计/27
3.1.6 时序逻辑电路设计/30
3.1.7 存储器设计/32
3.1.8 状态机设计/34
3.2 Verilog HDL硬件描述语言/36
3.2.1 Verilog HDL语言的基本结构/36
3.2.2 Verilog HDL语言的基本要素/38
3.2.3 Verilog HDL程序的常用描述语句/41
3.2.4 Verilog HDL程序的常用描述方式/43
3.2.5 组合逻辑电路设计/44
3.2.6 时序逻辑电路设计/46
3.2.7 存储器设计/47
3.2.8 状态机设计/49
3.3 VHDL和Verilog HDL语言的对应关系/52
第4章 QUARTUSⅡ开发工具/54
4.1 QUARTUSⅡ开发系统软件使用入门/54
4.1.1 QUARTUSⅡ软件安装/54
4.1.2 QUARTUSⅡ平台下的芯片开发流程/55
4.1.3 电子琴芯片设计实例/56
4.2 QUARTUSⅡ设计技巧/71
4.2.1 增量编译/71
4.2.2 时序约束/73
4.2.3 逻辑锁定/75
4.2.4 嵌入式逻辑分析仪/77
4.2.5 定制LPM_ROM/81
4.3 DSP Builder代码自动生成/87
4.3.1 DSP Builder代码自动生成流程/87
4.3.2 直接数字频率合成器原理/87
4.3.3 DDS在MATLAB/Simulink中的建模与仿真/89
4.3.4 DDS在QUARTUSⅡ中的FPGA实现/92
第5章 自定义CPU——SCU芯片设计/98
5.1 SCU结构设计/98
5.1.1 总线宽度设计/98
5.1.2 SCU结构设计/99
5.2 SCU内核设计/103
5.2.1 控制单元设计/103
5.2.2 运算单元设计/127
5.2.3 寄存器堆设计/132
5.2.4 SCU内核模块连接/141
5.3 SCU片内外设设计/143
5.3.1 中断控制器INTERUPT设计/143
5.3.2 存储器接口电路设计/146
5.3.3 I/O接口电路设计/146
5.4 SCU整体电路/152
5.5 SCU芯片实现/153
第6章 计算机硬件系统开发与机器语言编程/158
6.1 计算机硬件系统设计/158
6.1.1 计算机硬件系统结构设计/158
6.1.2 计算机硬件系统原理图设计/159
6.2 机器语言编程/162
6.2.1 机器程序开发流程/162
6.2.2 12位二进制输入电路测试程序/163
6.2.3 3位十进制输出电路测试程序/164
6.2.4 12位二进制输入电路测试程序/165
6.2.5 3位十进制输入电路测试程序/166
6.2.6 不同时钟频率对计算机运行速度的影响/167
第二篇 软件开发流程及自定义编程语言
第7章 计算机软件的硬件基础/171
7.1 软件概述/171
7.2 数据——加工对象/172
7.2.1 数据的硬件基础/172
7.2.2 数据表达/173
7.2.3 数据存储方式/176
7.3 程序——加工流程/177
7.3.1 程序的硬件基础/177
7.3.2 程序加工流程/178
7.3.3 程序的基本结构及其开发流程/180
7.3.4 提高编程效率的有效途径——子程序与库/181
第8章 自定义汇编语言——SCL语言/185
8.1 汇编语言概述/185
8.1.1 从机器语言到汇编语言/185
8.1.2 汇编语言组成/186
8.2 指令语句与伪指令设计/186
8.2.1 指令语句/186
8.2.2 伪指令/192
8.3 汇编语言结构设计/193
8.3.1 数据段与代码段/193
8.3.2 子程序/194
8.3.3 中断服务程序/194
第9章 自定义高级语言——SCH语言/196
9.1 高级语言概述/196
9.1.1 高级语言与低级语言/196
9.1.2 高级语言组成/197
9.2 SCH语言基本成分设计/197
9.2.1 常量及变量/197
9.2.2 运算与赋值/198
9.2.3 输入/输出/199
9.2.4 控制操作/199
9.3 SCH语言结构设计/201
9.3.1 程序结构/201
9.3.2 子程序/203
9.4 SCH语言单词与语法归纳/204
第三篇 工具软件的自主开发
第10章 C++开发语言与VC开发工具/207
10.1 熟悉VC++6.0软件开发工具/207
10.1.1 VC++工具及帮助文档MSDN/207
10.1.2 Windows应用程序及VC编程流程/208
10.1.3 编写第一个控制台应用程序/210
10.1.4 编写第一个窗口应用程序/215
10.1.5 程序调试及调试窗口观察/224
10.2 C++语言基础/229
10.2.1 C++语言组成与程序结构/229
10.2.2 常量与变量运用/231
10.2.3 运算与赋值/240
10.2.4 控制语句/244
10.2.5 函数的运用/247
10.2.6 预编译指令/253
10.2.7 类与对象的运用/255
10.2.8 类的继承与派生/258
10.3 窗口应用程序编程——使用API/262
10.3.1 API库/262
10.3.2 资源及资源编辑/264
10.3.3 菜单资源运用/266
10.3.4 对话框资源运用/267
10.3.5 控件/269
10.3.6 消息/270
10.3.7 计算器制作实例/273
10.4 窗口应用程序编程——使用MFC/278
10.4.1 MFC类库/279
10.4.2 MFC应用程序运行原理/279
10.4.3 MFC编程方法/287
10.4.4 计算器制作实例/290
第11章 编辑器的自主设计/294
11.1 编辑器概述/294
11.1.1 代码编辑器功能/294
11.1.2 代码编辑器制作流程/294
11.2 编辑器基本框架生成/295
11.3 关键字高亮与文件操作/296
11.3.1 关键字高亮/296
11.3.2 文件打开与保存/297
11.4 状态栏、快捷菜单与SHELL操作/303
11.4.1 在状态栏上显示光标位置/303
11.4.2 快捷菜单设计/308
11.4.3 编辑器打开不产生新文档/309
11.4.4 文件拖放/310
第12章 汇编器的自主设计/313
12.1 汇编器概述/313
12.1.1 汇编器功能/313
12.1.2 汇编器组成/313
12.2 汇编器工作原理/314
12.2.1 符号表/314
12.2.2 单词识别/317
12.2.3 数据定义处理/319
12.2.4 指令语句处理/320
12.2.5 目标代码文件生成/322
12.3 汇编器编程实现/323
12.3.1 汇编器模板及模块间调用关系/323
12.3.2 相关符号表和地址计数器的表示/325
12.3.3 汇编器细化模板及程序说明/327
第13章 编译器的自主设计/333
13.1 编译器概述/333
13.1.1 编译器功能/333
13.1.2 编译器组成/333
13.1.3 编译器与汇编器/334
13.2 编译器的工作原理/334
13.2.1 符号表——编译过程中有关符号的存储/334
13.2.2 单词识别——字符的组合/335
13.2.3 语法分析——语法关系的比较/335
13.3 指令代码生成/337
13.3.1 临时存储区及其运用/338
13.3.2 表达式的代码生成/339
13.3.3 赋值语句、输入/输出语句的代码生成/341
13.3.4 控制语句的代码生成/343
13.4 编译器的编程实现/346
13.4.1 编译器程序模板及模块调用关系/346
13.4.2 相关符号表的表示/349
13.4.3 编译程序细化模板及程序说明/351
第14章 链接器的自主设计/360
14.1 链接器概述/360
14.1.1 链接器功能/360
14.1.2 链接器组成/361
14.2 链接器工作原理/361
14.2.1 存储器模型/361
14.2.2 链接命令文件/361
14.2.3 重定位/362
14.2.4 可执行文件生成/364
14.3 链接器编程实现/365
14.3.1 主要功能模块及模块调用关系/365
14.3.2 相关符号表的表示/366
14.3.3 链接器程序分析/367
第15章 编程器的自主设计/372
15.1 编程器概述/372
15.1.1 编程器软件组成/372
15.1.2 编程器硬件组成/373
15.2 编程器硬件电路设计/373
15.2.1 编程器硬件总电路/373
15.2.2 EEPROM芯片工作模式及时序/373
15.2.3 烧写控制电路/375
15.2.4 串口通信电路/376
15.3 RS-232通信原理及自定义通信协议/378
15.3.1 RS-232串口通信原理/378
15.3.2 自定义通信协议/378
15.4 单片机数据接收与烧写程序设计/379
15.4.1 MPLAB IDE软件使用/379
15.4.2 单片机系统初始化/382
15.4.3 单片机数据收发/383
15.4.4 EEPROM芯片烧写与读取/389
15.4.5 程序主体/392
15.5 编程器软件界面与数据发送功能设计/396
15.5.1 工程创建及二进制文件读取与显示/397
15.5.2 串口通信控件/400
15.5.3 利用串口通信控件进行数据接收与发送/403
15.6 编程器性能测试/410
15.6.1 测试原理/410
15.6.2 测试程序/410
第四篇 自定义计算机系统编程实例
第16章 自定义SCL汇编语言编程实例/417
16.1 SCL汇编语言列表/417
16.2 汇编程序开发流程/418
16.3 汇编程序开发实例/421
16.3.1 顺序程序开发实例/421
16.3.2 分支程序开发实例/422
16.3.3 循环程序开发实例/424
16.3.4 子程序开发实例/425
16.3.5 中断服务程序开发实例/427
16.3.6 查询与中断方式传送数据/428
第17章 自定义SCH高级语言编程实例/430
17.1 SCH高级语言单词列表及语法归纳/430
17.2 SCH高级程序开发流程/431
17.3 高级程序开发实例/433
17.3.1 顺序程序开发实例/433
17.3.2 分支程序开发实例/434
17.3.3 循环程序开发实例/436
17.3.4 子程序开发实例/437
17.3.5 中断服务程序开发实例/439
附录A 自定义计算机系统的SOPC实现/441
附录B 随赠光盘文件列表/446
参考文献/447
著者还有:张垒、高朔弋、夏俊杰、路明、刘志刚
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!