zoukankan      html  css  js  c++  java
  • 锁存器与触发器

    锁存器与触发器

    来源 https://zhuanlan.zhihu.com/p/363273167

    常见存储电路

    RS锁存器

    锁存器的机制为电平触发。基本的RS锁存器有两个输入端:set端和reset端。两个输出端:Q和Q非

    以下图为例:

    • 当置位时,SD位为1,RD位为0 ——>Q为1,Q非为0
    • 当复位时,SD位为0,RD位为1—— >Q为0,Q非为1

    可以看出这时Q的状态就是锁存器的状态

    • 锁存器可以存值的原理:
      已复位为例,假设此时输入端的激励信号消失,那么SD和RD都为0。
      此时G1门的输入端的Q非应该为上次复位时的值1(时序电路的特点)
    • 禁止出现SD为1,RD也为1的情况。(既复位又置位),会导致Q的状态不确定。
    • RS锁存器也可使用与非门实现(低电平有效)

    D锁存器

    与非门实现的D锁存器结构如下:

     

    • 可以看出,当C=1时,该锁存器有效。此时D的状态决定了Qn+1的状态

    • 当C被拉高时,Q的状态随着D的状态变化
    • 当C被拉低时,锁存此时D的状态

    但触发器会出现空翻现象,即当C有效,D不断变化时,一次时钟来到期间,触发器多次翻转


    主从D触发器

    触发器是边沿触发的。主从D触发器可以很好地解决空翻现象

    • F1为主触发器,F2为从触发器
    • 主从D触发器为边沿触发
      当激励产生,CLK=0,D=1,F1工作,此时Q1=1,但F2只能等到下一拍才可触发。下一拍CLK=1,Q1=1,F2工作,Q=1。
    • 可以有效解决空翻


    寄存器

    寄存器的工作原理与D触发器基本一致,可以保持当前值直到时钟边沿的到来。


    右移位寄存器

    移位寄存器就是根据D触发器的特性串联实现的,一次信号变化移动一位

    • 第一次变化如下图,第一位置1,其余位不变

    • 第二次变化如下图,第二位在时钟边沿到达时,由于触发器的特性而置1

    • 后面的变化与上面类似

    触发器是时序电路中一种非常常见的元器件,在时序电路中用来锁存值,也与非阻塞赋值有关。

    而在verilog编码中要尽量防止锁存器的出现。

    ============= End

  • 相关阅读:
    Intent
    BroadcastReceiver
    AsyncTask两种线程池
    多线程、Service与IntentService的比较
    AsyncTask
    转:Android开发:使用DDMS Heap进行内存泄露调试
    (原创)Android Binder设计与实现
    (原)一句mpAudioPolicy->get_input引发的血案
    LOCAL_WHOLE_STATIC_LIBRARIES与LOCAL_STATIC_LIBRARIES的区别
    非static成员函数通过类名::来调用,空指针调用成员方法不出错!
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/15733012.html
Copyright © 2011-2022 走看看