大一小菜鸟还没学过模电数电,对电路的理解过于肤浅,对计算机存储特性的本质也是懵懵懂懂。看完B站上这期视频(哔哩哔哩计算机科学速成课06寄存器),感觉自己对计算机的存储原理又有了进一步的理解。
锁存器,门关时输出上次的结果,门开时输出=输入端。
但是究竟最开始发明这种神奇好用的元件时是怎么想的呢?
本文尝试以逻辑门一步步剖析RAM的创造原理。(纯理论无软件要求,本文验证结果使用的是Multisim 14.0)

最原始的电路仅仅是AND和OR两个逻辑门

AND门

A B C
0 0 0
0 1 0
1 0 0
1 1 1

当AC相连:

以下是两个重点:
1)不论之前两端是什么只要B一朝变为0则之后再改变B值out始终为零,B低电平触发使这个逻辑门输出结果始终为0,可以说,AND逻辑门“锁住”表格中粗体的三个状态。
2)静态分析:我们试着保持B=1,将目光放到输出。由AND逻辑门特性可以认为当B=1时的输出全靠之前的输出决定

OR门

A B C
0 0 0
0 1 1
1 0 1
1 1 1

同样的,当AC相连

1)OR逻辑门使得1被“锁住”当B端一朝为1,输出就一直为1
2)静态分析:我们试着保持B=0,将目光放到输出。又由OR电路特性可以认为B=0时,输出靠之前的输出决定

AND和OR合体

就成了AND-OR锁存器

这个“AND-OR锁存器”怎么实现锁存?
A=0,B=0的情况下,B取反后过AND门为1。所以AND门后即是OR电路输出结果相同。
回顾之前OR门的静态分析。
也就是全靠上一次输出结果决定本次输出结果,实现了锁存
验证逻辑关系

A B C
0 0 保存上次输出结果
0 1 0(复位)
1 0 1
1 1 0

但是这些规则使用起来未免太不方便
我们想要一个输入In和一个门锁Door,使得Door=1时OUT=In,Door=0时保存上次输入的内容。

也就是说In Door经过一系列变换达到下表的结果.
我们看到上面的AND-OR锁存器有两个输出结果为0的情况:分别是A=0 B=1和A=1 B=1我们选择哪个进行转换呢?别急稍微分析一下就能得到最优解

In Door A B out
- 0 0 0 上次输出结果
1 1 1 0 1
0 1 0 1 0
0 1 1 1 0

只考虑前半部分转换,则In door看成输入,A、B看成两个输出
先分析没有争议的前两行:
In Door 对A是不是很像AND门的输入与输出?如果我们使用第四行刚好能配合AND门的结果皆大欢喜,电路元件的使用能大大减少之后也更好维护和查错,故我们在In Door选择AND门连接再好不过。

In Door A B out
- 0 0 0 上次输出结果
1 1 1 0 1
0 1 0 1 0

如下图:

In Door 对B

In Door B
0 0 0
1 0 0
1 1 0
0 1 1

看B和AND门两输入的输出结果好像,把In取反刚好和两输入AND门电路一毛一样
所以是In先取反再与Door并。
如图:

使用Multisim验证
发生器和示波器演示
蓝色是门
可见蓝色为高时,out=In
蓝色为低out=最后的In

如图就构造了一个最最简单的可以锁存1bit的锁存器。
当然这么小的锁存器是远远不够我们使用的
我们将八个锁存器并排放到一起,用一根线控制Door线,就成了寄存器,寄存器能存储的数的位数叫做位宽。当寄存器位宽不大时可以采用这种并行连接的方法,当位宽变大,并行连接就显得过于浪费线了。
我们通过矩阵来实现。
之后的实现从锁存器到到RAM的变换。移步哔哩哔哩计算机科学速成课06寄存器
5:30之后的内容,实现了基于锁存器的更高一级抽象。

锁存器原理/门电路/寄存器相关推荐

  1. RTC实时时钟原理+BKP寄存器

    RTC (Real Time Clock):实时时钟 RTC是个独立的定时器.RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能.修改计数器的值可以重新设置当前时间和日期. ...

  2. STM32——RTC实时时钟原理+BKP寄存器原理

    一.RTC实时时钟特征与原理 1.RTC(Real Time Clock):实时时钟 2.RTC是个独立的BCD定时器/计数器.RTC提供一个日历时钟,两个可编程闹钟中断,以及一个具有中断功能的周期性 ...

  3. 锁存器 D触发器 寄存器区别 详细区别解释 Latch D Flipflop register

    1. 锁存器 定义: 对脉冲电平敏感,在时钟脉冲的电平作用下改变状态. 优点: 面积小.锁存器比FF快,所以用在地址锁存是很合适的,不过一定要保证所有的latch信号源的质量,锁存器在CPU设计中很常 ...

  4. vim粘贴复制及其原理(寄存器)

    复制粘贴指令 动作命令d和y的左边紧接着的数字表示行数 u相当于ctrl+z!取消上一个动作,使用u倒退后,还可以使用ctrl+r来恢复之前的修改 如下例子 添加一行数据 使用u即倒退回来,删掉这行数 ...

  5. FPGA笔录(2)-触发器与锁存器原理

  6. 模块DIY——基于DDS直接数字频率合成技术自制的可编程任意波形发生器模块(DDS原理、寄存器解读、原理图设计、驱动程序-适用于AD9833/AD9834/AD9838)

    [系列专栏]:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! <QT开发实战> <嵌入式通用开发实战> <从0到1学习嵌入式Linux开发>

  7. FPGA锁存器、触发器、寄存器和缓冲器的区别

    一.锁存器 锁存器(latch)---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态 锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才 ...

  8. jk触发器改为四进制_锁存器、触发器、寄存器和缓冲器的区别

    一.锁存器 锁存器(latch)---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态 锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才 ...

  9. 寄存器,锁存器,触发器,储存器 区分

    触发器:flipflop  锁存器:latch  寄存器:register    触发器:包括锁存器和寄存器.  锁存器:电平触发的存储单元,在有效电平时间里可以多次改变数据.          优点 ...

最新文章

  1. 理解向日葵甘特之六——定义数据列
  2. vue2.0+stylus实现商品增加减少控制按钮组件
  3. Qt-在控件上绘图的方式
  4. 80% 的 Java 焦虑,都可以被这张图解决
  5. 第四次c语言实验报告模板,C语言实验报告模板.doc
  6. 【模板】ISAP最大流
  7. iis7网站可用php吗,在IIS7下面添加对PHP网页的支持
  8. imdisk虚拟光驱安装linux,ImDisk Virtual Disk Driver
  9. lg相乘公式_lg函数(log的公式大全)
  10. 计算机未来的发展趋势和现状,计算机发展现状跟未来发展趋势.docx
  11. 常见3种视频加密原理知多少
  12. Spark清华镜像下载
  13. 基于ZYNQ的开源CANopen协议栈CANFestival移植
  14. 华为交换IP POOL地址池使用情况查询
  15. 求不定积分的系列题型(一)
  16. 1000个微信小程序源码分享
  17. IT人人际交往篇—战胜害羞的心态
  18. R语言ggplot2 柱状图(条形图)xy轴翻转,及排序
  19. 华为服务器怎么查看cpu型号,华为RH2288H V2处理器性能测试_华为 FusionServer RH2288 V2_服务器评测与技术-中关村在线...
  20. Vue实现离线创建项目

热门文章

  1. Windows电脑如何查询系统版本教程
  2. oracle中分区与索引区别,oracle表分区与索引分区
  3. Python自动点击鼠标脚本
  4. 从零搭建仿抖音短视频APP-后端开发短视频业务模块(1)
  5. Linux服务器上创建新用户
  6. serverless-knative serving安装实战
  7. RabbitMQ消费端报:delivery acknowledgement on channel 5 timed out. Timeout value used: 1800000 ms. This t
  8. Android 接入网易易盾 SDK (文本检测)
  9. 艾美捷 IgM (大鼠) ELISA试剂盒实验原理
  10. 时间格式区别之YYYY/MM/dd HH:mm 与 yyyy/MM/dd HH:mm