新書推薦:
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:NT$
1800.0
《
(棱镜精装人文译丛)思想的假死
》
售價:NT$
290.0
《
当代精神分析新论
》
售價:NT$
430.0
《
宋初三先生集(中国思想史资料丛刊)
》
售價:NT$
990.0
《
棕榈油的全球史 : 从奴隶船到购物篮
》
售價:NT$
440.0
《
简帛时代与早期中国思想世界(上下册)(王中江著作系列)
》
售價:NT$
1400.0
《
进化主义在中国的兴起(王中江著作系列)
》
售價:NT$
950.0
《
不废风雅 生活的意趣(汪曾祺风雅意趣妙文)
》
售價:NT$
280.0
|
編輯推薦: |
我没有想过真的有人会去写这样的一本书,
更没想到作者会把这本书写得如此深入浅出。
如果你问我学习设计和制作CPU和计算机有什么用?
一,你将第一次真正意义上理解计算机。
二,你将见证你比你想象的更强大。
如果你是计算机体系结构科研人员:在学习国外各种CPU结构的基础上,了解一下如何从头研发自己的CPU体系结构是十分必要的,要走创新路,必须从基础设计开始。
如果你是计算机软硬件人员群体:急需掌握计算机高端设计理论和方法,其中最重要的就是CPU设计技术。软件人员更需要深入了解CPU的核心技术,搞清楚软硬件接口,从而能够透彻地理解和掌握高层次的系统程序设计方法。
如果你喜欢CPU设计与制造:CPU设计制造是计算机的高端技术与方法,长期以来被国外封锁和限制。有志自己设计制造CPU的人很多,寻找一本言简意赅,能够快速上手的CPU设计制造的书籍是广大CPU发烧友的急切愿望。
如果你是大学计算机专业学生:本书内容具体化了计算机专业研究生、本科生的“计算机系统结构”课程的内容与方法,不再停留在一般知识和理论的理解层面上,更重要的使他们通过本书能直接进入计算机核心部件的设计层面,化解他们
|
內容簡介: |
这是一本为有志于计算机CPU设计的人员所写的书,不论你是狂热的发烧友,还是精明的计算机专业工作者。
《自己设计制作CPU与单片机》以作者几十年学习设计制作CPU与通用单片机的经历,来告诉你如何从无到有地设计属于你自己的CPU和可以运行用户程序的单片机。书中以作者的十几个CPU设计工程为主线,展示了精简指令系统RISC 和复杂指令系统CISC计算机CPU的设计方法。既有硬件编程,又有原理图设计,适合软硬件人员学习计算机核心技术之用。
《自己设计制作CPU与单片机》通过实例告诉读者,如何创造性地进行计算机高端产品CPU的立意和设计,介绍了人机交互和操作系统内核的设计方法。这是一本对要全面掌握计算机高端技术的人员而言必读的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
|
|