CPU自制入门.pdf

CPU自制入门.pdf
 

书籍描述

编辑推荐
只需编程基础
从零开始设计和实现CPU
CPU、总线、内存、I/O
自己组合成一个简单的计算机系统
超强实践性
从硬件到软件,统统自己动手

作者简介
作者简介:
水头 一寿(KAZUTOSHI SUITOU)
庆应义塾大学硕士毕业。现在在庆应义塾大学攻读博士学位。目前从事实时嵌入式系统的系统LSI相关研究和开发。兴趣为音乐、摄影、自行车等。在RESPON小组担任逻辑设计工作。

米泽 辽(RYO YONEZAWA)
庆应义塾大学硕士毕业后,进入东芝株式会社半导体与存储子公司工作。目前从事高速串行接口IP的开发。兴趣为电子制作、家庭服务器管理等。在RESPON小组担任电路板设计与封面设计工作。

藤田 裕士(YUJI FUJITA)
庆应义塾大学硕士毕业后,进入日本电气株式会社工作。目前从事固件开发工作。兴趣为音乐欣赏、吉他演奏等。在RESPON小组担任软件设计工作。

译者简介:
赵谦
2007年于青岛科技大学取得学士学位。2008年至今在日本熊本大学攻读博士学位。目前从事容错性FPGA架构及其CAD相关研究与开发。在FPGA领域著名国际会议FPGA、FPL以及ICFPT等发表过多篇学术论文。

目录
目 录

第1章 CPU的设计与实现  1
1.1   序  2
1.2   计算机系统  4
1.2.1  什么是计算机  4
1.2.2  什么是CPU  5
专栏  CPU的位宽  8
1.2.3  什么是内存  8
1.2.4  什么是I/O  9
专栏  字节序  10
1.2.5  什么是总线  12
专栏  总线的优缺点  14
1.2.6  小结  14
专栏  计算机相关书籍  14
1.3   数字电路基础  15
1.3.1  什么是数字电路  15
1.3.2  数值表达  15
1.3.3  有符号二进制数  16
专栏  比特和字节  17
专栏  1K字节有多大  17
1.3.4  MOSFET的结构  17
1.3.5  逻辑运算  19
1.3.6  CMOS基本逻辑门电路  20
1.3.7  存储元件  21
专栏  建立时间与保持时间  24
1.3.8  组合电路和时序电路  25
1.3.9  时钟同步设计  25
1.3.10  小结  25
专栏  数字电路相关书籍  25
1.4   Verilog HDL语言  26
1.4.1  什么是Verilog HDL  26
1.4.2  电路描述  27
专栏  默认网络类型  32
专栏  组合电路描述中锁存器的推定与Don’t care  37
专栏  正逻辑与负逻辑  42
1.4.3  电路仿真  43
专栏  同步电路中信号变化的时序  45
1.4.4  Verilog HDL的仿真环境  50
1.4.5  小结  56
专栏  Verilog HDL相关书籍  56
1.5   系统蓝图  57
1.5.1  目标系统整体介绍  57
1.5.2  关于本章中的代码  58
专栏  字编址与字节位移  62
1.6   总线的设计与实现  63
1.6.1  总线的设计  63
1.6.2  总线的实现  66
1.6.3  小结  78
1.7   存储器的设计与实现  79
1.7.1  FPGA的RAM区域  79
1.7.2  ROM的设计与实现  81
1.7.3  小结  83
专栏  存储器相关书籍  83
1.8   AZ Processor的设计与实现  84
1.8.1  关于CPU  84
专栏  CPI和MIPS值  93
1.8.2  AZ Processor的设计  93
专栏  指令集架构与微架构  105
1.8.3  AZ Processor的实现  106
1.8.4  小结  159
专栏  计算机架构相关书籍  159
1.9   I/O的设计与实现  162
1.9.1  定时器  162
1.9.2  UART  167
专栏  UART实例  168
1.9.3  GPIO  181
1.9.4  小结  188
专栏  I/O相关书籍  188
1.10   AZPR  SoC整体连接  189
1.10.1  各模块的连接  189
1.10.2  时钟模块的实现  191
1.10.3  顶层模块的实现  193
1.10.4  小结  193
1.11   AZPR SoC的仿真  194
1.11.1  仿真模型的编写  194
1.11.2  Testbench的编写  197
1.11.3  执行仿真  200
1.11.4  小结  201
1.12   本章总结  202
第2章   电路板的设计与制作  203
2.1   序  204
2.2   电路板规格206
2.2.1  电路板名称  206
2.2.2  电路板的构成  206
2.2.3  电路板尺寸  206
2.2.4  电路板层数  207
2.2.5  FPGA选型  207
2.2.6  外围电路的选定  208
专栏  关于FPGA  209
专栏  关于JTAG  211
2.3   元件选型  212
2.3.1  元件选型标准  212
2.3.2  元件选型  212
2.3.3  元件的选购  218
2.4   电路设计  221
2.4.1  下载规格书  222
2.4.2  配置电路  223
2.4.3  外围电路  228
2.4.4  电源电路  232
2.4.5  电路板设计环境  234
2.4.6  使用Eagle设计电路图  236
专栏  关于ULP  241
专栏  Eagle使用方法相关的书籍/说明书  241
2.4.7  完成的电路图  241
2.5   布局设计  247
2.5.1  电路板设计约束条件及布线策略  247
2.5.2  FPGA板的布局设计  248
2.5.3  电源板的布局设计  252
2.5.4  使用Eagle布局  254
2.5.5  完成的布局  259
2.6   制作元件库261
2.6.1  制作Symbol  261
2.6.2  制作Package  263
2.6.3  制作Device  264
2.7   电路板3D模型  269
2.7.1  软件使用说明  269
2.7.2  准备3D模型库  271
专栏  关于3D模型库的管理  278
2.7.3  制作电路板模型  279
2.8   制作感光板电路板  280
2.8.1  整体流程  280
2.8.2  制作光罩  282
2.8.3  粘合光罩  284
2.8.4  曝光  285
2.8.5  显像  288
2.8.6  蚀刻  289
2.8.7  阻焊剂  291
2.8.8  开孔  296
2.8.9  在背面安装VPort接头时的处理  298
2.8.10  制作通孔  299
2.8.11  飞线  300
2.9   使用电路板制造服务  302
2.9.1  电路板制造服务  302
2.9.2  DRC  302
2.9.3  输出Gerber数据  305
2.9.4  检查Gerber数据  306
专栏  执行DFM检查的方法  309
专栏  阻焊层遮罩的印刷设置  312
2.9.5  向P板.com公司下单制板  312
专栏  拼板数据的准备  314
2.9.6  向OLIMEX公司下单制板  318
2.10   组装电路板  321
2.10.1  电源板  321
2.10.2  组装FPGA板  321
2.11   功能测试  323
2.11.1  识别FPGA  323
2.11.2  诊断程序  323
2.12   本章总结  326
第3章   编程  327
3.1   序  328
3.2   开发环境  329
3.2.1  准备工作  329
3.2.2  FPGA开发环境  330
3.2.3  ISE WebPACK  331
3.2.4  UrJTAG  359
专栏  cblsrv-0.1_ft2232  370
3.2.5  交叉汇编程序  370
3.2.6  第一个程序  376
3.3   串口通信  381
3.3.1  安装Tera  Term  381
3.3.2  编写程序  382
专栏  子程序  388
专栏  ASCII码  389
3.3.3  执行程序  390
3.4   程序加载器  391
3.4.1  XMODEM协议  391
3.4.2  编写程序  393
3.4.3  编写加载测试程序  402
3.4.4  执行程序  403
3.5   中断与异常  406
3.5.1  什么是中断  406
3.5.2  编写程序  410
3.5.3  执行程序  414
3.5.4  什么是异常  415
3.5.5  编写程序  415
3.5.6  执行程序  419
3.6   七段数码管  420
3.6.1  什么是七段数码管  420
3.6.2  七段数码管的控制  420
3.6.3  七段数码管计数器概要  422
3.6.4  编写程序  423
3.6.5  执行程序  428
3.7   制作一个实用程序  429
3.7.1  功能概要  429
3.7.2  制作程序  433
3.7.3  执行程序  446
3.8   结语  447
谢辞  448
后记  449
版权声明  450

序言
【译者序】
接触IT 行业十多年来,我的书架上始终缺少一本书。我有各种语言的经典书籍和实用手册,它们帮助我使用最合适的工具解决问题。我还有一些操作系统、编译器和软件架构方面的书籍,它们指导我写出更高效的代码。然而对于操作系统之下的CPU 内部世界,我的认识依然停留在大学时80×86 处理器的课堂上。那门课让我学会了如何使用CPU,而如何设计和实现CPU 却始终是我知识体系中缺失的最底层的一环。
《CPU 自制入门》正是我一直寻找的那本书。本书介绍了计算机系统最物理、最底层的3 个部分:CPU 设计制作、电路板设计制造以及汇编编程。作者们利用FPGA 芯片,开启了一个崭新的自制CPU 的世界。将如此广泛的技术内容以实践的方式结成一册,该书可谓首屈一指。
更让我印象深刻的是本书的阅读门槛非常低。几乎所有必要的基础知识书中都有介绍,如数字电路设计、Verilog 语言,甚至还包括电路板CAD 软件的使用,等等。其中任何一个内容展开讨论都需要几本书的篇幅,然而本书作者们却可以依靠丰富的经验,以最精简的文字,将最核心的知识汇集到一本书中,使各种知识背景的读者都可以方便地阅读。
近年来,随着摩尔定律接近极限,计算机系统很难再像从前那样单纯依靠芯片制程的进步获取速度提升。而为了设计更加高速的计算机系统,人们越来越多地将目光集中到了定制硬件技术上。同时,FPGA 的发展和普及大大降低了定制硬件的开发难度和成本。通过在FPGA 上实现定制硬件加速器,将应用性能提升几十到几百倍的案例在学术界已经屡见不鲜。而苹果、微软、谷歌等大型IT 企业,目前也已纷纷开始或计划将硬件加速技术应用到电子产品和服务器当中。在可预见的未来,具备软硬结合设计能力的工程师将会更加具有竞争力。
《CPU 自制入门》是为读者打开硬件设计大门的理想教材。通过阅读本书,软件工程师能够更加了解硬件与底层,开发出高效代码。硬件工程师则可以在本书基础上设计定制硬件,进而开发高性能计算机系统。相信所有读者都可以在本书的阅读过程中受益匪浅,零距离地体验自制计算机系统的乐趣。






赵谦 (@JonsonXP)
2013 年11 月

文摘
译者序

内容简介
一直以来CPU内部是绝大多数IT工程师难以触及的领域。纵使学习过计算机架构相关课程,自己动手实现CPU也始终遥不可及,因为这涉及计算机系统的最底层——芯片设计。而近年来FPGA芯片产品的发展与普及打破了这一阻碍,利用内部电路可重编程的FPGA,我们几乎可以实现任何逻辑电路,自然也包括CPU。
本书就是在这样一个背景下孕育而生的。本书利用FPGA,为读者开启了一个崭新的自制CPU的世界。全书分为3章,分别介绍计算机系统最底层的3个部分:CPU设计制作、电路板设计制造以及汇编编程。将如此广泛的技术内容以实践的方式融合成一册,该书可谓首屈一指。
本书可以帮助软件工程师深入了解硬件与底层,开发出高效代码。硬件工程师可以在本书基础上设计定制硬件,开发高速计算机系统。相信所有读者都可以在本书的阅读过程中,体会到自制计算机系统的乐趣与热情。

购买书籍

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

PDF电子书下载地址

相关书籍

搜索更多