从零开始设计一个简单的CPU和计算机,证明是可行的!

2020-02-02 11:57发布

现代的CPU很强大和复杂,导致很多人认为个人是无法设计一个CPU的,或者即使能设计出来简单的也是需要很多经费和大量的元器件。


百度谷歌一下网上的设计,几乎都是外国人的作品,有一些还是很复杂的,动不动说花了好几年时间。最近有一个英国剑桥的詹姆斯·纽曼(James Newman),打造一台只能玩俄罗斯方块的大块头花了他四年时间,耗资达到4万英镑!!!!而仅仅只是希望让人了解计算机的工作原理。


那我们普通人能不能加入?到底能不能设计出一个计算机来?


当然能!


强大的CPU暂且不说,就拿简单的来说,我认为个人设计一个简单的CPU不但是可行的,还是非常有意义的,当然这个设计必须得是从零开始设计的----只使用简单的逻辑元器件,比如74系列元器件(三极管?)。


在查找了很多相关的书籍还有逛国内外网站后,又花了很多时间去比较和验证,终于设计出了一个简单又特别经典的计算机(关键是成本也少)。


也许很多人说为什么不使用可编程逻辑器件来制作呢?还简单便捷,我觉得能使用简单的逻辑器件制作的才是从零开始设计,也是对计算机的底层工作原理了解最好的方式。


另外要说,按照我的设计,你甚至可以使用简单的三极管、MOS管来制作一个计算机!而且并不是很难的事情,因为我的设计也只使用了28块74系列芯片而已!


==============================================
介绍一下我设计的计算机系统的基本概况:


小名:qCPU(CuteCPU)
CPU:4位
ROM:4KB
RAM:256B
运行频率:74芯片极限
IO:2组4位的IO口
4个按键
其他外设就是5个LED发光二极管,一个蜂鸣器,一个5X7点阵LED,一个LCD1602液晶
总共8条指令,配备我自己设计的汇编器,使用起来跟
当年使用8086汇编编程很像
目前可以使用USB下载,USB提供电源,在电脑编写代码后,编译下载运行一条龙!!


==============================================


目前的指令如下:
ADD 加法
RM 读取内存
ADDC 带进位加法
WM 写内存
SUB 减法
OUT IO输出
< 小于比较
= 等于比较
GOTO 小跳转
QCLR 清空
QMOV 赋值
QADD 加法
QSUB 减法
QGOTO 长跳转
QJMP 立即跳转


==============================================


不多说了,,,上图说话吧,,目前一些功能还在测试中,代码库也在完善中。
这个板子发去打样后发现有一个BUG,就在板子上临时修改了



















友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。