打印
[创新制造展示]

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

[复制链接]
5556|35
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋林|  楼主 | 2017-4-11 11:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 秋林 于 2017-4-11 11:12 编辑

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

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

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

当然能!

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

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

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

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

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

小名:qCPU(CuteCPU)
CPU:4位
ROM:4KB
RAM:4KB
运行频率: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   立即跳转
==============================================

不多说了,,,上图说话吧,,目前一些功能还在测试中,代码库也在完善中,敬请期待。












相关帖子

沙发
秋林|  楼主 | 2017-4-11 11:13 | 只看该作者
为了方便交流,我建了一个QQ群 自制CPU和计算机群 322053937

使用特权

评论回复
板凳
kerb_huang| | 2017-4-11 13:24 | 只看该作者
这方面的 已经有参考书籍, 例如   CPU自制入门     自己动手写CPU

使用特权

评论回复
地板
xyz549040622| | 2017-4-11 17:50 | 只看该作者
1.图片挂掉了
2.用汇编不算牛X,像易语言一样,做成用中文编程才牛X了。

使用特权

评论回复
5
xyz549040622| | 2017-4-11 17:50 | 只看该作者
用汇编不算牛X,像易语言一样,做成用中文编程才牛X了。

使用特权

评论回复
6
xxzouzhichao| | 2017-4-11 19:31 | 只看该作者
楼上这么酸?

使用特权

评论回复
7
dirtwillfly| | 2017-4-11 20:10 | 只看该作者
感谢分享

使用特权

评论回复
8
gaochy1126| | 2017-4-11 20:49 | 只看该作者

使用特权

评论回复
9
yearnext| | 2017-4-11 21:37 | 只看该作者

使用特权

评论回复
10
ljw7755105| | 2017-4-11 21:50 | 只看该作者
你也算是大神了

使用特权

评论回复
11
ta1ent| | 2017-4-12 00:16 | 只看该作者
数电高手哇,膜拜~~不过用FPGA搞的话是不是更方便些~~

使用特权

评论回复
12
@若水| | 2017-4-12 08:37 | 只看该作者
32个赞,数电对于我,只是两个文字,完全丢了,所以看不懂

使用特权

评论回复
13
hzband| | 2017-4-12 08:49 | 只看该作者
建意用FPGA/CPLD吧,完全可以做出个简易版32位CPU。

使用特权

评论回复
14
infofans| | 2017-4-12 09:22 | 只看该作者
真不错,大赞一个!!

使用特权

评论回复
15
xiaozhuzhuzhj| | 2017-4-12 09:34 | 只看该作者
楼主大才,这种要很深的功力才行,持续关注!

使用特权

评论回复
16
yzqok| | 2017-4-12 09:47 | 只看该作者
真是下了工夫,这种精神不得不赞一个 未来的国产计算机 666666

使用特权

评论回复
17
江宇芯城1008| | 2017-4-12 09:56 | 只看该作者
(最近有一个英国剑桥的詹姆斯·纽曼(James Newman),打造一台只能玩俄罗斯方块的大块头花了他四年时间,耗资达到4万英镑!!!)
  外国的电子元件辣么贵????
  

使用特权

评论回复
18
icecut| | 2017-4-12 11:15 | 只看该作者
用一个 cy3 的 fpga 不就搞定了/??

使用特权

评论回复
19
linqing171| | 2017-4-12 11:41 | 只看该作者
楼主应该直接去open core上下载个现成的。
然后移植个gcc后端,做个eclipse插件。
这才是正统的路线啊。莫非楼主是不是教FPGA的?这个野路子啊。

楼主的跳转指令,少个条件跳转,也就是比较的结果为真,跳转。如果没有if-else来做分支,只有一个流水线就成了面条了。
你15条指令中的out和写内存可以合并为一个。

使用特权

评论回复
20
linqing171| | 2017-4-12 11:43 | 只看该作者
https://bbs.21ic.com/forum.php?mo ... p;page=1#pid7618202
看看这个。

如果楼主做的好,可以帮你移植编译器。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

2

粉丝