继龙少和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 191次下载

另外,本设计完全开源

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

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

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

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

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


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

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

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

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

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

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


[修改于 6年3个月前 - 2018/09/09 14:44:36]

加载全文
来自:综合交流区 / 极客DIY计算机科学 / 计算机电子学
95
 
6
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
左手执者 作者
4年10个月前 IP:江西
871728

更新,这次终于可以自行运行ROM启动程序了

(之前的是测试工具相当于数据都是灌到嘴巴里的,但是这次是用一个简易的pc计数器来控制的,排除了一些实际运行中的错误)


离目标又近了一步

ALU beta.png

attachment icon ALU.zip 641.55KB ZIP 53次下载


剩下的就是时间对它的考验了,鬼知道以后还会遇到多少问题

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年9个月前 IP:江西
872371

继上文,电路板画好了

ALU0.png

不过还有一块位置剩下来,不知道做什么(这是两块板子之一)(笑)

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年9个月前 IP:江西
872756
引用慧翀发表于85楼的内容
周一,就要复工了。看到一个视频在讲基本的二极管PN结,好几天前发现的。今天把儿子拽过来,看。没想到视...

他我知道,就是benblue嘛,不过那些并不是他自己做,而是搬运并配音国外的beneater的视频,然后还顺带把套件搬运到国内来,中间的利润估计也挺大的,不过搬运了这么多视频似乎也可以体谅,不知视频和套件是否获得原作者的许可,具体什么来头不大清楚

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年9个月前 IP:江西
872757

把上下两张板子做好了,可以看看


ALU0.png

ALU1.png


以后文件直接上传github,方便控制版本:

XXXXXXXXXXXXXXXXXX/Left-Hand/74-gate-computer

不过kicad的覆铜不敢恭维,只要是封闭图形中间就不覆铜,而且线距比较大(如果有更改选项的方法请告诉我),所以我一般是导入到立创之后生成gerber。不过这几天疫情嘛,打板恢复到20元了,不打也得打,只不过心里在滴血。

关于其他单元是否要做板子的话另议,一般先会用洞洞板做

接下来我检查一下库存,看看是否有缺少的元件


杂谈:最近入手了一个低压烙铁控制板,看看是否能加一个t12的头上去,我这个黄花907还是有些问题,可能存在漏电的现象(我家住顶层,还没有可用的地线)上次的一个芯片可能就是因为这个原因烧掉了,为避免经济损失,打算用这个自己做一个烙铁



引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年9个月前 IP:江西
875113

把vga显卡做好了,显示的分辨率为256*240 60hz

attachment icon vga.dig 185.01KB DIG 43次下载

vga.png

通过在总线操作写入x,y地址,数据来实现图片的写入。使用了4块is62c256的sram进行乒乓工作,两块sram构成一个帧,一个帧在显示的同时写入另一个帧。8位色,届时通过R2R电阻分压网络实现DA。支持Y方向上的硬件滚屏,(x应该会考虑,方便制作多向卷轴,不过再加上去就占位置了),总计元件费约为70元,其中20元用于sram,亦可做其他开发板的显示模块


顺便说一下打板子的事,其实我一开始是想说尽早把之前的板子打掉了,但是看到20元钱心里还是很犹豫,现在都拖了这么久了,干脆就等到底吧

引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年8个月前 IP:江西
875993

最近有空吧代码读取的部分做了,第一次给这个写真正意义上的程序(在vga上显示一个句号)

顺便做了一个编译器


以下为图片

Snipaste_2020-03-21_19-41-42.png

Snipaste_2020-03-21_19-41-17.png

1584791710420.jpeg

<span style="color:rgb(169, 183, 198);">plist = [<span style="color:#6a8759;">"NON"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"ACP"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"AMR"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"STL"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"STR"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"LDM"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"BLLD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"BHLD"</span><span style="color:#cc7832;">,<br></span><span style="color:#cc7832;">         </span><span style="color:#6a8759;">"AILD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"MLD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"STC"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"CLC"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"REC"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"NF"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"CAI"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"CLD"</span><span style="color:#cc7832;">,<br></span><span style="color:#cc7832;">         </span><span style="color:#6a8759;">"PCLLD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"PCMLD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"PCHLD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"INTE"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"RD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"WT"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"INTU"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"GED"</span><span style="color:#cc7832;">,<br></span><span style="color:#cc7832;">         </span><span style="color:#6a8759;">"JMP"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"HLT"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"JC"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"JNC"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"JZ"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"JNZ"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"JV"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"JNV"</span><span style="color:#cc7832;">,<br></span><span style="color:#cc7832;">         </span><span style="color:#6a8759;">"RET"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"RESTC"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"LDCL"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"LDCH"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"FINT3"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"MMULD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"CLD"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"DLD"</span><span style="color:#cc7832;">,<br></span><span style="color:#cc7832;">         </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">,<br></span><span style="color:#cc7832;">         </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">""</span><span style="color:#cc7832;">,<br></span><span style="color:#cc7832;">         </span><span style="color:#6a8759;">"SAM"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"IVS"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"WVGA"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"YP"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"LXB"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"LX"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"LYB"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"LY"</span>]<br>olist = [<span style="color:#6a8759;">"BUSO"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"PCLO"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"PCMO"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"PCHO"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"UO"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"DO"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"AOO"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"ACO"</span><span style="color:#cc7832;">,<br></span><span style="color:#cc7832;">         </span><span style="color:#6a8759;">"CO"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"DO"</span>]<br>m = <span style="color:#6897bb;">0<br></span>fpath = </span><font color="#6a8759">input()</font><span style="color:rgb(106, 135, 89);"><br></span><span style="color:rgb(204, 120, 50);">with </span><font color="#a9b7c6">open(fpath</font><span style="color:rgb(204, 120, 50);">, </span><span style="color:rgb(106, 135, 89);">"r"</span><font color="#a9b7c6">) </font><span style="color:rgb(204, 120, 50);">as </span><font color="#a9b7c6">file:<br>    lines = file.readlines()<br>    </font><span style="color:rgb(204, 120, 50);">for </span><font color="#a9b7c6">i </font><span style="color:rgb(204, 120, 50);">in </span><font color="#a9b7c6">range(len(lines)):<br>        lines[i] = lines[i].split()<br><br></font><span style="color:rgb(204, 120, 50);">def </span><font color="#a9b7c6">findins(ins):<br>    </font><span style="color:rgb(204, 120, 50);">global </span><font color="#a9b7c6">plist<br>    </font><span style="color:rgb(204, 120, 50);">global </span><font color="#a9b7c6">m<br>    </font><span style="color:rgb(204, 120, 50);">try</span><font color="#a9b7c6">:<br>        i = plist.index(ins)<br>        m = </font><span style="color:rgb(104, 151, 187);">0<br></span><span style="color:rgb(104, 151, 187);">    </span><span style="color:rgb(204, 120, 50);">except </span><font color="#a9b7c6">ValueError:<br>        i = olist.index(ins)<br>        m = </font><span style="color:rgb(104, 151, 187);">1<br></span><span style="color:rgb(104, 151, 187);">    </span><span style="color:rgb(204, 120, 50);">return </span><font color="#a9b7c6">i<br></font><span style="color:rgb(204, 120, 50);">def </span><font color="#a9b7c6">delline(line):<br>    outline = </font><span style="color:rgb(106, 135, 89);">""<br></span><span style="color:rgb(106, 135, 89);"><br></span><span style="color:rgb(106, 135, 89);">    </span><font color="#a9b7c6">ins = hex(findins(line[</font><span style="color:rgb(104, 151, 187);">0</span><font color="#a9b7c6">])).replace(</font><span style="color:rgb(106, 135, 89);">"0x"</span><span style="color:rgb(204, 120, 50);">, </span><span style="color:rgb(106, 135, 89);">""</span><font color="#a9b7c6">)<br><br>    </font><span style="color:rgb(204, 120, 50);">if </span><font color="#a9b7c6">len(line) == </font><span style="color:rgb(104, 151, 187);">2</span><font color="#a9b7c6">:<br>        ins = gethex(ins</font><span style="color:rgb(204, 120, 50);">, </span><font color="#a9b7c6">m</font><span style="color:rgb(204, 120, 50);">, </span><span style="color:rgb(104, 151, 187);">1</span><font color="#a9b7c6">)<br>        outline += (ins + </font><span style="color:rgb(106, 135, 89);">","</span><font color="#a9b7c6">)<br>        num = hex(int(line[</font><span style="color:rgb(104, 151, 187);">1</span><font color="#a9b7c6">])).replace(</font><span style="color:rgb(106, 135, 89);">"0x"</span><span style="color:rgb(204, 120, 50);">, </span><span style="color:rgb(106, 135, 89);">""</span><font color="#a9b7c6">)<br>        </font><span style="color:rgb(204, 120, 50);">if </span><font color="#a9b7c6">len(num) == </font><span style="color:rgb(104, 151, 187);">1</span><font color="#a9b7c6">:<br>            num = </font><span style="color:rgb(106, 135, 89);">"0"</span><font color="#a9b7c6">+num<br>        outline += (num + </font><span style="color:rgb(106, 135, 89);">","</span><font color="#a9b7c6">)<br><br>    </font><span style="color:rgb(204, 120, 50);">else</span><font color="#a9b7c6">:<br>        ins = gethex(ins</font><span style="color:rgb(204, 120, 50);">, </span><font color="#a9b7c6">m</font><span style="color:rgb(204, 120, 50);">, </span><span style="color:rgb(104, 151, 187);">0</span><font color="#a9b7c6">)<br>        outline += (ins + </font><span style="color:rgb(106, 135, 89);">","</span><font color="#a9b7c6">)<br>    </font><span style="color:rgb(204, 120, 50);">if </span><font color="#a9b7c6">len(line)  == </font><span style="color:rgb(104, 151, 187);">2</span><font color="#a9b7c6">:<br>        print(line[</font><span style="color:rgb(104, 151, 187);">0</span><font color="#a9b7c6">] +</font><span style="color:rgb(106, 135, 89);">" " </span><font color="#a9b7c6">+ line[</font><span style="color:rgb(104, 151, 187);">1</span><font color="#a9b7c6">] +</font><span style="color:rgb(106, 135, 89);">"  ->  " </span><font color="#a9b7c6">+ outline)<br>    </font><span style="color:rgb(204, 120, 50);">elif </span><font color="#a9b7c6">len (line) == </font><span style="color:rgb(104, 151, 187);">1</span><font color="#a9b7c6">:<br>        print(line[</font><span style="color:rgb(104, 151, 187);">0</span><font color="#a9b7c6">] + </font><span style="color:rgb(106, 135, 89);">"  ->  " </span><font color="#a9b7c6">+ outline)<br>    </font><span style="color:rgb(204, 120, 50);">return </span><font color="#a9b7c6">outline<br></font><span style="color:rgb(204, 120, 50);">def </span><font color="#a9b7c6">gethex(ins</font><span style="color:rgb(204, 120, 50);">, </span><font color="#a9b7c6">m</font><span style="color:rgb(204, 120, 50);">, </span><font color="#a9b7c6">n):<br>    </font><span style="color:rgb(204, 120, 50);">if </span><font color="#a9b7c6">len(ins) == </font><span style="color:rgb(104, 151, 187);">1</span><font color="#a9b7c6">:<br>        ins = </font><span style="color:rgb(106, 135, 89);">"0"</span><font color="#a9b7c6">+ins<br>    ins = hex(int(ins[</font><span style="color:rgb(104, 151, 187);">0</span><font color="#a9b7c6">])+</font><span style="color:rgb(104, 151, 187);">8</span><font color="#a9b7c6">*n+</font><span style="color:rgb(104, 151, 187);">4</span><font color="#a9b7c6">*m).replace(</font><span style="color:rgb(106, 135, 89);">"0x"</span><span style="color:rgb(204, 120, 50);">, </span><span style="color:rgb(106, 135, 89);">""</span><font color="#a9b7c6">)+ins[</font><span style="color:rgb(104, 151, 187);">1</span><font color="#a9b7c6">:</font><span style="color:rgb(104, 151, 187);">2</span><font color="#a9b7c6">]<br>    </font><span style="color:rgb(204, 120, 50);">return </span><font color="#a9b7c6">ins<br><br>outlines = </font><span style="color:rgb(106, 135, 89);">""<br></span><span style="color:rgb(204, 120, 50);">for </span><font color="#a9b7c6">line </font><span style="color:rgb(204, 120, 50);">in </span><font color="#a9b7c6">lines:<br>    </font><span style="color:rgb(204, 120, 50);">if </span><font color="#a9b7c6">len(line) != </font><span style="color:rgb(104, 151, 187);">0</span><font color="#a9b7c6">:<br>        outlines += delline(line)<br>print(outlines[</font><span style="color:rgb(104, 151, 187);">0</span><font color="#a9b7c6">:len(outlines)-</font><span style="color:rgb(104, 151, 187);">1</span><font color="#a9b7c6">])<br>print(outlines.replace(</font><span style="color:rgb(106, 135, 89);">","</span><span style="color:rgb(204, 120, 50);">, </span><span style="color:rgb(106, 135, 89);">" "</span><font color="#a9b7c6">))<br><br>NON<br>NON 127<br>LXB<br>LX 119<br>LYB<br>LY<br>NON 255<br>WVGA <br>WVGA 126 <br>LXB<br>LX 120<br>LYB <br>LY 255<br>WVGA 129<br>LXB<br>LX 255<br>WVGA 126 <br>LXB<br>LX 121<br>LYB <br>LY 255<br>WVGA 129<br>LXB<br>LX 255<br>WVGA 127<br>LXB <br>LX 122<br>LYB<br>LY 255<br>WVGA<br>WVGA<br>IVS<br>JMP<br></font>

电路文件(瞎取的):

attachment icon POB.dig 500.60KB DIG 42次下载

图片:

POB.png


引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年8个月前 IP:江西
876796

其中一块板子在路上了,我也把一些做好的文件传了github上面

链接:XXXXXXXXXXXXXXXXXX/Left-Hand/74-gate-computer

md文件里面总算是具体地交代了一下操作


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

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

左手执者
进士 机友 笔友
文章
4
回复
87
学术分
0
2018/07/21注册,2年5个月前活动

一个在做74门计算机的人

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:江西
文件下载
加载中...
{{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)}}