标题：计算机系统的自主设计
出版信息
  计算机系统的自主设计作者：赵刚(作者) 
出版社: 电子工业出版社; 第1版 (2011年10月1日) 
其他: 456页 
ISBN: 9787121145537 
条形码: 9787121145537
内容简介
计算机系统分为通用计算机系统和嵌入式计算机系统，计算机的大量普及，极大地推动了人类社会的进步。但是，您是否觉得计算机系统的设计神秘至极？本书将为您打开计算机系统设计的神秘之门，教您如何去设计满足自己需求的计算机系统。
本书的重点是讲解计算机系统自主设计的方法，共分为四篇，全书以一个全部软硬件均自主定义与设计的教学用计算机系统的实现过程为主线，详细地介绍了自定义指令系统、CPU芯片、汇编语言、高级语言、编辑器、汇编器、编译器、链接器、编程器，以及计算机系统的完整开发流程，试图让读者将往日所学到的零碎、割裂的知识通过书中的实例予以串联整合，使读者对计算机系统的本质得以深入理解。
目录
第一篇 计算机系统构成及自定义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