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

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

3天内不再提示

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

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

内存-矩阵连接锁存器

「在矩阵中,不并列排放锁存器,做成网格的形式。」

这样存256位就可以使用16X16的网格。

「如果要启用其中的某个寄存器,指明对应的行号和列号即可。」

图片

如何实现只打开某个锁存器

首先给定行号和列号,只有对应的 「行号和列号都满足条件时」 ,才会打开某个锁存器的行列选择器 「(ROW+COLUMN SELECT TEST)。」

实现方案已经看出来了**「使用的是AND门(也就是下图的ROW+COLUMN SELECT TEST)」** ,那么这个行号和列号怎么转换成对应的比特01呢?(后面总结矩阵需要多少跟线的时候在讲解)

图片

如何实现"允许写入线"

「和之前一样也是用的一根允许写入线来控制所有锁存器的写入线。」

但和之前稍微不同的是

「允许存储不单单是允许写入就可以存储的了,还需要满足另外一个条件就是:对应的行列选择器被打开」

因此需要在传统的WRITE ENABLE的基础上 AND 行列选择器的开关。只有行号,列号,允许写入线都是1才进行存储。

「而且每次只有一个锁存器会这样,这会在数据输入线实现的时候有特别大的帮助」

图片

如何实现数据输入线

得益于之前的写入判断:只有行号,列号,允许写入线都是1才进行存储,而且每次只有一个锁存器会这样。因此我们不需要向并排那样每个锁存器都有一个输入线 「,矩阵只需要一个数据输入线即可,因为每次只能操作一个锁存器,其他锁存器会忽略数据线上的值,因为没有“允许写入(行列不满足)”」

大致修改流程

先锁定行列矩阵中开启哪个锁存器,在判断是否允许写入,如果允许写入那么数据线的值就是输出,如果不允许写入那么输出不会改变

如何实现数据读取线

类似数据输入线一样,每次锁定要读取的行列即可。「但是每次只可以输出一个锁存器上存储的数字」

总结-矩阵后的256位内存需要多少线

「答案是仅仅需要35跟线即可。」

一条数据线,一条允许写入线,一条允许读取线(强调!!每次只可读取一位如果需要读取多位需要将多个内存向寄存器那样把锁存器并排放置),还有剩下32个线就是我们用于锁定对应行列的锁存器,这个32跟线就是多路复用器的32跟线,下面介绍多路复用器

多路复用器----将行列二进制地址转换为行和列打开对应的锁存器

由于256位的寄存器行列数最大值也就是16,因此4位数足够了。

转换示例:比如行号12用二进制表示:1100,列号8用二进制表示:1000.因此行列的表示可以写成**「11001000代表的是十二行第8列」**

选择多路复用器

根据转换的不同行列数,需要不同的多路复用器。

上面我们用的都是16行,「因此行和列选择的都是1到16多路复用器。一个多路复用器处理行,一个处理列」

工作方式

输入四位数字,会选择对应的行或列,比如代表列的0000列的复用器会选择第一列,如果是0001=1会选择第二列,以此类推..

图片

抽象-可以存储256位的内存

8位地址里面四位表示行号,另外四位表示列号

数据Data输入线

允许写入线:WRITE ENABLE

允许读取线:READ ENABLE

图片

存储多位信息

我们从最初只能存储一位的内存发展到存储八位的内存再之后发展到刚刚提到的可以存储256位的内存(每次只可取一个位)。但是这一个**「可以存储256位的内存也只是每次可以输出一位的信息,并没有多大用处,因此将这些内存再次链接起来,向寄存器那样将多个锁存器并排放置」**

「将八个256位内存并排放置,每次都可以存储一个八位的数字,八位也叫一个字节(byte)。」

「每次都给8个256位内存一样的地址,每个地址存一位,也就意味着总共能存256个字节」

图片

抽象-看成一个整体的可寻址内存

8-BIT ADDRESS INPUT:代表的是这八个256位内存中使用的同一个行列,因此这个RAM有256个地址,而每个地址都可以读写一个8位的值,也就是可以存储256X8位的信息,也即256个字节(byte)

「这个RAM有16个寻址空间地址,每个地址可以读写8位值,可以看到是由8个16位内存组成」 下一篇文章将CPU的时候会用到

图片

现在计算机的内存已经扩展到了GB的方式,和上面介绍的一样,也是不断的打包这些矩阵,不断把内存打包到更大规模,8位最多能代表256个内存地址,如果想要给千兆或者十亿字节的内存寻址(寻找地址),需要使用32位的地址。

总结

这篇文章,我们用**「锁存器做了一个SRAM(静态随机存取存储器)」** ,还有其他类型的RAM,比如DRAM,闪存和NVRAM。。他们在功能上和SRAM相同,但用不同的电路存单个位:比如 「用不同的逻辑门,电容器,电荷捕获或忆阻器」 。但根本上,「这些技术都是矩阵层层嵌套来存储大量信息。计算机底层其实很好理解,难得是一层层难以理解的抽象。」

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

    关注

    182

    文章

    16431

    浏览量

    244155
  • 存储器
    +关注

    关注

    38

    文章

    7083

    浏览量

    161695
  • ROM
    ROM
    +关注

    关注

    4

    文章

    519

    浏览量

    84636
收藏 人收藏

    评论

    相关推荐

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

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

    为什么寄存器的速度比内存

    如此,内存的设计相对简单,每个位就是电容和晶体管,而
    发表于 12-27 10:19

    利用QutartusII15.0设计直通 输入数据 然后直接输入

    利用QutartusII15.0设计直通 输入数据 然后直接输入,本人小白
    发表于 04-24 15:04

    寄存器内存内存储器)与外设寄存器

    寄存器:指的是CPU内核里的寄存器,如r0,r1等内存内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与
    发表于 03-11 20:11

    寄存器和触发的区别

    寄存器:register:latch触发:flipflop
    发表于 07-03 11:50

    触发寄存器三者的区别

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

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

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

    的缺点和优点

    ASIC设计中应该说比ff要简单,但是在FPGA的资源中,大部分器件没有这个东西,所以需要用
    发表于 04-23 03:35

    寄存器应用

    存储电路。寄存器的存储电路是由或触发构成的,因为
    发表于 06-27 04:20

    【答疑】关于问题的讨论

    关于问题的讨论很多同学提问到的相关问题,说明大家对这方面知识还不是很了解,今天我们就
    发表于 03-02 00:25

    的相关资料分享

    前言在学习了基本原理后,剩下就是对各个外设以及对单片机寄存器的相关学习,如果没有看过之前对
    发表于 12-03 08:05

    什么是寄存器?什么是寄存器映射

    .什么是寄存器?什么是寄存器映射?给有特定功能的内存单元取别名,这个别名就是我们常说的
    发表于 12-10 08:14

    简单了解一下74HC573

    简单了解一下74HC57374HC573
    发表于 01-12 06:28

    请问一下与缓冲有何作用呢

    就是把当前的状态起来,使CPU送出的数据在接口电路的输出端保持段时间
    发表于 03-01 07:00

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

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