0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单利用锁存器做一个寄存器和内存(上)

jf_78858299 来源:北洋洋洋 作者:北洋 2023-02-02 13:47 次阅读

计算机需要 「”内存“来记录这些计算后的结果」 ,如果只是计算后就扔掉没有多大意义,我们需要将结果存储起来以便后面使用

RAM

当我们打游戏的时候如果停电或者电源不小心被拔掉,那么之前做的一切工作将丢失。损失数据的原因是因为电脑是用的:「”随机存取存储器“,简称“ROM”。他只能在有电的时候存储东西;另一种存储叫做持久存储,电源关闭时数据也不会丢失。」

存储一位的电路

之前说过的电路他们电流的流动方向总是向前流动,比如之前的八位加法器。但是也可以做**「回向电路,把输出连回输入」**

记录“1”

也即记录“true“,回想一下什么时候输出为true比较容易。答案是OR门,「只要有一个输入为true输出将永远为true。只要有一个1,输出将永远为1」

因此**「将输出的线路接回到两个输入线路中的其中一个即(输出=A/B)」** 。只要 「A/B其中一个输入1」 ,那么输出就是1,由于输出会链接到另一个输入, 「因此B/A也会为1」 。之后不管如何变化A/B,B/A始终都为1,因此这个电路就是存储1的电路。

图示:只要当A输入为1的时候,这个电路的输出将会一直是1(输出会链接到B因此B为1),不管A如何变化。

也即存储”1“

「存储之后将永远无法改变输出是1这个结果。」

图片

记录“0”

同样,用什么来存储false比较简单呢?答案是通过AND门,「因为」 「只要有一个为false输出就一直为false。」

「即只要有一个0,那么输出就会一直是0.」

和上面一样,替换1为0即可:

「将输出的线路接回到两个输入线路中的其中一个即(输出=A/B)」 。只要 「A/B其中一个输入0」 ,那么输出就是0,由于输出会链接到另一个输入, 「因此B/A也会为0」 。之后不管如何变化A/B,B/A始终都为0,因此这个电路就是永久存储0的电路。

图示:当A输入0时,AND的结果为0,B也为0.之后不管A如何变化,输出将永远为0

同样也是持久化的存储了之后就不会改变

图片

AND-OR锁存器

现在我们把上面的两个存储电路结合起来做成一个有用的存储:

图片图片

组合到一起之后:

变化:存储1的B线输入接至整体的最后输出,存储0的B线输入为存储1的输出

首先来看两个输入:设置和复位。先不纠结他们的作用,把他们看成普通的输入即可

SET,RESET都为1:最后输出为0

SET=0,RESET=1:最后输出为0

RESET,SET都为0:输出为0

重点来了:

**「SET=1RESET=0:输出为1,不管之后SET如何变化(设置为0也好1也好)最后的输出都为TRUE(他锁住了1位的信息),除非RESET设置为1输出才会重置为0因此这也是RESET的含义」**

观察规律可得出:复位为1不管输入是0还是1最终输出都是0;复位为0输出的值=SET的值。「当SET为1时他锁住了这个1」

锁存介绍

重点:「当SET为1RESET=0时他锁住了这个1(即SET不管如何变化最后的结果永远都是1)。」

「这叫“锁存”,因为他“锁定”了一个值,放入数据的动作叫做“写入”,拿出数据的动作叫做”读取“」

锁存器优化——门锁

两条线设置和复位太麻烦,为了更容易使用。通过**「一条输入线设置为0或1来存储值,还需要另外一根线去启用内存,让他存储。启用时允许写入,没有启动时就”锁定“这条线叫”允许写入线“」**

正如图中所说的,这叫”门锁“,因为门可以打开和关上。

接下来读者自己去做下面的规则运算吧,最终会发现只有当允许写入线打开数据输入才会进行存储(OUT才会改变),允许写入线关闭,不管数据输入如何变化最后的结果都不会变(OUT不会改变)

图片

抽象-门锁

将这个门锁放到一个盒子里面,「这个盒子可以存储一个Bit的信息。」

允许写入线关闭,数据输入线不管是0还是1输出都不会有变化。

允许写入线开启,输出随着数据输入的值进行改变。

图片

寄存器-存储一系列锁存器

经过上面介绍我们现在可以存储一个一位的数字了,不过存储一位的数字并不能做什么。

定义

如果我们可以 「并排放八个锁存器,就可以存八位的信」 息,比如一个8Bit的数字。

「一组这样的锁存器叫做寄存器,寄存器能存一个数字,这个数字有多少位,叫做位宽。」

早期的电脑是用的八位寄存器,然后发展16位,32位,现在许多计算机都有64位宽的寄存器

8位寄存器需要多少线?

数据输入需要有八根线,对应的八个锁存器对应存储的数字

数据输出线也是需要八根线,每个锁存器输出各自存储的位

最后只需要 「用一条启用写入线连接所有的允许输入线即可」 .当设置为1时,这个八位的寄存器才会进行存储之后输出的时候会发生变化;当设置为0时,不会影响数据的输出。

可见八位的寄存器所需的线的数量时17根(8+8+1)

由此可推断出我们**「现如今使用的64位寄存器所需要多少线:(64+64+1)=129根线」**


「寄存器是一块比较小的内存用于存储一个值,而RAM是一大块内存能在不同地址(矩阵中的行列。地址多少取决于矩阵中行列数量)存大量数字」

「那么我们如果要用锁存器存256位就需要129X4=513条线!!!因此后面换了一种组合方式存储RAM」

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    184

    文章

    17693

    浏览量

    249909
  • 存储器
    +关注

    关注

    38

    文章

    7481

    浏览量

    163751
  • ROM
    ROM
    +关注

    关注

    4

    文章

    563

    浏览量

    85724
收藏 人收藏

    评论

    相关推荐

    FPGA的设计中为什么避免使用

    文章都对误解,我们后面会详细说明。 这篇文章,我们包含如下内容: ①
    的头像 发表于 11-16 11:42 8446次阅读
    FPGA的设计中为什么避免使用<b class='flag-5'>锁</b><b class='flag-5'>存</b><b class='flag-5'>器</b>

    、触发寄存器和缓冲的区别

    的数据和运算结果,它被广泛的用于各类数字系统和计算机中。其实寄存器就是种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由
    发表于 10-09 16:19

    寄存器和触发的区别

    ,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由或触发构成的,因为
    发表于 07-03 11:50

    触发寄存器三者的区别

    公共的控制信号来控制,而各个数据端口仍然是各处独立地接收数据。这样所构成的能次传送或存储多位数据的电路就称为“”。寄存器:在实际的数
    发表于 09-11 08:14

    【转】数字电路三剑客:、触发寄存器

    的时钟端口连接起来就能构成存储n位二进制码的寄存器是电平触发的存储单元,数据存储的动
    发表于 10-27 22:38

    如何在项目中使用移位寄存器

     第一个时钟周期将其加载到A.然后,的输
    发表于 07-15 10:02 1584次阅读
    如何在项目中使用移位<b class='flag-5'>寄存器</b>

    如何使用的Time Borrowing技术来替代关键路径中的寄存器

    在ASIC中用到的地方很多,Time Borrowing是使用的典型应用之
    的头像 发表于 06-14 16:56 1795次阅读

    如何在VHDL中实现简单寄存器

    存储的位数上有所不同,具体取决于系统的配置。在本教程中,我们将学习如何在 VHDL 中实现简单寄存器
    发表于 07-29 16:48 4620次阅读
    如何在VHDL中实现<b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的<b class='flag-5'>寄存器</b>

    、触发寄存器的关联与区别及其相应的verilog描述

    (latch) 电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,当处于使能状态时,输出 才会随着数据输入发生变化。(
    的头像 发表于 12-19 12:25 1.2w次阅读

    文详细区分寄存器和触发

    你有没有遇到过这样奇怪的事:你直以为自己知道某件事,但当你试着向别人解释它时,你才发现自己的论述中存在漏洞和逻辑的差异?这就是我最近所遇到的情况,当时有人问我
    的头像 发表于 01-30 15:21 3142次阅读

    简单利用做一个寄存器内存(下)

    当我们打游戏的时候如果停电或者电源不小心被拔掉,那么之前做的切工作将丢失。损失数据的原因是因为电脑是用的:**「”随机存取存储“,简称“ROM”。他只能在有电的时候存储东西;另种存储叫做持久存储,电源关闭时数据也不会丢失。
    的头像 发表于 02-02 13:47 1189次阅读
    <b class='flag-5'>简单利用</b><b class='flag-5'>锁</b><b class='flag-5'>存</b><b class='flag-5'>器</b><b class='flag-5'>做一个</b><b class='flag-5'>寄存器</b>和<b class='flag-5'>内存</b>(下)

    寄存器的工作原理

    或触发构成的,因为
    发表于 02-20 14:02 8478次阅读

    什么是寄存器有何区别

    (Latch)是种基本的数字电路元件,用于存储二进制数字的状态信息,并能够在需要时通过加电或控制信号的作用保持状态。它通常由几个逻辑门组成,可以实现
    的头像 发表于 04-09 18:45 9752次阅读

    带输入的8位移位寄存器数据表

    电子发烧友网站提供《带输入的8位移位寄存器数据表.pdf》资料免费下载
    发表于 05-13 11:15 0次下载
    带输入<b class='flag-5'>锁</b><b class='flag-5'>存</b><b class='flag-5'>器</b>的8位移位<b class='flag-5'>寄存器</b>数据表

    、触发寄存器的区别

    在数字电路和计算机系统中,、触发寄存器都是关键的存储元件,它们在功能、结构和使用场景
    的头像 发表于 05-23 15:28 2207次阅读