从零开始设计一个简单的CPU和计算机,证明是可行的!
qql2017/02/22计算机电子学 IP:广西
现代的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   立即跳转
==============================================

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

pp01.png
pp02.png
pp03.png
pp04.png
pp05.png
pp06.png
pp07.png
pp08.jpg
pp09.png
pp10.png
pp11.jpg
pp12.jpg

待续……

[修改于 7年8个月前 - 2017/04/10 15:24:45]

来自:计算机科学 / 计算机电子学
35
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
ry7740kptv
7年10个月前 IP:山东
831028
目测分立CPU风暴来袭~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
7年10个月前 修改于 7年10个月前 IP:四川
831039
楼主精神可嘉
龙少先后做了几个74搭建的CPU,在爱好者圈中达到登峰造极的水平。但他没有继续深造,并且婉拒现代处理器的设计模式和工具链,可惜了。
希望楼主做得更好。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 IP:广西
831054
我做的这个比较简洁直观,后面我写一写我这个跟龙少的区别,顺便评价他的设计
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
bg8npk
7年10个月前 IP:广东
831058
74芯片厂或成最大赢家
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
manbo789
7年10个月前 IP:广东
831079
能上电路原理图吗?
引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 IP:广西
831241
引用 manbo789:
能上电路原理图吗?
还在测试中,现在请假在家,后面上传
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 修改于 7年10个月前 IP:广西
831244
引用 虎哥:
楼主精神可嘉
龙少先后做了几个74搭建的CPU,在爱好者圈中达到登峰造极的水平。但他没有继续深造,并且婉拒现代处理器的设计模式和工具链,可惜了。
希望楼主做得更好。


龙少制作的CPU有一个小缺点,就是直接用控制信号线接到寄存器芯片74HC273的CLK引脚,
这样的话,就不能在相邻的指令修改同一个寄存器的值。如下图

龙少CPU缺点1.jpg

不过这个对一般的使用没有什么影响
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
Cirno
7年10个月前 IP:美国
831246
谁来搭个74 GPU 然后跑一跑 CNN 吧。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
7年10个月前 IP:河北
831254
这种CPU在Youtube上一般被称作“homebrew computer”

希望这些资源能帮上LZ
XXXXXXXXXXXXXXXXXXXXXXX/results?search_query=homebrew+computer
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 修改于 7年10个月前 IP:广西
831255
那些基本都是 使用某一种现成的 CPU的,比如6502,也算比较好玩吧
但是我做这个是 从零开始的,,到时候我做一系列视频教程讲解从
草稿纸设计一个简单的计算机。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 IP:广西
831257
其实我做的这个跟之前龙少制作的很像,从基本原理上看差别很小,
都是哈佛结构,都没有中断和栈,但是这些都可以利用编译器从软件上模拟。

简单罗列一下差别如下:

龙少CPU                                         qqlCPU  (qCPU)
位数:8位                                                  4位
ROM:2MB/4MB                                       4KB
RAM:4MB                                                4KB
ALU 芯片:74LS181                                74HC283
电路板:14块                                   1块主板 + 1块下载器
下载方式: 编程器?SD卡?                USB下载器

下载方式肯定是USB下载方式好的,连电源都可以省略了,编译下载运行
一键搞定

成本:  
龙少的187块IC芯片+14块PCB板子,焊接都很麻烦了
他的设计中使用了过多的244三态门缓冲器,不是一个简洁的设计。

我的设计中使用153,157数据选择器,比使用244简洁。
我的整个系统才28块IC,一块16cmX10cm 大小的主板

外设:
其他什么外设VGA之类其实不是很必要,毕竟只是简单的处理器
LED流水灯,LED点阵,简单的字符液晶就算完美了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
光谱
7年10个月前 IP:湖南
831357
窝目前也在挖这个坑2333不过我懒得买74看手册了,FPGA大法好:)
lz不要一看到语言就想到python啦lua啊javascript什么的。语言也有高级的和低级的。
比如verilog就low的不要不要的
blob.png
blob.png
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 修改于 7年10个月前 IP:广西
831363
引用 分析纯_金:
窝目前也在挖这个坑2333不过我懒得买74看手册了,FPGA大法好:)
lz不要一看到语言就想到python啦lua啊javascript什么的。语言也有高级的和低级的。
比如verilog就low的……
嗯,,其实 我也玩C++,PHP,JS,python也用过。VHDL学校学过,verilog 后面自己还专门学了
一下,还不错。
目前做这个就是想只是使用 简单的元器件搭出来,我还想从晶体管级别搭一个,
或者用继电器搭一个,证明一下在150多年前,其实人们也可以用继电器搭一个计算机。
不过这个要耗费很多时间,先放一放吧。
============================================

我设计的这个,我觉得是4位计算机中最简洁的(简洁就是美),非常适合类似中学生这样
入门学习计算机原理。
后面我做一系列视频讲解怎么玩,以及点评讲解其他人的设计。

如果大家支持我的话,后面我再研究 冯诺依曼体系结构的 CPU设计,可能做复杂一些,加入

中断,栈之类,有可能用FPGA来设计。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
光谱
7年10个月前 IP:美国
831369
引用 qql:
嗯,,其实 我也玩C++,PHP,JS,python也用过。VHDL学校学过,verilog 后面自己还专门学了
一下,还不错。
目前做这个就是想只是使用 简单的元器件搭出来,我还想从晶体管级别搭一个……
继电器非常好评,我有空也打算弄个玩的。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
7年10个月前 IP:四川
831370
如果没记错的话的,计算机史上的确有继电逻辑的作品。当年灵图搞的那个破译机,不就是继电 机械逻辑吗。而德国更先一步制成Z3型计算机,美国也在同一时代制成了MARK系列计算机。用电子管替代继电器是顺理成章的事情,目标至今没变:提速。
1.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 IP:广西
831398
引用 虎哥:
如果没记错的话的,计算机史上的确有继电逻辑的作品。当年灵图搞的那个破译机,不就是继电 机械逻辑吗。而德国更先一步制成Z3型计算机,美国也在同一时代制成了MARK系列计算机。用电子管替代继电器是顺理成章……
虎哥,我正想后面把图灵破译的那个算法提取出来,用我自己设计的CPU来破译德军的密文,哈哈哈

或者计算圆周率π 也挺好玩的,还有其他比较有趣的比如 生成对数表 等等之类的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
guangyu_2005
7年10个月前 IP:浙江
831434
期待qql,尽快更新,前期联系龙少未果。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
7年10个月前 IP:河北
831459
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
guangyu_2005
7年10个月前 IP:浙江
831479
youtube播放不出,有什么办法?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-16533
7年10个月前 修改于 7年10个月前 IP:广东
831499
没有栈是怎么实现CALL和RET的?
是把地址存进寄存器?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 IP:日本
831505
引用 radio:
没有栈是怎么实现CALL和RET的?
是把地址存进寄存器?
有栈,只是没有专门的栈指针,因为寄存器资源紧一点,用一个内存地址来做栈指针
毕竟内存有4KB这么大,相对寄存器多很多
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 IP:日本
831506
引用 guangyu_2005:
youtube播放不出,有什么办法?
你可以使用赛,风,蓝,灯之类的软件,就能打开youtube
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 修改于 7年10个月前 IP:日本
831507
引用 guangyu_2005:
期待qql,尽快更新,前期联系龙少未果。。。
前面打样PCB有BUG,浪费了200,现在重新打样10片(打样很慢还没到),我自己留一片,
我算了一下,整个系统100来块钱,你要的话给你留一片
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 修改于 7年10个月前 IP:日本
831508
引用 guangyu_2005:
期待qql,尽快更新,前期联系龙少未果。。。
做一款经典的计算机设计板子还是挺累人的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 修改于 7年8个月前 IP:广西
831521
下面是这个计算机系统的设计原理图,基本没有什么修改了,大家可以看看

MAIN.png


其他LED数码管,LED点阵,下载线还在制作测试中。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
manbo789
7年10个月前 IP:广东
831522
编译器是自己弄的?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 IP:广西
831534
引用 manbo789:
编译器是自己弄的?
自己弄的,,就是一个汇编器,支持标号地址
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年10个月前 IP:广西
831557
新版本设计发到了新帖子这里
XXXXXXXXXXXXXXXXXXXXXXXX/t/81483
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡
7年9个月前 IP:江西
831741
用来学微机原理比较有感觉
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
特斯拉的小弟
7年9个月前 IP:海南
831790
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年9个月前 IP:广西
831952
这个视频好像我以前看过,,后面我研究一下他的电路看看怎么样
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年9个月前 IP:广西
832094
为了方便交流,我建了一个QQ群 自制CPU和计算机 322053937
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
miles
7年9个月前 IP:内蒙古
832261
是不是一片CPLD就能装下
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
qql作者
7年9个月前 IP:广西
832438
引用 yuhang:
是不是一片CPLD就能装下
可以装下的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}