文号
t67627
阅读
30261
回复
32
收藏
21
[原创电路]单周期1位CPU电路图 只用11片TTL74门电路 玩具级别 方便发烧友DIY
2014/10/21
IP:广西
发现CPU DIY发骚友苦于找不到简单的CPU电路...
那么问题就来了,为何不设计个超级简单的CPU给CPU DIY发烧友入门...
于是电路就诞生了...
跳转指令执行跳转的时候消耗2个时钟 不执行跳转消耗1个时钟  其他指令都是1个时钟 工作频率估计10MHZ以上;
非常简单的一个电路;
这个CPU搭配 ROM 和 位RAM/IO 就可以工作了;
ROM位宽是16位(1条指令16位);
这里的程序计数器可以寻址64KB的ROM(可以增减);
如果你有想法...这个CPU是可以实现比较牛逼的程序  加上RAM/IO 带个TFT模块神马的...

单周期1位CPU电路图.png
32
12年2个月前IP:广西
727339
1楼
[s::funk:]DIYCPU技术哪家强, 科创论坛找龙少[s::funk:]
引用
评论
12年2个月前IP:山西
727342
2楼
又出神作了,前排膜拜!
引用
评论
12年2个月前IP:浙江
727346
3楼
膜拜[s:306]
引用
评论
12年2个月前IP:天津
727348
4楼
[s:306] 又有神作了
引用
评论
12年2个月前IP:四川
727355
5楼
喜闻乐见的套件呢[s::lol]
引用
评论
12年2个月前修改于 12年2个月前IP:广西
727365
6楼
引用 虎哥:
喜闻乐见的套件呢
.....那部8位机写几个程序跑跑先再说  如果出套件的话必须有一个严谨的设计...  那个8位机的CPU毕竟是人生第1个DIY CPU, 设计不是很严谨,  出套件的话不打算出那个,  现在准备搞定编译器写程序让它大规模跑起来感觉不一样的!   搞定之后发布文件  可以仿照DIY;
本贴这个1位CPU可以出套件  但是长远考虑 也不打算出这个架构的套件;   如果出套件的话肯定要出个超牛X架构的套件...
引用
评论
12年2个月前IP:广东
727371
7楼
挺好的,1bit机器出套件,元件够少,够好玩。楼主若能折腾出编译器,马上就变成高端玩具了。

看了一下,基本看明白了,俺数电水平也算对得起群众了。跳转信号没到,地址计数器不断+1;跳转信号到了,ROM地址计数器就载入R1 R0两个寄存器的内容。
ROM出来的数据,低8位是数据,高8位是指令。

计算逻辑接哪里?作为位寄存器的某个地址吗?是不是我将操作数写入某两个地址,然后从第三、第四个地址读出结果?

没有计算逻辑,感觉写一个8位+8位的加法,都要好长一段哦。。。
引用
评论
12年2个月前IP:广东
727379
8楼
其他指令可以虚拟出来 用一小段程序实现
建议用74AC系列的芯片跑到100MHz以上
编译器可以用sdcc做改造,那个的c解析部分是通用的,根据不同的ic产生机器码的部分改改就好
引用
评论
12年2个月前IP:陕西
727414
9楼
引用 warmonkey:
其他指令可以虚拟出来 用一小段程序实现
建议用74AC系列的芯片跑到100MHz以上
编译器可以用sdcc做改造,那个的c解析部分是通用的,根据不同的ic产生机器码的部分改改就好
编译器后端的理论不是还不太成熟吗?机器相关的优化要做好应该不容易吧。
引用
评论
12年2个月前IP:天津
727428
10楼
又出神作了~支持
虽然看不懂。。不过还是先记下了。。要是能出套件就好了
引用
评论
12年2个月前IP:广西
727453
11楼
引用 novakon:
挺好的,1bit机器出套件,元件够少,够好玩。楼主若能折腾出编译器,马上就变成高端玩具了。

看了一下,基本看明白了,俺数电水平也算对得起群众了。跳转信号没到,地址计数器不断+1;跳转信号到了,ROM地址计数器就载入R1 R0两个寄存器...
...计算逻辑可以接外面  不接的话1位1位判断计算= =
引用
评论
12年2个月前IP:广西
727455
12楼
引用 warmonkey:
其他指令可以虚拟出来 用一小段程序实现
建议用74AC系列的芯片跑到100MHz以上
编译器可以用sdcc做改造,那个的c解析部分是通用的,根据不同的ic产生机器码的部分改改就好
100MHZ[s::funk:]
引用
评论
12年2个月前IP:北京
727895
13楼
这个简单版的有没有文档发布呀,简单点的易上手点、
引用
评论
12年2个月前IP:广西
728170
14楼
引用 zengdz:
这个简单版的有没有文档发布呀,简单点的易上手点、
现在还没写文档
引用
评论
12年2个月前IP:湖南
728229
15楼
话说论坛改版以后收藏怎么也找不到了[s::Q]

窝们可以把它变成红石。。。
引用
评论
12年2个月前IP:江西
728507
16楼
希望早点发布个详细的简单版的文档,不然跟不上呀、
引用
评论
12年2个月前IP:广西
728562
17楼
引用 zengdz:
希望早点发布个详细的简单版的文档,不然跟不上呀、
那张图就说明一切了  门电路型号  原理图  指令集都在那里,  时序的话自己分析一下就出来的  通电 复位 然后给脉冲....就能跑    位寄存器和ROM那一块 我看看有空再画个图...发挥你的想像..    有数电基础和计算机原理基础的 一看就知道怎么回事  数电基础和计算机原理基础网上大把
引用
评论
12年2个月前IP:广西
728572
18楼
这个CPU如果要实现函数调用的话比较困难  不是说实现不了  不过函数返回地址装入程序计数器很蛋疼   要靠编译器实现
实现方法:
这里  y为返回地址选择   调用函数的时候要给y装入返回地址选择值
然后函数尾部生成如下返回指令(编译器计算生成)...
if(y == 0) xxxx地址装入程序计数器;
else if(y == 1) xxxx地址装入程序计数器;
else if(y == 2) xxxx地址装入程序计数器;
.
.
.
.
.
.
这里目的是实现功能 忽略效率

1位CPU怎么判断多位数...   可以通地址线来选择判断哪一位 一位一位判断  虽然程序复杂而且量大 但是可以实现.
CPU指令功能简单 实现同样功能但代码量大  CPU指令功能复杂  实现同样功能代码量低.

这个CPU是可以实现C语言编译器的, 除了递归...
现在考虑是不是要做这个CPU的编译器开发这个CPU  如果做的话程序计时器增加到24位ROM容量可以寻址到16MB
引用
评论
12年2个月前IP:江西
728657
19楼
引用 神之觉醒:
那张图就说明一切了  门电路型号  原理图  指令集都在那里,  时序的话自己分析一下就出来的  通电 复位 然后给脉冲....就能跑    位寄存器和ROM那一块 我看看有空再画个图...发挥你的想像..    有数电基础和计算机原理基础...
计算机原理书的话全是些抽象概括,真正内部机理还是不明白,所以有个实际例子更好理解。不然对着书要纠结死的、
引用
评论
12年2个月前IP:黑龙江
728788
20楼
记号,
引用
评论
12年1个月前IP:福建
732330
21楼
这个膜拜,楼主威武
引用
评论
12年0个月前IP:海南
736349
22楼
控制1和控制2是干什么用的?看来半天还是不明白
引用
评论
12年0个月前IP:广西
736447
23楼
引用 分立元件:
控制1和控制2是干什么用的?看来半天还是不明白
这个看你心情...用来控制什么都行    这个图现在一看画得好无聊了...= =...  运算器都不用[s:;P]..
引用
评论
12年0个月前IP:海南
736588
24楼
楼主应该去别的地方多发贴,在这里没有多少人看到的,在百度搜索自制CPU也没有看见你的帖子,让很多人错失了学习的机会!!
引用
评论
11年9个月前IP:湖南
757498
25楼
位寄存器有16个,BIT_CB只有4个,只有置零,没明白怎么用起来的。
引用
评论
11年6个月前IP:陕西
771497
26楼
大神你好!我研究您的一位CPU两天了,有几个问题没有弄明白:这个CPU是直接从ROM里读取指令的对吗?如果是的话那RAM在这个架构中又起到什么作用呢?还是仅仅用于读写IO?或者位寄存器16位地址总线另有他用??望大神指点一二!
引用
评论
11年6个月前IP:广西
771545
27楼
引用 天上猪在飞:
大神你好!我研究您的一位CPU两天了,有几个问题没有弄明白:这个CPU是直接从ROM里读取指令的对吗?如果是的话那RAM在这个架构中又起到什么作用呢?还是仅仅用于读写IO?或者位寄存器16位地址总线另有他用??望大神指点一二!
...额, 莫纠结, 这里的CPU是直接从ROM读取指令的, 这里的位寄存器16位地址总线可以看做是RAM的地址总线, 然后这里的RAM的位宽只有1位..  BIT_CB0~3用来操作iRAM(位寄存器), 就是这个意思~   参考参考就可以,,,
建议研究这个结构 https://www.kechuang.org/t/68167 ,  很容易做成宽位的,  运算器也可以换成你自己设计的运算器,  过阵子所有指令执行的详细原理会弄成文档, 敬请关注>>>
引用
评论
11年5个月前IP:江苏
782295
28楼
来这学习了,很早之前就在看homebrew上的cpu设计,就是太过复杂了,不适合简单DIY,现在终于找到了!哈哈可以继续玩DIY cpu了。。。希望楼主多写点说明类的教程哇
引用
评论
11年5个月前IP:广西
782634
29楼
引用 星湖三文鱼:
来这学习了,很早之前就在看homebrew上的cpu设计,就是太过复杂了,不适合简单DIY,现在终于找到了!哈哈可以继续玩DIY cpu了。。。希望楼主多写点说明类的教程哇
嗯  会的, 多谢支持.
引用
评论
11年4个月前IP:四川
785531
30楼
这不是位片机么?[s::lol]以前的军工,比如PL7还是哪个,主控就是位片机做的,位宽很奇怪,貌似是数据+校验的样式。
引用
评论
11年4个月前IP:山东
786079
31楼
楼主多多注意身体啊,可持续发展[s::P]
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的