自己设计制作CPU与单片机.pdf

自己设计制作CPU与单片机.pdf
 

书籍描述

内容简介
这是一本为有志于计算机CPU设计的人员所写的书,不论你是狂热的发烧友,还是精明的计算机专业工作者。
本书以作者几十年学习设计制作CPU与通用单片机的经历,来告诉你如何从无到有地设计属于你自己的CPU和可以运行用户程序的单片机。书中以作者的十几个CPU设计工程为主线,展示了精简指令系统RISC和复杂指令系统CISC计算机CPU的设计方法。既有硬件编程,又有原理图设计,适合软硬件人员学习计算机核心技术之用。
书中通过实例告诉读者,如何创造性地进行计算机高端产品CPU的立意和设计,介绍了人机交互和操作系统内核的设计方法。这是一本对要全面掌握计算机高端技术的人员而言必读的CPU设计制作之书。

编辑推荐
不亲自设计CPU的人很难以理解计算机的真谛。
基础上不能与人并驾齐驱,永远不要谈超越别人。

从精简指令系统RISC,到复杂指令系统CISC;
从原理图设计,到硬件编程;
从人机交互设计,到操作系统内核设计;
从无,到有,设计属于你自己的CPU与单片机。

去做一件看似不可能的事,
才能知道你的极限在哪里。

作者简介
姜咏江
1945年出生。副教授。中国计算机学会和中国电子学会高级会员。
从事数学、计算机理论、微体系结构、操作系统方向研究。
自己设计制作CPU与单片机多台。

目录
上篇 CPU设计制作入门
第1章 自己就能设计制造CPU  2
1.1 自己设计制作CPU有啥意义  2
1.2 我设计制作CPU的经历  4
1.3 电子电路设计制作的新变化  8
1.4 自己设计CPU的条件  8
1.5 创新CPU设计的意义  9
第2章 进入硬件设计的天地  11
2.1 搭建自己的制造工厂  11
2.1.1 安装你的设计制造工具  11
2.1.2 获得开工许可证  12
2.1.3 熟悉如何建立设计工程  14
2.2 设计制造CPU需要热身  17
2.2.1 初学硬件编程的例子  17
2.2.2 程序书写的要点你知道吗  20
2.2.3 程序就是硬件吗?  22
2.2.4 怎样知道自己设计的对与错  23
2.2.5 掌握仿真测试小工具  31
2.2.6 看看自己设计的转换图  33
2.3 硬件设计语言Verilog HDL  34
2.3.1 Verilog HDL语言的常量  35
2.3.2 Verilog HDL数据类型  36
2.3.3 Verilog HDL操作符  36
2.4 Verilog HDL语句和模块  37
2.4.1 连接语句assign  38
2.4.2 Always语句  38
2.4.3 模块  40
2.5 Verilog HDL其他常用语句  43
2.5.1 if 语句  43
2.5.2 case语句  44
2.5.3 for循环语句  45
第3章 自己创造CPU的方法  46
3.1 深刻理解CPU的结构  46
3.1.1 简单CPU的组成  46
3.1.2 总线分类与设备控制  48
3.2 自创CPU的一般步骤  49
3.3 如何设计自己的指令系统  51
3.3.1 CPU必需有哪些指令  51
3.3.2 机器结构决定的基本动作  52
3.3.3 将基本动作组织成指令  52
3.3.4 CPU指令设计与全程逻辑分析  53
3.4 指令分析的一般性总结  59
3.4.1 指令有限状态机  59
3.4.2 程序如何描述指令  60
3.5 让CPU运行程序  61
3.5.1 简单汇编指令设计  61
3.5.2 CPU的汇编程序设计  63
3.5.3 如何编译汇编程序  64
第4章 一个简单CPU的设计  67
4.1 创建一个CPU设计工程  67
4.1.1 复制这个简单CPU工程  67
4.1.2 执行我们设计的汇编程序  68
4.2 剖析这个CPU设计程序  70
4.2.1 借用别人的存储器要了解什么  70
4.2.2 如何描述CPU的端口  73
4.2.3 CPU要设置哪些内部器件和导线  74
4.2.4 器件连接和信息传递的描述  75
4.2.5 怎样才能看到CPU运行的内部变化  76
4.3 CPU行为的描述方法  77
4.3.1 CPU初始状态如何描述  77
4.3.2 取指令周期的描述  78
4.3.3 指令分析的描述  79
4.3.4 指令执行周期的描述  80
4.4 如何让CPU运行软件程序  87
4.4.1 设计用于检验的汇编程序  87
4.4.2 用表来编译汇编程序  89
4.4.3 仿真检验CPU设计  92
4.5 CPU设计工程小结  94
第5章 自制通用CPU与单片机  95
5.1 实体结构与器件应用  95
5.2 通用CPU指令系统设计  97
5.2.1 规划CPU的指令格式  97
5.2.2 增加的指令  98
5.2.3 新增输入输出端口  100
5.2.4 可读写的程序存储器  102
5.2.5 新增指令的状态描述  102
5.3 用汇编程序检验CPU设计  108
5.3.1 测试CPU的程序设计  108
5.3.2 汇编程序执行仿真  109
5.4 外设与CPU接口设计  111
5.4.1 输入缓冲区设想  111
5.4.2 输入缓冲区设计程序  112
5.4.3 仿真检测缓冲区设计  115
5.4.4 缓冲区与CPU连接  116
5.5 设备驱动程序设计  117
5.5.1 一个数码管驱动程序  118
5.5.2 四个数码管驱动程序  119
5.5.3 走马灯显示设计  119
5.6 时钟设计  121
5.6.1 分频设计  121
5.6.2 锁相环生成时钟程序  122
5.6.3 时钟IP程序  124
5.7 开发板连接程序设计  127
5.7.1 如何定义开发板上的设备  127
5.7.2 PMC开发板连接程序  128
5.7.3 连接程序解释  136
5.8 FPGA引脚连接  139
5.8.1 引脚连接清单  139
5.8.2 引脚连接操作  141
5.9 操作系统内核设计  143
5.9.1 操作系统核心  143
5.9.2 系统程序常驻内存  144
5.10 烧制CPU制作单片机  145
5.10.1 JTAG下载烧制  146
5.10.2 检验设计成果  147
5.10.3 ASP下载烧制单片机  148
第6章 流水线CPU设计  150
6.1 流水线结构  150
6.1.1 流水线要义  150
6.1.2 指令流水线的组织  151
6.1.3 流水线指令并行工作  153
6.1.4 流水线相关问题  154
6.1.5 解决相关的办法  156
6.2 第一个流水线CPU  158
6.2.1 流水线CPU指令系统  159
6.2.2 同步存储器  160
6.2.3 CPU设计程序分析  166
6.2.4 流水线CPU仿真  174
6.2.5 与非流水线速度比较  179
6.3 循环流水线CPU  181
6.3.1 流水线的效率  181
6.3.2 部件式结构设计  182
6.3.3 循环流水线的划分  183
6.3.4 循环流水线CPU设计  184
6.3.5 化解设备相关和控制相关方法  186
6.3.6 运行速度比较  188
第7章 非透明流水线通用单片机  190
7.1 三级流水线计算机设计思想  190
7.1.1 三级流水线的优势  190
7.1.2 发射与断流控制  192
7.2 重编指令系统  195
7.2.1 补充的指令  195
7.2.2 指令系统编码重设  196
7.3 流水线通用CPU设计  198
7.3.1 三级流水通用CPU程序  199
7.3.2 三级流水线通用CPU仿真  203
7.4 流水线操作系统内核设计  204
7.4.1 流水线操作系统程序  205
7.4.2 系统程序仿真  207
7.4.3 仿真检验操作系统  208
第8章 流水线编程的透明设计  212
8.1 分支指令透明化  212
8.1.1 改造分支指令设计  213
8.1.2 中断流水机制设计  214
8.2 其他指令透明化  215
8.2.1 Iptr指令优化  215
8.2.2 Call和Ret指令优化  217
8.2.3 运行汇编程序测试  218
8.3 缓冲区连接  221
8.3.1 输入缓冲区检验  221
8.3.2 缓冲区与CPU关联程序  221
8.3.3 通过缓冲区输入仿真  223
8.4 开发板的连接  224
8.4.1 连接程序设计  224
8.4.2 EP1C12Q引脚连接  225
8.5 烧制运行与测试  225
8.5.1 常驻程序  226
8.5.2 运行检测  226
8.5.3 透明三级流水线检测程序设计  228
8.5.4 透明流水线编程提示  230
中篇 深入CPU设计
第9章 信息与信息处理  232
9.1 信息与媒体  232
9.1.1 客观的信息  232
9.1.2 媒体与信息分类  233
9.2 信息处理与数据  234
9.2.1 信息处理  234
9.2.2 数据  235
9.2.3 信息量  235
9.2.4 计算机是信息处理工具  235
第10章 机器表示数和运算  237
10.1 限位记数  237
10.1.1 N进制  237
10.1.2 限位数  237
10.1.3 反码  238
10.2 解决正负数运算的对称制  238
10.2.1 限位数运算特征  238
10.2.2 用限位数表示正负数  238
10.2.3 什么是对称制  239
10.2.4 对称制运算  240
10.2.5 对称码和反码的关系  240
10.3 对称制加法的溢出  241
10.3.1 加减法溢出的判断  241
10.3.2 溢出的解决方法  241
10.3.3 乘法运算溢出的处理  242
10.3.4 变减法为加法  242
10.4 信息的二进制表示  243
10.4.1 图形文字数值化  244
10.4.2 颜色的数值化  245
10.4.3 模拟信息的数值化  246
第11章 逻辑代数是CPU的基石  248
11.1 逻辑代数的概念  248
11.2 逻辑代数的基本运算规则  248
11.2.1 逻辑变量与逻辑表达式  249
11.2.2 基本逻辑等式  249
11.2.3 异或  251
第12章 万能的逻辑电路  252
12.1 二极管和三极管  252
12.1.1 简单电路知识  252
12.1.2 简单表示电子管  253
12.1.3 基本逻辑门电路  254
12.2 依据表达式作电路  255
12.2.1 线路连接与交叉  256
12.2.2 基本组合电路符号  256
12.2.3 逻辑电路的画法  257
12.3 真值表与逻辑函数  258
12.3.1 真值表  259
12.3.2 逻辑表达式的化简  261
第13章 元器件与线路设计原理  263
13.1 RS触发器  263
13.1.1 RS触发器的结构  263
13.1.2 RS触发器工作原理  263
13.1.3 RS触发器的符号  264
13.2 D型触发器  265
13.2.1 时标触发器  265
13.2.2 边沿触发器  266
13.3 通断控制开关电路  268
13.3.1 三态门电路组成  268
13.3.2 三态门工作原理  269
13.4 带预置清除端的边沿触发器  270
13.5 线路数据传输  271
13.5.1 三态总线的数据传输  271
13.5.2 两态选择扇出总线  272
13.5.3 双向通断可控开关  272
13.6 寄存器原理  273
13.6.1 暂存寄存器设计  274
13.6.2 L门的工作原理  274
13.6.3 Jk触发器  275
13.6.4 Jk触发器的构造  275
13.6.5 Jk触发器工作过程  275
13.6.6 行波计数器  276
13.7 译码器和多路选择器  278
13.7.1 译码器  278
13.7.2 接收多路选择器  279
第14章 CPU的器件设计  280
14.1 原理图设计方法  280
14.1.1 原理图设计操作  280
14.1.2 器件的层次组合  284
14.1.3 Quartus II 电子元件库  285
14.2 加减法运算器设计  286
14.2.1 加减法运算器设计的必要性  286
14.2.2 加法运算的分析  287
14.2.3 全加器设计操作  289
14.2.4 四位加法器设计  291
14.2.5 八位加法运算器设计  293
14.2.6 八位加减运算器设计  293
14.3 分段加减法运算器设计  295
14.3.1 分段计算原理  295
14.3.2 设计分段加减法运算器  296
14.3.3 分段加减法运算器仿真  297
14.3.4 分段加减法运算相关指令设计  298
14.4 通用计数器  300
14.4.1 同时同步计数器  300
14.4.2 二选一电路  300
14.4.3 加减单元  301
14.4.4 计数单元  301
14.4.5 八位计数器  304
14.4.6 计数器一般化  306
14.4.7 等效计数器设计  307
14.5 标志线的设计  309
14.6 移位寄存器设计  310
14.6.1 两位移位单元  310
14.6.2 多位左移位寄存器设计  313
14.6.3 左右移位寄存器设计  314
14.6.4 移位寄存器等效电路设计  316
14.7 乘法运算器的设计  318
14.7.1 乘法手算形式分析  318
14.7.2 乘法阵列原理图设计  319
14.7.3 分层设计乘法阵列  321
14.8 通用乘法运算器设计  324
14.8.1 求绝对值电路  324
14.8.2 实现有符号乘法运算  326
14.8.3 通用乘法运算器仿真  327
14.8.4 超长数乘法设计  327
14.9 除法运算器设计  328
14.9.1 除法手算形式分析  328
14.9.2 无符号数除法阵列  329
14.9.3 减法运算单元  330
14.9.4 四位减法运算器  331
14.9.5 除法试商运算单元  332
14.9.6 无符号数除法阵列行  333
14.9.7 无符号数除法运算器  335
14.9.8 有符号数除法器  337
14.10 译码器的设计  338
14.10.1 译码器设计  338
14.10.2 四位译码器设计  340
14.10.3 分层构造多位译码器  341
14.11 浮点加减法运算器设计  342
14.11.1 国际标准化组织的标准  342
14.11.2 限位浮点数的表示  342
14.11.3 浮点数的运算  343
14.11.4 随机右移运算器  343
14.11.5 浮点加减法运算器结构  346
14.11.6 浮点数加减法运算器设计  347
14.12 节拍器的设计  349
14.12.1 节拍器的结构  349
14.12.2 节拍器的工作原理  350
14.13 存储器设计  351
14.13.1 随机存储器  351
14.13.2 IP程序生成RAM  355
14.13.3 随机存储器仿真  359
14.14 总线结构设计  360
14.14.1 简单总线结构  360
14.14.2 总线控制字与微指令  361
14.14.3 总线结构中实用存储器  361
14.14.4 地址寄存器设计  363
第15章 X86型CPU及单片机设计  365
15.1 PMC硬件构成  365
15.2 CPU的逻辑结构  367
15.3 指令系统设计  368
15.3.1 机器指令设计  368
15.3.2 指令格式和寻址方式  371
15.3.3 指令全程与控制函数  372
15.4 控制矩阵  381
15.4.1 控制矩阵电路设计  381
15.4.2 分块设计控制矩阵  382
15.5 控制矩阵生成器  384
15.5.1 控制矩阵生成器安装  384
15.5.2 建立指令全程分析表  385
15.5.3 生成dBASE III文件  385
15.6 控制矩阵生成器的使用  386
15.6.1 基本操作  387
15.6.2 数据库中建分析表  388
15.6.3 生成逻辑模块描述  390
15.7 PMC110总线结构  390
15.7.1 运算器存储器总线连接  391
15.7.2 指针累加器等连入总线  392
15.7.3 寄存器等连入总线  393
15.8 CPU顶层总线结构  394
15.9 输入缓冲接口设计  396
15.9.1 PMC110缓冲区设计思想  396
15.9.2 缓冲区存储器设计  397
15.9.3 缓冲区接口电路  403
15.9.4 输入接口解决的问题  407
15.10 PMC110CPU与外设连接  410
15.11 PMC110操作系统核心设计  411
15.12 PMC110 顶层与引脚  413
第16章 带LCD的通用单片机  415
16.1 FM12864J液晶屏  415
16.2 FM12864J逻辑结构与控制  416
16.2.1 HD16202逻辑结构  416
16.2.2 液晶屏操作指令  418
16.3 LCD读写控制  420
16.3.1 液晶屏的读写时序  421
16.3.2 液晶屏驱动程序  422
16.4 LCD帧控制程序  425
16.4.1 端口与工作变量  426
16.4.2 随时变化的端口  426
16.4.3 帧控制程序的初始状态  427
16.4.4 帧控制状态描述  427
16.4.5 帧控制例行状态描述  428
16.5 字库设计程序  429
16.5.1 Idle状态  430
16.5.2 字形设计  430
16.5.3 Ok状态描述  430
16.6 时钟和送显信号设计  431
16.7 内外总线连接  432
16.8 开发板连接程序  434
16.9 EP1C12Q240增加引脚连接  435
16.10 带LCD单片机顶层文件  435
16.11 带LCD单片机运行测试  436
第17章 动态CPU的思想方法  439
17.1 历史背景  439
17.2 并行计算机冲突概述  442
17.3 PU-MU-CHL并行结构——计算机核心重组  443
17.4 PU与MU连接控制  448
17.5 动态计算机的整机结构  450
第18章 动态CPU设计实例  452
18.1 PMC362CPU逻辑结构  452
18.2 PMC362CPU结构设计  453
18.3 PU设计  455
18.3.1 PU的总线连接  455
18.3.2 PU内部结构  456
18.4 PU-MU指令系统  458
18.4.1 PU指令表  458
18.4.2 PU控制矩阵设计  463
18.5 MU设计  463
18.5.1 MU总线结构  464
18.5.2 MU总线连接设计  464
18.5.3 MU内部结构  466
18.5.4 MU连接标志设计  467
18.6 CHL设计  467
18.6.1 CHL总线连接  468
18.6.2 CHL内部结构  468
18.6.3 CHL指令系统设计  469
18.7 顶层结构  472
18.8 设备连接优先级设计  474
18.9 主要部件和特色  476
18.10 测试程序设计  476
18.11 PMC362程序并行执行仿真  480
18.12 下载到开发板上运行检验  485
第19章 PMC计算机应用  490
19.1 PMC110汇编语言设计工具  490
19.1.1 程序设计编译器的安装  490
19.1.2 程序设计编译器的使用  492
19.1.3 编辑编译器使用实例  497
19.2 程序输入装填与执行  499
19.2.1 程序的输入与装填  499
19.2.2 输入编辑  501
19.2.3 人机交互方式  502
19.2.4 执行结果表示  502
19.3 系统复位与复杂操作  503
19.3.1 系统复位的方法  503
19.3.2 缓冲区复位  503
19.3.3 分段输入程序操作  503
19.4 需要知道的限制  504
第20章 汇编语言程序设计  506
20.1 汇编程序的基本结构  506
20.1.1 顺序结构  506
20.1.2 分支结构  507
20.1.3 循环结构  507
20.1.4 子程序调用结构  507
20.2 指令的分类  508
20.2.1 算术运算类指令  508
20.2.2 数据传送类指令  508
20.2.3 逻辑运算类指令  509
20.2.4 跳转类指令  509
20.2.5 数据移位指令  509
20.2.6 其他控制类指令  509
20.3 程序设计  510
20.3.1 分支循环结构设计  510
20.3.2 多重循环  511
20.3.3 使用地址指针  513
20.3.4 起泡排序  515
20.4 宏指令  518
20.4.1 宏指令格式  519
20.4.2 无参数宏  519
20.4.3 带参数的宏  519
20.4.4 宏与函数  520
20.5 汇编程序编译方法  520
20.5.1 编译的一般过程  520
20.5.2 机器编译方法  521
20.5.3 用数据库软件设计编译器  523
20.6 典型问题求解  524
20.6.1 求自然数n的阶乘  524
20.6.2 超长数乘除法  527
20.6.3 超长数除法运算器设计  532
20.6.4 超长数除法运算仿真  534
20.7 虚拟存储器结构设计  534
20.7.1 虚拟存储执行的机制  534
20.7.2 虚拟存储编程  535
20.7.3 虚拟存储程序设计  535
下篇 自己制作单片机
第21章 自制单片机器件与环境  542
21.1 自制计算机系统整体结构  542
21.1.1 单芯片计算机实例  542
21.1.2 功能结构划分  543
21.1.3 FPGA芯片和配件  544
21.1.4 FPGA的配件  546
21.2 PMC计算机的供电系统  547
21.2.1 直流电源与开关  547
21.2.2 稳压器件  548
21.2.3 整流二极管和滤波器件  548
21.2.4 下载线  549
21.3 输入设备  549
21.3.1 数据输入开关  549
21.3.2 状态控制开关  549
21.3.3 触发控制按钮  549
21.4 显示输出设备  549
21.4.1 发光二极管  550
21.4.2 数码管  550
21.4.3 液晶显示屏  551
21.5 PCB印刷电路板  551
21.6 个人设计制作计算机所需的工作环境  552
第22章 PMC110计算机电路设计  554
22.1 计算机辅助设计软件PADS  554
22.1.1 元器件库  554
22.1.2 元器件图制作  555
22.2 基本型PMC电路的原理图设计  568
22.2.1 供电系统设计  568
22.2.2 FPGA的引脚  569
22.2.3 信号保障系统设计  574
22.2.4 程序下载系统设计  575
22.2.5 输入系统设计  577
22.2.6 输出系统设计  578
22.2.7 为PCB准备网表  580
22.3 PMC110计算机PCB设计  580
22.3.1 PCB的边界绘制  580
22.3.2 导入元器件  582
22.3.3 元器件布局  582
22.3.4 电路板的布线  584
22.3.5 电路板敷铜  587
22.4 器件PCB封装设计  589
22.4.1 使用自动导航设计  589
22.4.2 一般器件PCB设计  592
第23章 计算机组装与下载  595
23.1 PCB检测  595
23.2 器件焊接  596
23.2.1 器件焊接的顺序  596
23.2.2 焊接技巧  597
23.3 上电检测和断电修正  599
23.3.1 PC计算机设计下载  599
23.3.2 常驻内存程序测试  601
23.3.3 自编程序测试  602
附录  607

序言
【前 言】
“能不能自己设计制作一台计算机?”
现在,我可以肯定地回答你:“能!”
计算机发展到今天,几乎已经是无处不用了。然而谈起中国人自己制造计算机的问题,未免还有些气短。特别是计算机的灵魂CPU,一色都是国外制造的,就是有人说某CPU是中国人制造的,你也未必相信,最好的回答恐怕也是“山寨”或者仿造。
什么我们自己不能够制造CPU?这涉及到CPU的设计理论方法和超大规模集成电路制造技术。据最新的报导,我国已经掌握了22纳米的超大规模集成电路生产工艺,看来很快就会有真正国内生产的CPU芯片问世。
说到CPU设计,关键要有理论和设计实践环境。长时间以来,我们既缺先进的设计理论,又缺实现CPU理论的设计环境。理论需要头脑思考,只要我们辛勤认真地学习和思考,理论问题就能够解决,关键的是实现CPU设计的环境与工艺技术。可以说CPU设计环境和工艺技术阻碍了我国微电子工业的发展。现在这个问题应该说已经解决了。十几年前发展起来的FPGA芯片,使这一切都变得简单了。FPGA的出现标志着一个全新的个人设计制作CPU芯片的时代到来了。
从进入计算机领域的那一天开始,我就无时无刻不在梦想自己制造一台计算机。这一梦想在2006年终于成为了现实。我不但设计出了完全属于自己的CPU,还亲手制作了以自己的CPU为中心的通用单片机。一般的单片机不能随时运行用户程序,而我制作的单片机可以在运行过程中,随时输入用户程序执行。专用计算机和通用计算机的根本区别就在于能否执行用户程序。
一晃8年的时间过去了。很高兴地看到想要自己设计制作CPU与计算机的人越来越多。这期间向我询问个人设计制作CPU技术的人也多了起来,所以我决定将自己的心得体会写出来,希望能够快速地营造一个自己设计制作CPU与计算机的氛围,希望我国的计算机高端理论和技术能够快速发展。
本书是我三十几年从事计算机教学与科研的经验总结,其中包含多个自己设计的CPU实例。既有复杂指令系统的CPU,也有流水线一类精简指令系统的CPU,特别是还有我自己发明的动态CPU的设计。这些设计工程实例,既有复杂一些的,也有简单的。这样做的目的,是想让那些资深的计算机技术人员和那些资历尚浅的计算机CPU设计爱好者,都能够在本书中获得一些启迪,增加他们投身到计算机高端领域的兴趣。
本书共分三大部分:
上篇叫做CPU设计制作入门。其中主要介绍用硬件编程语言如何来设计制作CPU与单片机。这一部分主要以精简指令格式的CPU设计为主。由浅入深,有简单CPU设计、通用CPU与单片机设计制作、流水线CPU设计、通用流水线CPU与单片机设计制作、透明三级流水线CPU与单片机制作等。
中篇叫做深入CPU设计。这一部分对计算机CPU设计的理论和方法作了深入地介绍和讨论,从源头上来解决CPU设计的基础理论和技术,重点介绍原理图方式设计CPU的技术和方法。这样做的目的是能对初学CPU设计的读者给予理论上的指导,同时力求对那些有创新CPU设计能力的读者有所帮助。这一部分主要包括:
(1)计算机CPU设计原理和方法,重点给出了限位记数法和对称制,它们是机器计算的重要理论和设计的重要依据;
(2)构成CPU的各种元器件设计方法与实际设计,特别给出了定点数加、减、乘、除和浮点数加减法运算器的设计,这些运算器都能够实现超长数的运算;
(3)给出了PMC110计算机基础型和带液晶屏单片机设计的工程实例,重点介绍如何用原理图设计通用计算机的内外结构,液晶屏设备的使用及CPU与外设异步通信的基本方法;
(4)给出了动态计算机PMC362的设计思想与设计方法等。
下篇叫做自己制作单片机。这一部分主要介绍通用单片机如何制作。其中包括带有FPGA的计算机电路板设计、器件选择、设备安装、工程下载等一系列设计制作方法。通过这一部分内容论述,让读者能够成为一个可以独立运行的单片机的制造者。
CPU设计制造之所以被称为“高科技”,在于它所涉及的知识和技术领域较广,所以使一些想涉猎这一领域的人望而却步。什么复杂的CPU设计、什么高深的操作系统设计,通过本书你会看到,原来这一切也不过是如此而已!
书中令作者十分得意的有三点:
第一是限位数与对称制理论,它在补码制的基础上,完善了机器精确计算的理论和方法;
第二是动态CPU的设计理论和方法,这一发明是对以进程线程方法进行程序运行和调度,以系统软件管理内存的运行方式发出了挑战,进而发出了“减少软件消耗”的呼声;
第三是让读者一下子就能够接触到操作系统内核,用简单的十几条指令,就能让读者体会到操作系统的本意。
书中许多内容都是作者的独创,虽然这些内容有些距离市场应用还有相当的距离,但其中所揭示的理论和方法却是最直接的。发展一下,进入市场是指日可待的事情。就我个人几十年的设计体会来说,这方面的东西未必像一些人所描述的那样高深莫测,在FPGA器件和电子设计自动化软件EDA存在的条件下,有志趣的高中生都可以自己将CPU设计出来。
但愿我所写的这本抛砖引玉的书,能够吸引我国更多的年轻人投入到CPU与计算机的设计领域中来!
姜咏江
2014年1月12日

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多