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相同,但用不同的电路存单个位:比如 「用不同的逻辑门,电容器,电荷捕获或忆阻器」 。但根本上,「这些技术都是矩阵层层嵌套来存储大量信息。计算机底层其实很好理解,难得是一层层难以理解的抽象。」

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

    关注

    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

    寄存器和触发的区别

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

    触发寄存器三者的区别

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

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

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

    RFM反射内存5565控制和状态寄存器

    版本寄存器 反射内存卡PCI-5565版本(BRV)BAR2(偏移$ 0):8bit寄存器,用来表示版本或型号。该
    发表于 08-13 07:58 1239次阅读

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

     第一个时钟周期将其加载到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次阅读

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

    当我们打游戏的时候如果停电或者电源不小心被拔掉,那么之前做的切工作将丢失。损失数据的原因是因为电脑是用的:**「”随机存取存储“,简称“ROM”。他只能在有电的时候存储东西;另种存储叫做持久存储,电源关闭时数据也不会丢失。
    的头像 发表于 02-02 13:47 1288次阅读
    <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次阅读