文号
850545
阅读
121741
回复
95
收藏
35
继龙少和qql之后,我也在不断地更新着我的74门计算机

  先放一些图吧

cbedd7d5844f92fe01b06550c241b140524d8018.png

 这个是该款微处理器的总的框架图

0d096d9a99c61918e65b0c96ec56f53e2f3366a3.png@1096w_1282h.png

 ALU的结构设计

以及之前最早的电路图

86f9fbd7700a52b2410a7e5ba422b1d3f9f9a8b9.png

 毕竟是最早的设计嘛,所以有一些地方还不是很到位,在设计方面存在一些缺陷和诟病


目前的话预计的配置

名称:

隶属:暂无

结构:哈佛结构

位宽:8位

ROM大小:4MB可拓张

RAM大小:显存:64KB×2=128KB                   

内存:128KB                   

SFR:未定

大概就这么多吧

文档的下载链接(这个版本的电路图还是属于最早的测试版的,新版还没有画完

attachment icon ALU(完成).pdsprj 24.61KB PDSPRJ 236次下载

另外,本设计完全开源

最初打算制作这款计算机的缘由:

自从16年看到龙少等人研究出自己的74门计算机,并有一定的生态圈子时,很是羡慕,梦想自己也能做出一台除74门外不含有任何逻辑性质的芯片的计算机

  可是,年复一年(大概断断续续思考了有一年左右吧)一直倒在vga这块儿,也就当做笑耳,以这个为借口不再研发下去了

  今年寒假,为windows苦于图形界面软件编程教程甚少的时候,又会想起来,可惜但是只不过时间太短了,没有留下什么留念,只是草草翻译了几篇datasheet了吧,寒假过后,也没机会碰电脑,毕竟一个初中生怎么较量得过家管严的父母呢

  暑假,在B站上投稿了较多专栏,主要以教程的方式向大家入门74门微处理器,慢腾腾地做着自己的专栏,所幸,反响不错


在这段期间内,我还肤浅地研究了一下龙少的机子,发现了两个诟病(如有错误欢迎指正)

1.大量使用74门自身特性做延迟用 

2.对于移位方面比较浪费元件

我还小小地整理了一下龙少的电路图,整合成一个pdf

attachment icon 龙少电路图整理.pdf 468.58KB PDF 1920次下载 预览

 暂时就这么多吧,等会去学校回来继续更新


[ 修改于8年3个月前 - 2018/09/09 14:44:36 ]
95
6
8年3个月前修改于 8年3个月前IP:江西
850576
1楼

才刚刚写完作业,,,

首先的话没记错的话我的这款微计算机是独立ALU总线的,并没有和龙少一样采用单总线的方式,全部都在总线上运行的话,比较占用总线的通道,例如使用龙少的方法的话。立即数+内部寄存器值需要操作两遍,第一遍是将立即数的数值锁存入ALU的锁存器上,第二步是将寄存器数值锁存入ALU。而在该设计下,直接将所指寄存器的数据与立即数同时载入ALU,可能牺牲了一点价位,但是换回来的是更大的速度提升

第二是我认为龙少的移位设计有点令人想不通,恕本人见识狭窄,并没有看到移位发挥着过大的作用(除了乘除法计算之外,但龙少似乎选择了硬件乘法器的方式),循环移位似乎除了跑流水灯之外没有更好的打算,而所衍生出来的带XX的第X位进行左/右移似乎在设计上存在无用武之地。而在此方面便有着八条不同的移位方案,如果有人有更好的解答,我也希望能够互创互补

第三是貌似存在延时方面的浪费?

TIM截图20180909211658.png

 244的话G引脚接地是直接连通的,感觉在这里的话除了延迟就大概没有其他的理由了,希望能通过控制时序的方式来替代这种不可控的器件自身物理效果延迟。

引用
评论
8年3个月前IP:江西
850602
2楼

课间的时候重新设计了一下完整的alu结构图,手绘的谅解一下吧

IMG_20180910_221242.jpg

 

引用
评论
8年3个月前IP:未同步
850613
4楼

@Robot_V1器件延迟的话如果在时序把控的好的情况下是不需要的,并且器件延迟往往是不可控的,我现在要做的就是既把器件延迟“安排”好(在设计是考虑对电路的影响),又不能利用器件延迟

引用
评论
8年3个月前IP:江西
850632
6楼

 @虎哥 摊大饼的话自然也是少有的,就算串联下来延迟较大,我也会尽量地协调一下各个引脚输出的延迟,尽量做到同时输出

引用
评论
1
8年3个月前IP:江西
850633
7楼

今晚看来不能做些什么了,就来闲聊一点吧。今天与其他几人讨论了一下,大多数的网站上所说的分开储存器而言对于我来说还是较为含糊的,后来在讨论时声明了我的rom和ram是各用一组pc,共用r1,r2,r3进行变址,而操作数和指令是存放与rom中的,经人一说是哈佛结构,这才放了心,同时,我也纳闷群里几伙计为什么不也采用哈佛结构的,扬言我xx死都不会用哈佛结构,一生只爱冯(怕不是歇后语就是真香)难道哈佛结构条理不是更清晰吗




暂时给为了避免成为打广告的嫌疑,从自己B站专栏上顺手截了几个图供大家图个乐(还真是图个乐,因为之前这结构已经被我抛弃了)

cv680783_1536677151313.jpg

 好吧被B站强制加二维码了,,(雾)

引用
评论
1
8年3个月前IP:江西
850643
10楼

@1211 嗯,大半夜码了这么多字辛苦了,之前因为不知道怎么发图片就直接把链接扔过来了,于是当初帖子就被打回来了,现在想想其实科创做的挺对的,是我太鲁莽了,如果当初没有打回来现在就可能不是这样了吧

引用
评论
1
8年3个月前IP:江西
850644
11楼

讲一下这设计的主要运作过程吧(本人没有学过计算机组成,所以不合理的地方请见谅):首先由储存器和流水线部分进行取出需要操作的操作数和代码,接下来流水线部分将数据交给解码器,使解码器来控制alu,锁存器和alu总线,总总线,一共三个时钟周期一个机械周期,第一是选中目标寄存器,第二是给数,第三是锁存(貌似计算机的本质就只有赋值和跳转吧)。结束后开始新的一轮,如果碰到跳转语句,则流水线复位,此时内部实现的语句相当于“无”,直到流水线填充完毕就算跳转完成。顺便问一下,如果在手工布线的情况下主频能达到多少,不过也没什么意思了与其能飚到4m,还不如来个2.3333m个数字有意义,毕竟执行效率比较高

引用
评论
8年2个月前IP:江西
850801
12楼

由于最近学业繁重且家长禁止我使用手机之后,进度较慢请见谅,用了两个小时整理了一下龙少的帖子,眼花了233

龙少帖子索引.png

 

attachment icon 龙少各帖子说明.pdf 211.40KB PDF 947次下载 预览

 

引用
评论
8年2个月前IP:江西
850803
13楼
引用左手执者发表于12楼的内容
由于最近学业繁重且家长禁止我使用手机之后,进度较慢请见谅,用了两个小时整理了一下龙少的帖子,眼花了233[图片] [附件] 

打错了文档的日期,今天做的变成了13号,,,,(逃)

引用
评论
8年2个月前IP:江西
850893
14楼

为了证明我还活着,,最近一只在苦寻一个能够在计数器达到目标值后自动转变为不输出CP(计数)引脚而改为下拉MR'(复位)的电路,虽然我说的有点那啥偏门,但是实际用途确实非常实用的,计数器你总不可能让他满了就直接连接复位吧,毕竟还会有一闪而过的溢出值的,这样的电路能够使得计数器的复位更稳定,(PS:我本来貌似找到了4,5个门就能够达成该要求的电路,但是貌似这个电路一直存在一些问题就懒得搭理了,这个电路也不错,一片4与非门和4或非门加起来也不到一块钱的事,所以就暂时保持现状了~

TIM图片20180921221001.png

 

引用
评论
8年2个月前IP:江西
851201
15楼

半夜发图,,、总算是把新的图制作好了,这次主要是把乘除法这方面进行了一个优化,大概预计会新增芯片十多片(寄存器两个,逻辑门若干),目前主要还是之前的错误太多,一时半会讲不过来了,所以,咕咕。这电路其实我本来还可以画详尽一点的,但是考虑到怕你们看不懂,,所以。。(话说这相机怎么这么糊)还有就是电脑可能会在假期后被召回,所以...

IMG_0019.jpg

 

引用
评论
8年2个月前IP:江西
851219
17楼

@rpg-7 嗯,谢谢指正不过,A和B寄存器直接就是D锁存器,至于下面的buf是缓冲器

顺便说一下我对乘除法的构想吧:

乘法:A寄存器与映射着不停变换的移位寄存器(sft主寄存器,of是溢出寄存器,方便做16位除法)的B寄存器相加,同时乘法移位寄存器RM控制在A寄存器对应bit为0时下拉全体B寄存器输出,最后得到结果

除法:A寄存器不停与映射着不停变换的移位寄存器的B寄存器向比较

如果大于:相减回A寄存器,除法移出寄存器RD移入1

如果小于:RD移入0

最后在RD得到商,A得到余数

至于全加器和异或门的话,我不知道怎么去实现,请多指教~

引用
评论
8年2个月前IP:江西
851233
19楼

@rpg-7你可能理解错了,我说的是如何用这两种东西组成乘除法器,我加缓冲器的原因是需要高阻以便全体加排阻上/下拉,我用的是谷歌,并没有用bing和百度。平时搜索ic用的也是datatsheet5,稍微有点脑子的人也知道百度是在“放屁”,另外的话,谢谢你给我提供的这个网站

引用
评论
8年1个月前IP:江西
851849
20楼

鸽了这么久定下来了

IMG_20181101_224108.jpg

 

引用
评论
1
8年1个月前IP:江西
851981
21楼

乘法运算的思路,临时画的不要太介意丑什么的,,

IMG_20181105_231006.jpg

 

引用
评论
8年0个月前IP:江西
852308
24楼
引用cjhk发表于22楼的内容
哥们  还在玩吗   我也想玩玩   加个QQ798428478

暂时没空诶,手机电脑都被缴了,我自己也没元件,如果想看看的话暂时先看看楼下的话吧

引用
评论
7年10个月前IP:江西
853979
26楼

下面是有关该机子时序的像素图,下午足足憋了3个小时才花好....

wave.gif

 

wave2.gif

 

wave3.gif

 

wave4.gif

 

wave5.gif

 

 

引用
评论
7年10个月前IP:江西
854014
28楼

在网上发现了几本学习微机的好书

attachment icon Inter汇编语言程序设计.pdf 53.56MB PDF 809次下载 预览

 

attachment icon 计算机系统组成与体系结构.pdf 36.87MB PDF 817次下载 预览

 

引用
评论
1
7年9个月前IP:江西
854711
29楼

 小更一下

p-d51a3071.jpg

 

p-d534f468.jpg

 

p-d540c9b0.jpg

 

p-d5431331.jpg

 

p-d67914c6.jpg

 

 由于是趁家人不在拍的,后来才发现有些黑边,望谅解

引用
评论
7年8个月前IP:江西
855834
32楼
引用Resbi发表于31楼的内容
楼主是初三学生吗?是的话建议暑假继续呢。。最近我也在设计CPU,logisim已经搭好了,准备搬到74上面来(这是我很久以来的一个梦想)请问有什么需要注意之处吗?

名义上是初三学生,但实际已经被高中自招走了(选取全县前一百名),然而上面教育局发通知我们还要进行中考(虽然达到录取线就可以了,但是还是觉得没什么必要),所以暑假还是要补课。但如果搞这个东西的话应该还是可以的,毕竟现在家长也慢慢开始理解我了,而且高中说我们要培训noi,我本人也想去参加一下电脑制作大赛(全国性质,特别突出有大学保送名额),logisim的话这个软件我还是觉得是太老套了,毕竟人家开发者也没在维护,另一个在github上面的项目digital是其他人在logisim上面的续作,可以尝试看看。我觉着吧,74机子这种东西真的是一种浪漫,也可以撑得上是一种情怀吧,最起码比fpga等等装在黑盒子里连个灯都看不到(非贬低之意),74机做出来的成就感无意于吧一堆零零碎碎只能实现单一功能的东西变成一个整体和谐的组织,但是目前高中学业繁重,“单休日”恐怕没什么时间,暑假的话呢我会认真开始将计划变为实践

引用
评论
7年4个月前IP:江西
861039
36楼

B寄存器(核心)原理图绘制完成

B'.png


引用
评论
7年4个月前IP:江西
861204
40楼

目前把B寄存器设计好了,并且也已经测试好了

一个138负责选通需要发射的脉冲,这个控制总线称为G,有的是负责配置寄存器的,有的是负责控制寄存器的CP时钟和复位

还有一个类似功能的总线称为E,负责选通芯片的使能,使之输出(亦可作某些芯片的多周期保持操作)

例如写一个芯片:

.......

E指向输出芯片;

G指向输入芯片的load并发射脉冲

E收回,等待其他指令使用;

.......

其实我觉得计算机最基本的就是发射脉冲和条件判别了吧


B.png

B'.png

打开软件:

attachment icon Digital-0.22.zip 4.53MB ZIP 111次下载

文件:

attachment icon B.zip 17.91KB ZIP 105次下载


引用
评论
7年4个月前IP:江西
861275
41楼

更新历史:

19-7-18

发布电路图B,B'寄存器

19-7-20

改进了B寄存器的电路

合并了B,B'

修复了一些错误,例如74194的结构图错误

attachment icon B.zip 335.44KB ZIP 108次下载


引用
评论
7年4个月前IP:江西
861504
42楼

目前更新了电路(暂不方便发布),制作了一期视频,介绍了目前的进度和它的操作演示,大家有兴趣的可以看看

引用
评论
7年4个月前IP:福建
862055
45楼

来迟的文档:

attachment icon ALU.zip 464.15KB ZIP 67次下载

另:暑假要到期了,可能没时间了

引用
评论
7年3个月前IP:江西
862454
48楼
引用TubeChip404发表于47楼的内容
看到楼主,想起去年上课无聊,遂拿出笔记本开始研究起cpu了,这不是我yy的第一个cpu,回想整个yy历程,没有楼主这么详细的框架设计,都是想起来啥就添点啥,最一开始的时候只是想做一个指令译码器,在完善...

了不起啊,大工程

引用
评论
7年3个月前IP:江西
862775
49楼

汇报一下最近的情况:大改了alu的结构并准备画板,验证了sram的可靠性。另外想问一下,为啥储存器的价格差异如此之大,我总感觉自己储存器买贵了,那些便宜又几兆的并行sram和eeprom究竟是否可靠

引用
评论
7年3个月前IP:江西
862848
50楼

咱不心急,慢慢画...

Rcon2.png

Rcon.png

BCP.png

B.png

ALU.png

attachment icon ALU''.zip 1.16MB ZIP 79次下载


引用
评论
7年3个月前IP:江西
862850
51楼

目前经过电路优化后理论上可以达到1m/s的乘除法计算速度(16的节拍,采用16mhz时钟),相比查表法轻量许多(其实也并不算真正的轻量 毕竟alu为此付出了很大的代价),上图就是整个alu,目前还没有实际检验过操作是否符合过理论,因为手工仿真比较繁琐,一步错就完了,估计要画两三张板子,pcb将采用山字型排布(所有板子通过一张总线板挂在一起),降低了拆装复杂度,提升了美观性。@神之觉醒 您怎么看

引用
评论
7年3个月前IP:江西
863085
53楼

新版本的digital似乎发错位置了(另一贴) ( ,补发

attachment icon Digital_v0.23(左手执者修改版).zip 7.24MB ZIP 192次下载

使用起来个人感觉还行,主要是能够直接控制输入输出端,而不是使用繁琐的单刀双掷开关(也不知道其他eda是否能够这样便捷的操作),比较适合数电的开发,很容易上手。目前我将软件中的74系列的库文件修改了一下(原来的库是使用DIP封装的,现在被我改成更利于使用的逻辑图符号了),原作者是说如果自己做了库是可以在github上pull request他的,不过本人不太会用git ( 。将软件直接解压便可以使用,大小只有十几M,然后打开上述的电路图文件(.dig)便可以了。

引用
评论
7年2个月前IP:江西
863684
54楼

更新一个直观展示乘法的图,动画就懒得做了,毕竟太费时间

Microsoft Word - 8位乘法运算.docx.png

这结构我打算更新一下,至于怎样之后再看吧,总之用料更少+速度更快

引用
评论
7年2个月前IP:江西
863987
56楼

近期脑回路又爆炸了,增加BRK信号,如果除法的余数为零就会终止此指令。乘法则可以判断不进行无用的+0,两者都能在一定程度上提高效率,不过一是懒得搞了,二是怕瞎搞调bug调半天,三是怕电路太臃肿(功耗,功耗啊),四是怕摊大饼(如今算延迟看来这个频率还是挺悬的)还是保留这个引脚吧

引用
评论
7年2个月前IP:江西
863996
58楼
引用信仰は儚き人間の為に发表于57楼的内容
都有硬件乘除法了能不能再弄个硬件FPU?

FPU目前不太感冒,一是因为没有高精度小数运算的需要(就算3d图形整数表达估计也够了),而是目前的ALU足够强大,对移位之类的做了特别优化,再做FPU略伤财



目前大概是这个样子,还没测试过,暂发图以免丢人

alutest.png

有木有发现比上次的少了好多元件

引用
评论
7年2个月前IP:江西
864006
59楼

目前寄存器的读写已经通过仿真测试,乘法这边测试的代码还有点问题

Snipaste_2019-09-22_18-05-35.png


引用
评论
7年2个月前IP:江西
864393
60楼

晚上弄了会关键字的翻译,以及深入学习了一下微机


顺便展示一下晚上做的电路,是个乒乓球游戏机

pingpong.png

以及面包板电路

pingpong(fact).png

(虽然NE555不能画上去)

attachment icon pingpong.dig 19.40KB DIG 160次下载

attachment icon pingpong(fact).dig 19.25KB DIG 158次下载


引用
评论
7年2个月前IP:江西
864418
62楼

终于,在不断的努力下,于2019年10月1日10时30分,硬件乘法器“试车”(笑,本站特色)成功

Snipaste_2019-10-01_22-31-38.png

共计30个周期(加上接口和前期寄存器工作模式设定),核心时序为16个

图中A为高位,A'为低位(测试数据用),可以结合53楼的图表看出,最后的结果是0x7DBE,答案符合😃

明天试着吧硬除也测试好来,通过这次实验,发现了以前注意不到的很多细节时序问题


+10
科创币
虎哥
2019/10/01
资瓷
引用
评论
7年2个月前修改于 7年2个月前IP:江西
864443
63楼

趁着吃完饭的当儿,调试了一下昨天的,不试不知道,计算)0xff×0xff出错了,但是之前的运算可以


于是拼命排bug,最后发现只是一句话写错了,修改之后就没有大碍了


不由得对比前几天的遭遇,面包板上一团麻的电路排了个遍。最后发现只是一个复位引脚被我用0.1uf的电容串到电源上了,我以为这样可信,殊不知对于内阻极大的cmos根本无法做到上电复位的作用,就是画蛇添足


Snipaste_2019-10-02_13-11-00.png


引用
评论
7年2个月前IP:江西
864468
64楼

于2019年10月2日21时许,除法运算验收成功,至此,将进入下一个阶段,kicad制板

高兴一下:啊啊啊啊,两年了,终于成功了😆😆

Snipaste_2019-10-02_21-08-31.png

顺手算了一个除以0


接下来制板之后再将指令流水线做好,届时只要有两模块和一些基本的输入输出接口即可作为一无中断的单片机


后续将会制作:

IO输入输出单元

段寄存器寻址单元

中断控制单元

微码单元(用于高级自定义指令运行,不过本机子目前已经直接运行微码)

串口以及外设单元(外接CH340以及usb拓展口即可连接HID设备)

VGA显示卡(支持画线,滚动页面等硬件可以实现的低级操作)

协处理器(用于运算三角函数和浮点数)

以时间为序,之后想到的再补充吧


太激动了,一时字都打飞了😂

引用
评论
7年2个月前IP:江西
864488
65楼

电路的反馈似乎有问题


本来是想将总线接缓冲器之后弱拉回来的,这是我从其他微机上看到的接法,用于保持总线的数据


例如:上一个周期输出了寄存器,这时寄存器的数据就被总线接受了,在下一个周期即使寄存器没输出,总线上也能够保持,这样就可以操作别的寄存器载入了


然而我无论是将feedback封装成模块还是直接接电路上,在数据跳变时都会报错会短路


唉,也不知道之后怎么解决了


Snipaste_2019-10-03_11-27-57.png


引用
评论
7年2个月前IP:江西
864496
67楼
引用信仰は儚き人間の為に发表于66楼的内容
把俩门的输出同时接在一起当然会短路。要这么做应该用OC门或OD门。有两年的时间画图,还不如先花一个月买本数字电路翻翻。要实现这个需求可以在总线上增加一个触发器

我的意思不是这样啊,我是说把信号接中继器然后通过一个拉电阻反馈回去,现在改成一个带oc门的8d触发器了


两年当然不是画这个图,而是从两年前(甚至更久远)就开始瞎嘀咕要做这个了


然后之前都只是比划而已,甚至都没仿真过,也没钱,不能做板子,最近一个月才开始真正的动工画图,并实现功能


引用
评论
7年2个月前IP:江西
864498
68楼

最后一次检查排完了,BOM也算好了

全家福

ALU.png

A.png

attachment icon ALU.zip 35.56KB ZIP 178次下载

Snipaste_2019-10-03_16-30-56.png

总共有36个元件,10×10的板子估计得分次打了

引用
评论
7年2个月前IP:江西
864520
69楼

第一版原理图已经检查两遍,可以画板

ALU1.png

kicad复制出来是像素风,你别说还蛮好看的

引用
评论
7年2个月前IP:江西
864599
70楼

最近因个人原因退网


及“遗照”,文件

Snipaste_2019-10-05_21-24-39.png

Snipaste_2019-10-05_21-25-01.png

attachment icon ALU1.zip 167.18KB ZIP 190次下载


引用
评论
7年2个月前IP:江西
864612
72楼
引用ldfa发表于71楼的内容
强烈建议在DIY 74hcxx CPU时,不用实现硬件乘除法。只要实现加减移位与或非异或就行了。

并非额外功能,而是附加功能,以原硬件为优势追加的。加了也不必付出多大的硬件代价(龙少的似乎也是用了30多片作为核心),只需一点硬件大大提高效率(例如,此举也能增加文字渲染效率,参见乘法原理),何乐而不为呢

引用
评论
7年1个月前IP:江西
864890
73楼

流水线结构基本想好了


指令代码主要包括:①指令序列号;②控制总线信号③数据总线信号


不过由于月考成绩不理想,电脑倒是被ban了,等考好了再回归吧😁,(成也物理,败也物理)

于学校参加“竞赛培训”中,看着老师讲微机不免令我这搞微机的噗嗤一笑,果然我这人不适于刷题啊(其实多多少少和应试教育挂钩吧(笑))


引用
评论
7年1个月前IP:江西
865169
74楼

想用arduino控制板作为输入,目前画了这么多

Snipaste_2019-10-19_22-56-02.png

突然大悟所谓在线eda的用途,这不就是一躲外面画板子的节奏吗


最近突然YY到能不能用74前端+高速sram,以及由单片机和显示器组成的便携逻辑分析仪,目前看起来还挺现实的


等等,arduino是不是只能初始化IO?这样就不能双向io了


也罢,也罢,一星期仅有的躲着捉迷藏画板子的晚上就是半休日了😕

引用
评论
7年0个月前IP:江西
865977
76楼

重置,毕竟原来那个图没人看得懂,预告(虽说挺想先把pc做好的,这样就可以实际运行zhuang13(雾))

Snipaste_2019-11-09_20-00-18.png

我很好奇是什么让我把这个板子做这么久的,之前的pc一天就构思好了(

引用
评论
6年10个月前IP:江西
869925
77楼

花了几天的时间,把之前电路没用的东西删了,然后重新做,终于把乘法调试好了(泣)(吐血)

Snipaste_2020-01-28_19-11-26.png


引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的