SR锁存器到SRAM你知多少

0.    前言

    这段时间翻了下数字电路,结合工作实践,才恍然大悟,SR锁存器原来和FPGA设计和SRAM关系很大:

  • SR锁存器与FPGA设计为什么要避免锁存器;

  • SRAM结构与SR锁存器之间关系;

  • 基于SRAM和Flash架构的FPGA本质区别。

 

 

1.    SR锁存器

    SR锁存器可以通过与非门或者或非门来实现,下面通过与非门通过Verilog语言实现:

    RTL视图如下:

    对应的真值表如下:

    通过上面的真值表可以发现以下的功能特点:

  • R=S=0需要避免,因为Q=~Qn不成立;

  • R=~S归0和置1操作(RS低有效,分别是Rset 0和Set 1);

  • R=S=1锁存保持上次的值。

    由于SR锁存器有锁存值的功能,那么我们可以通过保证RS在R=~S和R=S=1的转态下来去掉单脉冲的抖动,如下图:

 

2.    FPGA为何要避免锁存器

    SR锁存器的结构和功能一般都知道,但是否想过FPGA又为什么要避免锁存器了?下面对上面的Verilog编写的SR锁存器进行仿真,其中用5ns模拟与非门的逻辑延时:

    其中,模拟R和S不是同时达到来测试锁存器会产生毛刺的现象,仿真得到的波形如下:

    通过仿真的波形,可以确定:

    1. 锁存器输入后经过一段时间稳定得到正确的输出结果;

    2. 锁存器会产生毛刺。

    因此,在FPGA设计中应该避免使用锁存器,抛开锁存器会消耗FPGA内部LUTR不说,最大的问题是会产生毛刺让时序很不确定,很易产生不确定的结果,不确定性在数字电路非0即1逻辑中是致命的。

3.    SRAM结构与锁存器关系

    SRAM的最小存储单元结构是由6T即6个MOS管组成,可以在wikipedia中查到,由于国内网站目前不能访问该网址,已将其转为PDF在文章末尾分享给大家:

    直接看这6个MOS管,一脸懵逼,和SR锁存器能有什么关系,但是如果把它们拆解看:

 

    其中,M5和M6是控制开关可以实现与门的功能,再和反相器一起实现与非门,最终实现SR锁存器,所以SRAM最小存储单元结构就是由SR锁存器来实现的,最终SRAM读写的实现如下图:

    如上图,通过加上MOS管T7、T8和三态门G1、G2、G3就能实现SRAM的读写,R/W=1时,G3开,读取SR锁存器中的存储的值D;R/W=0时,G1和G2开,写入值到SR锁存器中。

4.    基于SRAM和Flash架构FPGA本质区别

    之前有写一篇FPGA(Altera/Xilinx/Actel)如何估算分析功耗,里面对SRAM架构和FLASH架构的FPGA做过比较:

    1. SRAM架构FPGA需要晶体管个数更多,故功耗会更高,掉电数据丢失,发展的工艺也更好,所以集成度更高;

    2. Flash架构FPGA需要晶体管更少,故功耗会更低,掉电数据不丢失,但发展工艺并不好,所以集成度较低。

 

5.    总结

    SR锁存器会和FPGA的毛刺和SRAM有关,那么D触发器是不是也和SR锁存器和建立时间和保持时间有关,先放一张D触发器图,下节再写D触发器的由来:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值