码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【数字电路基础】深入理解setup time和hold time


    目录

    • 前言
    • Latch与Flip-Flop
    • 问题引入
    • DFF电路结构
    • 问题拓展
    • 仿真歧义

    前言

    本文通过引入Latch和Flip-Flop深入分析为何DFF需要setup time和hold time

    Latch与Flip-Flop

    Latch属于组合逻辑电路,其时序图如下,最大的特点在于EN->Q以及D->Q均有延时

    而Filp-Flop的延时来源于CK->Q

    问题引入

    为何Flip-Flop(DFF)没有D->Q的延时?
    答: 在CLK上升沿的一瞬间,D端的信号必须保持稳定,在上升沿之前的一段稳定时间为建立时间setup time,在上升沿之后的稳定时间为维持时间hold time。

    这也就意味着下图的采样是不合理的,无法知道Q端输出信号

    DFF电路结构

    那么,为何DFF需要setup time和hold time?
    这需要从DFF的电路结构理解,DFF的一种电路图如下所示,其中Φ为CLK信号
    在这里插入图片描述

    • 当CLK为0时,左侧的传输门打开,D端信号通过传输门进入到反相器的输入端,也即X信号,而右侧的传输门会关闭,信号被锁存在中部电路
    • 当CLK为1时,左侧的传输门关闭,右侧的传输门打开,信号输出到Q端

    那么,信号则必须从D端传入到X点之后传输门才能关闭,也即对应了setup time。并且CLK置1时,关断左侧传输门本身需要时间,这时D端信号不能变化,否则在传输门完全关断之前,D端信号依旧可以传输到DFF内部,也即对应了hold time
    更详细的时间计算可参照这篇博客:为什么会有建立时间setup和保持时间hold要求

    问题拓展

    在cell library中DFF的setup time可以设置为0吗

    答案是可以的,如下图所示,在CLK的前端加一个buffer,用于延时,相当于将clk的波形置前了,此时CK的上升沿可以与D端的上升沿对齐,甚至setup time可以为负数

    在这里插入图片描述
    那么,在cell library中DFF的hold time可以设置为0吗

    答案也是可以的,如下图所示,在D端的前面加上一个buffer,用于延时,相当于将D端口的波形置前了

    在这里插入图片描述

    那么,一个DFF cell的setup time和hold time可以同时为0吗?

    显然是不可以的,因为setup time和hold time叠加本来就是一段时间,也就是setup time+hold time必须为正数,为一个时间窗口,且等于最基本的DFF的建立时间与维持时间之和

    仿真歧义

    再次拿出这张图,在Verilog仿真阶段该DFF可能有正常的输出,也有很多人质疑该时序图能够正常的输出,是因为仿真与实际电路是有区别的,仿真避开了电路的结构,可以直接输出CLK前一段时间的D端输入数据

    码字不易,欢迎点赞+关注+收藏

  • 相关阅读:
    互联网摸鱼日报(2023-05-28)
    新品上市 | “电子表格软件”轻装上阵,企业报表用户的新选择
    微信小程序 navigator点击后有阴影 ,去掉navigator阴影效果
    进程和线程
    git 命令总结
    Web3游戏基础设施提供商Stardust为Sui上的游戏开发者提供支持
    IDEA 2021.2.2设置自动热部署
    趣学python编程 (三、计算机基础知识)
    分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
    ElasticSearch - ​开启搜索的新境界
  • 原文地址:https://blog.csdn.net/qq_45413245/article/details/127838766
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号