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

另外,本设计完全开源

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

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

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

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

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


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

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

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

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

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

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


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

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

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

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-16533
4年7个月前 IP:广东
862852

所以说现代的搞法应该是先用HDL做然后写testbench来验证。。。

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

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

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

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

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

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

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

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

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒
4年7个月前 IP:湖南
863827
引用左手执者发表于51楼的内容
目前经过电路优化后理论上可以达到1m/s的乘除法计算速度(16的节拍,采用16mhz时钟),相比查表...

感觉最近对复杂的东西特别头晕,  就是想着怎么精简又能实现功能, 有些理论上是这么说,  实际做出来的运行效果还有使用上的优缺点又是另个坑.

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

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

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
信仰は儚き人間の為に
4年7个月前 IP:广东
863989

都有硬件乘除法了能不能再弄个硬件FPU?

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年7个月前 IP:江西
863996
引用信仰は儚き人間の為に发表于57楼的内容
都有硬件乘除法了能不能再弄个硬件FPU?

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



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

alutest.png

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

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

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

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


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

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


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

pingpong.png

以及面包板电路

pingpong(fact).png

(虽然NE555不能画上去)

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

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


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
玄狐道士
4年6个月前 IP:江苏
864403

厉害了

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

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

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

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

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

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


+10
科创币
虎哥
2019-10-01
资瓷
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年6个月前 修改于 4年6个月前 IP:江西
864443

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


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


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


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


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

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

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

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

顺手算了一个除以0


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


后续将会制作:

IO输入输出单元

段寄存器寻址单元

中断控制单元

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

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

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

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

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


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

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

电路的反馈似乎有问题


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


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


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


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


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


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
信仰は儚き人間の為に
4年6个月前 修改于 4年6个月前 IP:广东
864492

把俩门的输出同时接在一起当然会短路。

要这么做应该用OC门或OD门。

有两年的时间画图,还不如先花一个月买本数字电路翻翻。

要实现这个需求可以在总线上增加一个触发器

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年6个月前 IP:江西
864496
引用信仰は儚き人間の為に发表于66楼的内容
把俩门的输出同时接在一起当然会短路。要这么做应该用OC门或OD门。有两年的时间画图,还不如先花一个月...

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


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


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


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

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

全家福

ALU.png

A.png

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

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

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

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

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

ALU1.png

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

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

最近因个人原因退网


及“遗照”,文件

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

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

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


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ldfa
4年6个月前 IP:福建
864604

强烈建议在DIY 74hcxx CPU时,不用实现硬件乘除法。只要实现加减移位与或非异或就行了。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年6个月前 IP:江西
864612
引用ldfa发表于71楼的内容
强烈建议在DIY 74hcxx CPU时,不用实现硬件乘除法。只要实现加减移位与或非异或就行了。

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

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

流水线结构基本想好了


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


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

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


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

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

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

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


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


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


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

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

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

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

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

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

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

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


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

然后...就这么冒冒失失地把bug修复好了

alutest.png

估计会省一些元件吧

现在先不做板子,把电路完善了以后在出一些东西

毕竟吸取了之前的教训,先做一些细枝末节的东西只会事半功倍


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

更新,我的CPU可以计算斐波那契数列了
(1, 1, 2, 3, 5, 8, 13, 21, 34, 55)
显示的是16进制的,对应
(1, 1, 2, 3, 5, 8, D, 15,  22, 37)

yeh.gif

attachment icon ALU.zip 10.51KB ZIP 42次下载


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

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

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


离目标又近了一步

ALU beta.png

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


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

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

继上文,电路板画好了

ALU0.png

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

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
4年1个月前 IP:四川
872375

预祝成功开跑。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
慧翀
4年1个月前 IP:河北
872555
引用左手执者发表于81楼的内容
感谢,一时看到太多,不知从何讲起首先,看到您的支持与理解以及对孩子的培养,深感荣幸我不过只是一个业余...

周一,就要复工了。看到一个视频在讲基本的二极管PN结,好几天前发现的。今天把儿子拽过来,看。没想到视频里有广告插播,是讲“从0开始学习计算机”的淘宝店。具体的网址我就不登出来了。通过辗转,我到了这位工程师的官网,其中有一个简介,我把他复制过来,“我家有一个5年级的小朋友,我和大多数中国家长一样非常焦虑,我想给他学一些什么东西,因为我本身是学软件的,由于工作的关系很多年不从事相关的专业工作了。我知道计算机很重要,我希望他能够学习一些这方面的方面的知识,大家知道,计算机是需要很多的技术知识的积累的。然而外面有很多这样的培训班比如像机器人,我总是认为他们的教学只是为了让家长开心而已,我想给他一些更基础的知识,就像是武术中的少林派,而不是九阴白骨爪。然后希望锻炼他一些自己动手的能力,以及一些思考问题的方法。嗯于是我开始着手准备一些资料。但是我发现这些准备这些资料的是非常困难的。偶然有一次机会我发现ben eater 在网上发布了一系列的视频一步一步教大家如何从74系列的逻辑芯片构造一台最基础的计算机。虽然只有16个内存,16条指令,但是他揭示出了计算机的核心,这个项目让我非常震撼。

    原来以为只有西方人在做这些基础的东西。没想到咱们有不少人都在投入类似的工作中。这里面一定有情怀,但同时也是一个时代的产物!

    加油!

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

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

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

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


ALU0.png

ALU1.png


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

XXXXXXXXXXXXXXXXXX/Left-Hand/74-gate-computer

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

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

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


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



引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
rpg-7
4年1个月前 IP:江西
872850
引用左手执者发表于87楼的内容
把上下两张板子做好了,可以看看以后文件直接上传github,方便控制版本:https://githu...

不要自制烙铁,直接上网买个白菜白光吧,不贵好用,哪怕是最便宜,控温不太精准的型号都很好用了

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
13656176482
4年1个月前 IP:广东
873643
引用左手执者发表于87楼的内容
把上下两张板子做好了,可以看看以后文件直接上传github,方便控制版本:https://githu...

整个剪线Dell/HP工作站电源再加个恒温烙铁

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

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

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

vga.png

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


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

引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
左手执者作者
4年0个月前 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 38次下载

图片:

POB.png


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

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

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

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


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
Leonard
4年0个月前 IP:浙江
877231

感慨了一下我们大学要学的内容人家在初中就已经开始了。对于楼主要做的事情,我觉着意义除了学习以外,还有另一层。我记得自己小时候受到鲁滨逊漂流记(后又读凡尔纳的神秘岛)影响很大,于是乎经常设想自己流落荒岛(还有世界末日)后会建设出什么样的东西,尤其是一开始几乎是一穷二白的时候,怎么让自己对其它动物快速产生科技优势?解决生存危机?

于是对于矿石收音机或者自制发报机就特别感兴趣,因为这意味着你可以对外发信号,不过要做到这点,光有电子学知识是绝对不够的,你还得懂怎么找到代替二极管的晶体吧?所以呢,这个过程其实非常有意思,也有意义。

说到底。从无到有的创造,正是一种极客精神的体现。但抛去现有基础完全从0出发肯定是地域模式,也不一定适合所有场景。

楼主做的事情完全可以假设世界末日了,你刚好从一个电子元器件仓库醒来只有各种基础元器件,没有电脑没有网,而且发现周围几十公里都没有人,这时候,你想动手自己创造自动发报机……


哼,我觉得自己实际上应该当编剧去,完。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
tlx1025
3年1个月前 IP:广东
891060
引用TubeChip404发表于47楼的内容
看到楼主,想起去年上课无聊,遂拿出笔记本开始研究起cpu了,这不是我yy的第一个cpu,回想整个yy...

你好,这个设计文件可以共享出来不,想参考下,谢谢!

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
TubeChip404
3年1个月前 IP:北京
891119
引用tlx1025发表于94楼的内容
你好,这个设计文件可以共享出来不,想参考下,谢谢!

时间太久远啦,源文件可能已经沉睡在某台电脑里的硬盘的某个角落里了,已经找不到了。。。。。。

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

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

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

一个在做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)}}