内容简介
这是一本为有志于计算机CPU设计的人员所写的书,不论你是狂热的发烧友,还是精明的计算机专业工作者。
本书以作者几十年学习设计制作CPU与通用单片机的经历,来告诉你如何从无到有地设计属于你自己的CPU和可以运行用户程序的单片机。书中以作者的十几个CPU设计工程为主线,展示了精简指令系统RISC和复杂指令系统CISC计算机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,一色都是国外制造的,就是有人说某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的设计思想与设计方法等。
下篇叫做自己制作单片机。这一部分主要介绍通用单片机如何制作。其中包