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

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

3天内不再提示

矩阵锁存器是如何工作的?

h1654155971.8456 来源:EDA365 作者:EDA365 2020-07-08 11:30 次阅读

对于计算机我们肯定都很熟悉,它的内部有ALU进行算术和逻辑运算,可是他们运算得出的结果怎么办?扔掉吗?那这个计算就没有任何意义了。

因此,那些计算出来的结果就需要存起来,于是就有了计算机内存。

当打游戏或者编辑某个文档且进入尾声的时候,电源被切断的惨痛经历大家应该都经历过,再次打开电脑的时候,上次的数据都没了,这就是随机存取存储器,简称RAM,还有一种就是电源关闭了数据还在,这就是持久存储。

上面的有没有理解不重要,现在我们从简单的只能存1个bit电路开始,来了解一下内存的工作原理吧!

先看OR门,将输出传回输入,看看发生了什么?

矩阵锁存器是如何工作的?

首先,将两个输入A、B均设为0,“0 OR 0”是0,输出0;如果将A变成1“1 OR 0”为1,输出1,输出回到B,B变为1,后面再怎么改变A的值,输出仍然为1,这个电路可以用来记录1。

再来看看AND门

将A和B都设为1,“1 AND 1”的输出是1;如果将A变为0,输出0,输出回到B,B变为0,后面再怎么改变A的值,输出仍然为0,这个电路记录0。

现在有了记录1和0的电路,为了做出有用的存储(memory),我们将两个电路合起来,变成了“AND-OR锁存器”

它有两个输入,“设置”( SET )和“复位” ( RESET ),如果“设置”和“复位”都是0,电路的输出就是最后放入的内容,它存住了1 bit的信息,这就是存储!

注:之所以叫“锁存”,是因为它“锁定”一个特定值并保持状态不变。数据放入叫“写入” ,数据输出叫“读取”。

矩阵锁存器是如何工作的?

用两个输入SET和RESET有点麻烦,为了更方便,我们只用一个输入线,将它设为0或1来存储值,再加一根“允许输入线”来“启用”(enable)内存,启用时允许写入,未启用时“锁定”,再与一些额外逻辑门就可以组成一个叫“门锁”(Gated Latch)的电路。

刚刚我们只存了1bit,没什么大用,但如果我们并排放8个锁存器,就可以存8位信息,这个8bit数字组的锁存器叫“寄存器”,寄存器能存多少个Bit叫“位宽”。

早期电脑用8位寄存器,然后是16位,32位,如今大多计算机都是64位宽的寄存器。

矩阵锁存器是如何工作的?

在写入寄存器之前,要启用里面所有锁存器,我们可以用一根线连接所有“允许输入线”,并设为1,然后用8条数据线发数据,最后将“允许写入线”设回0,8bit的值就存好了。

对于bit少的,这样并排摆放锁存器可以,可是对于64位寄存器要64根数据线,64根连到输出端,这怎么办?

幸运的是,只要1根线启用所有锁存器,这样加起来也要129根线;那存256个bit,要513根线,存放的数据越多,需要的线就越多,那有什么好的解决方法吗?

矩阵锁存器是如何工作的?

解决方法就是用矩阵!

在矩阵中,我们将锁存器做成网格,那么存256位只需要16x16的锁存器。

让我们看看矩阵锁存器是如何工作的吧?

如果想打开某个锁存器,就打开这个锁存器交叉处的“允许写入线”,这种行/列配置方法,需要一根共享的“允许写入线”连接所有锁存器,为了使锁存器变为“允许写入”状态,行线、列线和“允许写入线”都必须为1,而且每次只能有1个锁存器启用并锁存数据,这样就可以用一根“数据线”连接所有锁存器来传数据。

这样256位的存储,只需要35根线——1根“数据线”,1根“允许写入线”,1根“允许读取线”和16行16列的用于选择锁存器的线。

为了将地址转成行和列,我们需要一个叫“多路复用器”的部件,它的工作方式是:当输入一个4 bit数字时,它会把那根线连到相应的输出线,如果输入0000,它会选择第一列;如果输入0001,则选择下一列,依此类推。

一个多路复用器处理行(row),另一个多路复用器处理列(column),那么把256位内存当成一个组件来看,它需要一个8bit地址:4bit代表哪一列,4 bit 代表哪一行,还需要“允许写入线”和“允许读取线”,最后,还需要一条数据线,用于读/写数据。

今天,我们用锁存器做了一块SRAM(静态随机存取存储器),还有其他类型的RAM,如DRAM,闪存和NVRAM,它们在功能上与SRAM相似,比如用不同的逻辑门,电容器,电荷陷阱或忆阻器等,但从根本上说,所有这些技术都是用矩阵层层嵌套存储大量信息的,有没有觉得很不可思议呢?
责任编辑:pj

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

    关注

    30

    文章

    5022

    浏览量

    117633
  • 计算机
    +关注

    关注

    19

    文章

    6631

    浏览量

    84388
  • 锁存器
    +关注

    关注

    8

    文章

    742

    浏览量

    41018
  • 华秋DFM
    +关注

    关注

    20

    文章

    3481

    浏览量

    3899
收藏 人收藏

    评论

    相关推荐

    AD790的引脚造成电流过大怎么解决?

    上面是其中文手册的写法。 我现在的用法是±15V供电,Vlogic为5V。 我将脚直接接到5V,上电发现,AD790的温度突然就升了上去,而从我的供电电源也看到,我的5V电源输出电流一下
    发表于 11-20 06:41

    的作用是什么?

    数码管的动态显示截取了部分程序,使用了74hc573,但是我觉得去掉程序照样可以执行
    发表于 10-26 07:18

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:34:23

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:31:01

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:29:20

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:28:29

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:26:49

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:25:08

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:23:27

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:20:56

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:20:05

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:17:34

    03 ex_2verilog 基本语法,产生原因与避免产生的方法;Modelsim仿真技巧。 -

    fpga软件程序代码
    充八万
    发布于 :2023年08月17日 23:11:41

    请问sr是如何消除脉冲抖动的?

    数电分析,电平从高到低再到高的过程,sr是如何消除脉冲抖动的?
    发表于 05-10 15:03

    sr是如何消除脉冲抖动的?

    数电分析,电平从高到低再到高的过程,sr是如何消除脉冲抖动的?
    发表于 04-26 11:00