DIY计算机电子学
1
自制74门8位CPU
分立元件 2019-1-21 20:19:43

忙活了一个月终于完成了这个CPU,这是我从2014年以来一直YY的一个CPU,这几天终于完成了

本CPU指令39条:传送指令33条、控制转移指令3条、运算指令2条,空指令1条。

本CPU每一个时钟一条指令,单周期指令,由高位ROM和低位ROM组成16位指令,地址16位,ROM和RAM都是64KB


一直以来对CPU的运行原理很是好奇,看了很多的的书都不明白,写的太复杂,直到2014年看了《穿越计算机的迷雾》、《编码的奥秘》,龙少设计的CPU,终于明白了原理!

这个CPU其实是龙少CPU的改进版!最大区别在控制器,他的CPU只利用了时钟上升沿,而我这个控制器使用了上升沿和下降沿,利用时钟上升沿三态门打开,下降沿寄存器锁存完成指令控制


本CPU工作原理:

1、A寄存器传送到B寄存器: ROM地址0001H存放高00100001 低00000000,高ROM输出连接两个4/16译码器,低ROM输出连接数据总线,用于实现立即数传送到寄存器和RAM,实现数据和地址传送!高ROM输出00100001使译码器1的,A三态门控制端为0,译码器2的,B触发器触发端为0,但是我这里使用反相器,使4/16译码器输出1011111111111111反相0100000000000000,在使用三态门控制输出,只有在时钟低电平的时候才输出高电平脉冲,实现触发器控制,也就是时钟为高电平时三态门打开,时钟为低电平时触发器锁存数据,完美实现一个时钟内完成一条指令控制!!!


2、立即数传送到A寄存器:ROM输出高00011110 低00000001(立即数1),高ROM输出00011110使控制器译码输出《低ROM的输出端OE为零,A寄存器锁存端为高电平脉冲》一个时钟周期内OE一直为零,输出数据到数据总线,A锁存端只有在时钟低电平时才完成上升沿锁存!!!


3、无条件转移指令原理:使用C寄存器(低8位地址)、D寄存器(高8位地址),74LS161置位功能实现,首先传送要跳转的地址给C、D寄存器,然后让控制器使74LS161的置位端为零,然后时钟上升沿使74LS161置位,完成无条件跳转!

其它条件转移指令实现原理一样,只是增加逻辑电路使条件满足时置位端才为零!!!


 

指令集.pdf22.8k26次下载

 

有一条指令是RAM写指令,因为写时序的特殊,不经过反相器,直接和时钟信号组成或门电路控制WE端,时钟上升沿才完成写入数据!


低ROM在这里只有在传送立即数时才有用,也就是ROM数据传送到各个寄存器和RAM时才用到,其它指令是空闲的,每个寄存器和数据总线、地址总线、控制总线都装有LED来指示工作状态,方便观察指令执行过程!

本CPU由于设计原因地址0000H只能放空操作指令,要不然容易出错!下一条地址才能放有效指令

本CPU工作时钟使用555电路,工作频率100KHZ,低段测试频率0.5HZ、2HZ、500HZ。


 运算板

pic

 


 RAM板

pic


 555时钟板和I/O板

pic

 

控制板

pic

 

 ROM板

pic

 

编码板

pic

 

背面连接图

pic

 

 整机成品

pic

 

pic

 

pic

 

指令集

pic

 

 

[修改于 4 个月前 - 2019-01-29 22:42:44]

2019-1-21 21:26:02
1楼

全手工搭棚啊

搞个编译器吧

分立元件(作者)
2楼
1
引用:虎哥 发表于1 楼的内容:
全手工搭棚啊搞个编译器吧

是啊全手工焊接,几百条线,焊接、测试、检查错误用了一个月,是准备要搞个编译器来编程才行,手工机器码编程太容易出错,工程量也很大!

3楼
1

牛人一个👍👍

2019-1-25 11:17:40
4楼

哈,同行握手

分立元件(作者)
5楼

一起研究啊

分立元件(作者)
6楼
引用:左手执者 发表于4 楼的内容:
哈,同行握手

可以交流一下CPU制作

2019-1-27 18:27:45
8楼

用AD画个板子吧!打样现在很便宜了,JLC才30大洋就可以出一张10x10的板子

分立元件(作者)
9楼

@rpg-7画图软件是AD吗?我基本都没有用电脑画过电路图和PCB板,可以推荐一下吗?

2019-3-15 00:27:13
10楼

膜拜一下大佬。。本人最近也打算将CPU搬到现实中来,请问在使用74门IC的时候需要注意一些什么吗?能直接把74门IC当成逻辑门随意拼接吗?

11楼

改天我也做一个,按照PLC指令做一个

[修改于 2 个月前 - 2019-03-15 10:20:32]

分立元件(作者)
12楼
引用:Resbi 发表于10 楼的内容:
膜拜一下大佬。。本人最近也打算将CPU搬到现实中来,请问在使用74门IC的时候需要注意一些什么吗?能.....

只要不接错线,逻辑上没有问题都可以的,

2019-3-17 16:32:24
13楼

打算挖矿吗?朋友😂,这下计算力应该挺厉害的吧

2019-3-24 21:41:19
14楼

牛x,搞编译器吧,折腾起来要命啊

15楼

楼主,做一个64位的大概要多少钱成本呢?

分立元件(作者)
16楼
引用:改装pcp 发表于15 楼的内容:
楼主,做一个64位的大概要多少钱成本呢?

用74芯片搞64位不现实,体积太大,芯片速度上不去也是浪费!

分立元件(作者)
17楼
引用:不会飞的鸟 发表于14 楼的内容:
牛x,搞编译器吧,折腾起来要命啊

最近都懒得弄了,这个CPU的程序都是手工汇编,先写汇编然后手工编译成机器码,再用开关写入ROM!要先弄烧写器,再弄编译器了!

2019-4-13 17:42:41
18楼

太佩服啦!真的高手

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