临高启明论坛

 找回密码
 立即注册
搜索
临高启明论坛 启明星月刊 查看内容

【工业技术】再聊聊继电器逻辑门电路

2019-7-27 16:26| 发布者: lgqm| 查看: 285| 评论: 93|原作者: 难忘易水寒

摘要: 此前钟博士曾在北朝设计过继电器逻辑门电路,当时觉得组成逻辑门使用的继电器数量太多了,也在帖子里回复过几种设计,后来又仔细思考之后感觉之前的设计还可以进一步简化,本着能用一种原件绝不使用两种,能用一个原 ...
此前钟博士曾在北朝设计过继电器逻辑门电路,当时觉得组成逻辑门使用的继电器数量太多了,也在帖子里回复过几种设计,后来又仔细思考之后感觉之前的设计还可以进一步简化,本着能用一种原件绝不使用两种,能用一个原件绝不使用两个的原则,进行了重新设计。同时对当初没注意到的一些漏洞,以及设计缺陷进行了思考与改进。
在此,罗列一番,请各位斧正,如果合适的话,可以依靠此类设计构建通用处理器,在冯诺元老的专用机基础上再进一步构建出真正的兼容图灵机。

电磁继电器可以算是临高位面最有希望实现大规模生产的逻辑原件了,其通过控制线圈两端电压来控制开关电路的模式与MOS管电路极为类似,因此可以参考传统集成电路中的一些设计进行门电路设计。另外,转换型继电器(单刀双掷)可以选通其中一条电路的同时断开另一条电路,与CMOS电路特性相似,而仅使用了一个原件,从原件数量上来看还更有优势(CMOS中PMOS与NMOS总是成对出现,可以看做两个原件)。当然电磁继电器也有一些先天缺陷,导致其功耗过高,频率过低,输出阻抗偏小等等。

由于电磁继电器输出阻抗过低,信号可能存在反向传输,另外采用并联电路构建逻辑“或”时存在短路风险,因此针对我的设计,仿照PMOS电路进行了优化,所有接地低电平均串联一个负载电阻 。

一、一个继电器构建基础门电路(双输入与门、双输入或门、非门、传输门)
本着能用一个不用两个的原则,采用了一个比较投机取巧的方法,对于双输入与门及双输入或门中的一个输入端接在了双掷开关电路中的常开端一路,由于这一路可能直接与输出相连,而非像线圈端那样隔离,所以对于输出阻抗以及串联压降较为敏感,直接使用时需要谨慎分析是否适用。

双输入与门
双输入与门

双输入或门.png
双输入或门

非门.png
非门

传输门
传输门

剩下的基本门电路和简单性能分析在3楼和12楼

鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

引用 一笛秋声 2019-7-13 19:34
思路相当巧妙,一个继电器实现基本逻辑门。
引用 难忘易水寒 2019-7-13 19:37
本帖最后由 难忘易水寒 于 2019-7-14 10:25 编辑

二、一个继电器构建异或门和异或非门(同或门)、三态门
如果类比MOS电路,继电器线圈的两端如同MOS的栅极和衬底,开关的两端如同MOS的源极和漏极。继电器是分立元件,这就使得它具有一个CMOS电路不具备的优势,CMOS电路中由于为了方便电路集成,衬底的电位是共享的,而分立元件则可通过充分利用不同引脚实现更多的功能设计。

异或门设计中,我把两个输入端接在线圈两端,这样就可以实现用一个继电器实现门电路,当然这也是投机取巧,这要求输入的两个高电平或两个低电平之间的压差小于继电器的动作电压,必要时还需在继电器的输入端串联传输门校准输入电压,不过对于级数不大的电路来说基本不会有压差超过动作电压的问题。

异或门.png
异或门

交换VCC与GND+R就可实现异或非门(同或门)。

三态门的输出端可以有高电平、低电平、高阻态三种,可以由一个继电器构建(之前犯傻了,用了一级传输门,完全可以省掉)。

三态门

三态门

三态门

三、多路与门、多路或门、与或门、或与门的实现
多路与门、多路或门输入端太多,无法通过单一继电器实现。
多路与门可以将多个双输入与门输出端串联到后一个的常开端构建,为防止第一个常开端连接输入端经过多级串联了后压降损失,建议第一个常开端直接连接VCC,每一个继电器线圈的非接地一端作为输入端(相当于1&Input_A&Input_B&Input_C……)
多路或门可将多个输出端并联获得,常闭端直接与GND+R相连,每个继电器的线圈非接地一端作为输入端(相当于0 | Input_A | Input_B | Input_C……)
类似的,或与门、与或门都可以通过串并联构建,只是后一级继电器线圈输入端如果接在前一级的输出端的话,需要多一级门延迟时间,若是直接连接输入信号,则可以在一级门延迟时间内完成动作。

由于多个继电器的动作时间可能不一致,因此最好配合时钟信号构建组合逻辑电路,减少竞争与冒险产生的信号毛刺。



引用 难忘易水寒 2019-7-13 20:18
关键时刻屋里断网了,手机登论坛慢到死,好在最基础的几大门电路都发出来了。等网络恢复了再聊**能,以及其它电路。
引用 深海 2019-7-13 21:36
难忘易水寒 发表于 2019-7-13 20:18
关键时刻屋里断网了,手机登论坛慢到死,好在最基础的几大门电路都发出来了。等网络恢复了再聊**能,以及其 ...

给元老的电力供应还这么不稳定啊
引用 tyuu 2019-7-13 22:29
看个小说,看到数电。。。。
引用 难忘易水寒 2019-7-13 23:05
tyuu 发表于 2019-7-13 22:29
看个小说,看到数电。。。。

数电基本已经是有了门电路之后的组合了,忘记门电路设计是哪门课学的了。
本着不能让程序员当酱油元老的原则,哪怕让他们用机器码和穿孔卡编程呢。
现在来看组合逻辑电路不是难点,难点在于时序电路和随机存储电路需要的继电器太多了,需要进一步简化一下。
鉴于存储成本这么高,可能才用哈佛架构要比冯诺依曼架构更省资源一点。
引用 黎明的太阳 2019-7-14 01:42
难忘易水寒 发表于 2019-7-13 23:05
数电基本已经是有了门电路之后的组合了,忘记门电路设计是哪门课学的了。
本着不能让程序员当酱油元老的 ...

继电器动作电流是不是需要很大啊,没有三极管磁芯存储肯定是没戏了,有三极管谁还用继电器。
引用 bhsfzm 2019-7-14 02:42
我去找找图片……二战时期有继电器计算机,不过不是通用计算机
引用 难忘易水寒 2019-7-14 07:12
bhsfzm 发表于 2019-7-14 02:42
我去找找图片……二战时期有继电器计算机,不过不是通用计算机

二战时期德国的康拉德·楚泽造过继电器计算机,美国也造过MARK I~MARK IV继电器计算机。不过这些继电器计算机都是专用机,不可编程,而且里面还是用到了很多电子管。
即便第一台电子计算机,埃尼亚克,也不是可编程的通用计算机,它的不同功能实现是靠连线板的接线改变来实现的。真正意义上的可编程计算机要等冯·诺依曼架构提出之后。
引用 难忘易水寒 2019-7-14 07:15
黎明的太阳 发表于 2019-7-14 01:42
继电器动作电流是不是需要很大啊,没有三极管磁芯存储肯定是没戏了,有三极管谁还用继电器。

早期计算机静态存储还是纸带和穿孔卡靠谱一些,但是动态随机存储就很麻烦了,一位寄存器需要好几个门电路,楚泽的计算机还用到水银管存储器,更是复杂。所以需要更简洁的随机存储单元,才好实现通用计算机。
引用 难忘易水寒 2019-7-14 08:05
四、继电器的劣势
电磁继电器相比MOS电路最大的问题在于控制开关动作要依靠磁场而非电场,MOS电路中由于GATE与衬底间仅仅需要形成电场就足够了,几乎没有电流经过氧化绝缘层,能耗主要是源极和漏极之间的漏电流;而电磁继电器的动作依赖线圈中的电流才能形成磁场,而门电路的输入端,也即上一级的输出端也一定会接在线圈端上,导致开关电路上也需要有较大电流。要提升继电器的动作频率就需要增强磁场,或者改善动触点的质量和刚度。增强磁场仅能通过增大电流来实现,因为增加线圈匝数,意味着增加线路的电感,感抗的增大会降低工作频率。改善动触点依赖于材料工业和加工精度,一时半会儿估计不会有太大提升。
功耗与性能犹如鱼和熊掌难以得兼,选择了继电器就意味着高功耗。而且每一路高电平与低电平形成的电流差异巨大,这使得整个系统在运行过程中的功耗也会有较大波动,这对稳压供电以及散热也提出了较高要求,不知道元老们是否能搞定。

五、早期计算机面临的高昂存储成本
要实现通用计算机,势必需要能够快速擦写的存储手段,对于处理器而言需要有寄存器register或随机存储器RAM,一位寄存器通常需要有多个门电路构成,而程序指令以及数据基本都是需要很多位,也就是说构建可擦写的动态存储单元需要大量的寄存器,这是一个很大成本。对于继电器,RAM的速度应该与寄存器差不了多少,我会再想想能否参考RAM或者其它可擦写ROM的设计思路构建出更节约资源的可擦写存储手段。
尽可能减少存储单元势必是早期计算机的主要问题,主要解决思路有两条,其一是使用复杂指令集CISC,通过增加逻辑电路的功能,尽可能减少所使用的存储单元(能用一条指令就不要用两条),这对逻辑电路的设计提出很高要求,而且基本告别流水线化提升性能了;其二,采用哈佛架构而非冯.诺依曼架构,哈佛架构中指令与数据分别存储,使用不同的总线,允许指令位宽不等于数据位宽,这样可以节省很多存储资源。
至于不需要擦写的只读存储器(ROM),显然纸带穿孔卡是成本最低的选择,也最容易实现。

引用 黎明的太阳 2019-7-14 10:49
难忘易水寒 发表于 2019-7-14 08:05
四、继电器的劣势
电磁继电器相比MOS电路最大的问题在于控制开关动作要依靠磁场而非电场,MOS电路中由于GA ...

说实话,用织带代替rom通用计算真意义不大,哈佛结构里rom可是当内存用呢,只是把栈和堆放ram里,比如一个循环操作,你纸带是不是要重复读取?如果不重复读取,你是否需要指令缓存?如果重复读取,你纸带吃的消吗?,搭建成专用计算,算个射表,或者对数指数三角函数表还有点意思
引用 黎明的太阳 2019-7-14 10:57
歪个楼,楼主考虑过用真空管搭建门电路吗?作为参考历史上74s18ALU只用到75个逻辑门就实现了完整4bitALU。真空管肯定办不到一个管子就实现一个逻辑门,楼主是不是考虑下真空管搭建?其实也没别的,用真空管,旧时空的一些存储技术就可以直接使用了阿,比如磁芯存储器
引用 难忘易水寒 2019-7-14 12:02
本帖最后由 难忘易水寒 于 2019-7-14 12:18 编辑
黎明的太阳 发表于 2019-7-14 10:49
说实话,用织带代替rom通用计算真意义不大,哈佛结构里rom可是当内存用呢,只是把栈和堆放ram里,比如一 ...

你和我对rom的理解的理解不一样啊,我没说rom不能当内存,rom的特点是一般不会擦写,read only memory。哈佛架构中指令与数据存储空间分离,指令这部分通常都是只读不写,数据这部分面临读写。因此指令这块可以使用rom存储,其介质可以是熔丝、穿孔卡、纸带、磁鼓、钢丝等等。但是数据这部分必须是可读可写,所以需要ram随机存储,random access memory,堆栈当然是数据了。ram的介质可以是寄存器、sram、dram、甚至用一些可擦写的rom充当都可以,前提只要是可擦写。
另外,缓存是需要高速存取的,现代处理器里是以寄存器的形式出现的,不过继电器计算机的话,没那么高速的需求,使用ram充当缓存寄存器应该也没问题,累加器、指令寄存器、状态寄存器、地址寄存器、指令指针这些都类似。
而且纸带穿孔卡只充当rom,读取的方式不局限于卷动纸带滑过读取头,这样串行读取的缓存电路都得一大堆。可以按页读取,布设一个由上下触点组成的读取阵列,通过选通电路直接并行的接入总线,这样一页纸卡可以有上百byte的数据,寻址操作并不涉及纸卡的机械运动。另外,可以参考电影胶片那样使用赛璐珞作为穿孔卡带材料,读取头直接带动胶片两侧的孔,参考滚筒触针式八音盒,让纸带与读取头滚动式接触,避免滑动摩擦,一次也可以读取一行,一行可以有若干byte,这样的寻址电路会复杂很多,不像上面按页读取,但优势是存储容量大很多。
另外按页读取模式下,一些专用机因为不需要更换程序,可以直接用熔丝阵列编程,存储成本更低。
查表这种基础操作放在通用计算机上太大材小用了。

引用 难忘易水寒 2019-7-14 12:04
黎明的太阳 发表于 2019-7-14 10:49
说实话,用织带代替rom通用计算真意义不大,哈佛结构里rom可是当内存用呢,只是把栈和堆放ram里,比如一 ...

rom毕竟比ram简单多了,对于降低存储成本很有帮助。
引用 难忘易水寒 2019-7-14 12:11
黎明的太阳 发表于 2019-7-14 10:57
歪个楼,楼主考虑过用真空管搭建门电路吗?作为参考历史上74s18ALU只用到75个逻辑门就实现了完整4bitALU。 ...

我觉得旧时空的存储介质直接用旧时空的设备读取就行了,毕竟磁芯存储器这种东西一时半会儿造不出来。
至于真空电子管,它的伏安特性和双极型晶体管很像,都可以通过控制栅极电压和发射级电压使管子工作在截止区(发射级与集电极几乎开路),放大区(栅极信号放大,可用于模拟电路),饱和区(发射级与集电极近乎短路),可以直接参考ttl电路设计门电路,不是什么难事。
至于74系列,设计出门电路之后完全可以参考其逻辑门关系仿制其功能,也不是难事。
引用 黎明的太阳 2019-7-14 12:20
难忘易水寒 发表于 2019-7-14 12:02
你和我对rom的理解的理解不一样啊,我没说rom不能当内存,rom的特点是一般不会擦写,read only memory。 ...

理解其实是一样的,问题在指令缓冲上,不缓存速度非常慢,你的卡片胶片也未必吃得住,缓存的话速度才能接受,卡片纸带的寿命才能长点。速度会快很多,但意义依然有限。如果是统计,不如直接搞卡片统计机。至于制表,旧时空的各类数学用表几乎是现成的。

说实话,这个东西计算开平方立方(纯计算不查表)比拉计算尺还慢

其实楼主的继电器门很巧妙,奈何继电器本身性能不咋地啊。
引用 黎明的太阳 2019-7-14 12:27
难忘易水寒 发表于 2019-7-14 12:11
我觉得旧时空的存储介质直接用旧时空的设备读取就行了,毕竟磁芯存储器这种东西一时半会儿造不出来。
至 ...

您对磁芯存储器有误解,原理和结构都非常简单,奈何电流电压驱动不起来继电器,真空管的绝配
https://baike.baidu.com/item/磁芯存储器
引用 难忘易水寒 2019-7-14 13:05
我的构想里卡片和读取阵列是不发生相对移动的,换卡片就直接打开读取阵列,整页取出卡片。寻址操作依靠阵列选通电路完成,卡片并不移动。读取到总线后直接存储到处理器的寄存器里。可以说去掉了缓存。因为没有机械运动,所以理论上卡片寿命还是很长的。卡片作为指令程序存储区,并不是作为数据存储区,不是用于统计的。至于查表和计算简单的开平方三角函数什么的,肯定不会用这个继电器计算机,继电器计算机应该用在那些缺少数据表的重复计算工作中,通用机干专用机的活儿效率上肯定比不过,通用机就该干那些还没有对应专用机的活儿。

查看全部评论(93)

Archiver|手机版|符有地|临高启明论坛

GMT+8, 2021-12-2 08:57 , Processed in 0.063129 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部