赞
踩
用FPGA如何自己设计CPU和制作计算机.pdf
用 FPGA 如何自己设计 CPU 和制作计算机
姜咏江
对外经济贸易大学信息学院
关键词:FPGA CPU设计 计算机制作
1 引子
两年前,在YOCSEF 举办的“反造假”誓师大会上,当我说出专家要自己设计制作计算机时,一位
老前辈当时就说:“不可能,我们根本没有条件!”其实,那个时候我已经自己设计制作出一台包括CPU
在内的教学计算机了(见图 1 )。在十几年前,要说个人设计制作一台计算机,那简直是天方夜谭,因为
工艺条件根本就不具备。如今的情况大不相同了,成熟的电子设计自动化 EDA 软件和可编程器件
CPLD/FPGA 出现,再加上PCB 设计方便的软件,一个个人能够设计制作计算机的时代已经到来了。现
在,个人完整设计制作单板机一类的计算机并不困难。只要你具备计算机的系统理论知识,学会PCB 电
路板设计制作方法,你就可以造出一台你所
需要的计算机!①
为了让更多的人能够迅速掌握用 FPGA
自己设计CPU 和制作计算机的方法,推动我
国计算机科学向深层次发展,本文特一般性
介绍一下设计需要掌握的基本知识和设计制
作计算机的一般过程。
2 计算机设计必要的知识
计算机确实是一个十分复杂的机器,你
想设计制造它,一定要有强烈的欲望。在这
个前提之下,一般要具备下面所说的一些知 图 1 用 FPGA 自制的计算机在运行
识。
2.1 计算机设计原理
懂得计算机的原理,特别是关于体系结构的原理和方法,这是能否设计制造出计算机的最基本条件。
计算机起源于四方面的基础理论:限位记数②、信息表示方法、逻辑代数和逻辑电路。在掌握这些
基础理论和方法的同时,要明确冯.诺依曼计算机设计的基本思想,理解好总线结构计算机信息交互的基
本形式,就可以自己设计计算机的部件,组织能够运行程序的体系结构了。
一般认为计算机体系结构的层次如图 2 所示,矩形右面的标注是对应层次的典型设备或内容。图中
最低的三层,由电子电路方面的专业技术解决,计算机设计者只要提出要求,明确那些物理器件的使用
方法即可,特别是集成电路技术如此发达的今天更是如此。自己设计CPU 和制作计算机,则必须理解好
上面的5 个层次中与设计直接相关的内容。
计算机是由运算器、存储器、控制器和输入输出设备构成的,这些设备直接涉及到数字电路、逻辑
电路、指令系统和外部设备的连接管理,如果要使计算机能够完成那些用户需要的任务,还必须熟悉程
序执行的方法设计。真正的计算机设计过程是从软件需求出发的,考虑计算机的整体设计,要从如下的
分析步骤来进行。
(1)运行任务程序的种类;
① 详细制作方法请参阅所列参考文献
②见参考文献[6]
-1-
(2 )需要哪些必要的程序支援;
(3 )实现程序设计需要哪些指令;
(4 )全部指令实现需要哪些信息结构和处理方式;
(5 )信息结构和处理方式的实现需要哪些必需的设备;
(6 )设备如何组织和关联;
(7 )低3 个层次的元器件支持。
在今天这个超大规模集成电路的CPLD/FPGA 非常发达的时期,许多模拟电路中复杂的设备都被制
成了体积很小的集成电路块,在进行计算机设计时,将这些器件按照需要拿来使用即可,基本上不用再
过多考虑模拟电路层、器件层和物理层的问题,这正是我们今天能够个人设计制作计算机的基础条件。
2.2 逻辑电路设计
逻辑电路设计是计算机所构成的5 大部件
设计的基础,因而要在懂得逻辑代数和逻辑电
路的基础上,熟练掌握电路描述的原理图和硬
件设计语言,熟悉常用器件和电路的结构和基
本功能。二进制的数字电路只能通过只有“0 ”
“1”逻辑值的逻辑电路实现,这是数值运算转
化为电子电路运算的基本途经。
2.2.1 用限位数设计运算器
实际上计算机中的数,到达物理器件一级,
只是那些易识别和控制的电子器件的有限位排
图 2 计算机体系结构的层次
列,因为这些电子器件容易识别两种对立的状
态,所以在数字电子计算机中才使用二进制。所有在计
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。