SAM学习笔记-FIFO及FILO

最近学到PLD的结构,发现基本单元的结构和ROM是一样的,就看了很多存储器相关的东西,顺手记录一下。

顺序存储器(SAM)

SAM(Sequential Access Memory),其在存取信息时,只能按存储单元的位置,顺序地一个接一个地进行存取的存储器。最典型的例子是磁带。对其进行细分,又可分为FIFO和FILO。取名来看,其原本是和RAM(Ramdom Access Memory)对标的吧,但实际情况好像是变成ROM和RAM对标了hh。

1.FIFO

FIFO(First Input First Output)简单说就是指先进先出,即第一个进入其内的数据第一个被移出,其中一个是存储器的输入口,另一个口是存储器的输出口。FIFO由动态移存器组成,而动态移存器则是由基本的动态移存单元组成。
1位两相动态移存单元
上图是一个动态移存单元,其再一个下降沿对数据进行记录。当处于高电平时,第一个传输门通,Ui传输到A点,假设Ui为1,则此时A点为1。栅电容(分布电容)充电快,放电慢,因此何以存储信息。经过一个cmos反相器,B点为0。过了一会儿,下降沿到来,电平CP变为了低电平,第二个传输门导通,C点为0,再经过一个cmos反相器,变为了1,实现了数据的存储。
动态移存器
上图则是一个1024位的动态移存器。将动态移存器与一些逻辑门相连接,便得到了如下所示的1位位宽的FIFO。RW端为0时,将D的数据写入,动态移存器的最后一位舍弃;RW端为1时,最后一位数据输出的同时,反馈回动态移存器的最左侧。
在这里插入图片描述
将8个这样的1位位宽的FIFO并联在一起,就构成了8位宽的FIFO。
在这里插入图片描述

2.FILO

FILO(First Input Last Output)顺序存储器与FIFO的结构类似,但使用到的是双向移位寄存器。当RW端为0时,下方的逻辑电路通,下方不通,使得IO口内容传输至G2,同时双向移位寄存器右移,将数据写入最左侧;当RW为1时,双向移位寄存器左移,将数据输出到G2端,上方的逻辑电路通,下方不通,使得数据从IO口输出。因此,每次写入或输出的都是最左侧的数据。PS:第一次看到这个想到的就是堆栈,确实是很相似的概念。
在这里插入图片描述

类比FIFO,将4个这样的1位位宽的FILO并联在一起,就构成了4位宽的FILO。

在这里插入图片描述
最简单的双向移位寄存器的基本存储位元,就是D触发器(实际上还需要一个四选一数据选择器),下面简单介绍其原理。当SL/SR = 1时,左移,此时S1S0为10,数据选择器选中FFm+1的输出。当CP脉冲到来,FFm+1的状态经数据选择器进入FFm,数据向左移动;当SL/SR = 0时,右移,此时S1S0为01,数据选择器选中FFm-1的输出。当CP脉冲到来,FFm-1的状态经数据选择器进入FFm,数据向右移动。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值