FPGA时序分析与约束(2)——时序电路时序

news2024/12/27 9:53:55

一、前言

        在之前的内容中,我们介绍了组合电路的时序问题和可能导致的毛刺,强烈推荐在阅读前文的基础上再继续阅读本文, 前文链接:FPGA时序分析与约束(1)——组合电路时序

        这篇文章中,我们将继续介绍FPGA时序分析相关内容,本文介绍的是时序电路的时序问题。

二、时序电路时序

1、D触发器时序问题

1.1 回顾

        触发器(Filp Flop,FF)是一种只能存储一个二进制位(bit,比特)的存储单元,可以用作时序逻辑电路的记忆元件。FPGA逻辑单元中的D触发器(D-FF)是一种在时钟边沿将输入信号的变化传送到输出的边沿触发器。

dcc4dacec3174b3ba12a326233f73d33.jpeg

        D触发器的本质是由组合电路元件组成的。D、Q、CLK都有时序要求。

1.2 建立时间与保持时间

        CMOS工艺下的D-FF结构如下图所示:

51ea70c416a346b29eac6ccc2da0449e.jpeg

        先由传送门和两个反相器组成一个循环电路(锁存器),再由前后两级锁存器按主从结构连接而成。 这里的传输门起开关的作用,随着CLK的状态变化切换开关。只看输入的话,前级锁存器的值将会随着时钟输入的变化有序地传输到后级锁存器。为了防止时钟信号变化时输入信号发生冒险,从而使稳定的输入信号进入前级锁存器,前级锁存器的时钟相位应该与产生输入信号的电路时钟相反。

        D-FF电路原理图如下:

54c9ec01f6694f18b67435c33e8650de.jpeg

        当CLK=0(主锁存器工作)时,位于前级的主锁存器将输入D的值保存进来,后级的从锁存器维持上一个时钟周期的数据。由于此时前级和后级反相器环路之间的传输门是关闭状态,所以前级的信号不会传送到后级。

        当CLK=1(从锁存器工作)时,前级反相器环路中保存的数据会传输到后级,同时输入D信号会被隔绝在外。如果此时前级反相器环路中的信号没有循环一周以上,就会出现在0和1之间摇摆的中间电位,这就是所谓的亚稳态。由于亚稳态时间比延迟时间长,在该阶段读取数据可能会引入错误,所以我们就引入了建立时间(setup time)来约束在时钟上升沿到来前输入D保持稳定的时间。

        当CLK=1时,如果输入D在传送门关闭前就发生了变化,那么本该在下一个时钟周期读取的数据就提前进入了锁存器,就会引起反相器环路振荡或产生亚稳态。因此,在CLK=1之后也需要输入D维持一定的时间,我们称之为保持时间(hold time)约束。

b254f4e5a1a845d19b62ce63e159f688.jpeg

        所以总结一下就是:

建立时间 Setup time (eq?t_%7Bsetup%7D): 时钟沿到来前数据信号必须保持稳定的最短时间

保持时间 Hold time(eq?t_%7Bhold%7D): 时钟沿到来后数据信号必须保持稳定的最短时间 

然后我们可以得到Aperture time (eq?t_%7Ba%7D): 时钟沿附近数据信号必须保持稳定的最短时间
eq?t_%7Ba%7D%20%3D%20t_%7Bsetup%7D+t_%7Bhold%7D

1.3 触发器输出时序

        Contamination delay clock-to-q(tccq):在时钟沿过后,Q开始变化的最早的时间

        Propagation delay clock-to-q (tpcq)  :  在时钟沿过后,Q停止变化的最晚的时间

e008dd391d0c456ea62abe3b1ed785cf.jpeg

1.4 时序系统设计

        多个触发器被连接到组合电路中,必须要满足每一个寄存器的时序要求:

37a43f49aef94224bef26f24ba6b0015.jpeg

        以上图为例,需要满足R1,R2两个寄存器的时序要求。也就要求确保R2的正确输入时序。也就要求满足R2的建立时间要求和保持时间要求。

341489996aad455ca9c9d8942f17c1f0.jpeg

        这就意味着在两个触发器之间的组合逻辑电路需要有一个最小的时间延迟和一个最大的时间延迟:

(1)时间延迟太小(传播太快):违反R2的保持时间;

(2)时间延迟太大(传播太慢):违反R2的建立时间。

 1.4.1 建立时间约束

        安全时间取决于R1到R2的最大时间延迟,到达R2的输入信号必须在时钟沿到来前的建立时间内保持稳定(eq?T_%7Bc%7D为时钟周期,eq?t_%7Bpcq%7D为Q停止变化的时间,eq?t_%7Bpd%7D为组合电路输出结束变化的时间)

3451e5e49a80460c874602f081f4eaea.jpeg

1.4.2 保持时间约束

        安全时间取决于R1到R2的最小时间延迟,到达R2的输入信号D2必须在时钟沿到来后的保持时间内保持稳定(eq?t_%7Bccq%7D为Q开始变化的时间,eq?t_%7Bcd%7D为组合电路输出开始变化的时间)

fe9dc02ab539414d92b5fef1ad0a248d.jpeg

ff4d80c7accf4094aad8352bf8f4e188.jpeg

        也就是说为了满足我们的设计不出现时序违规的情况,两个触发器R1,R2之间的组合电路被设置了一个最大时间延迟和一个最小时间延迟。组合电路的时延在这个范围之内。

三、总结

        本文我们介绍了时序电路中的时序问题,这是我们进行进一步时序分析内容学习的重要理论基础,首先我们介绍了D触发器相关内容,着重说明了建立时间和保持时间的含义和产生原因,然后引入了触发器的输出时序,最后介绍了时序电路系统的设计约束。

        在后续的文章中,我们计划进一步讨论关于时钟的相关内容,毕竟除了组合逻辑电路和时序逻辑电路,我们现实中的时钟也是存在时延的。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/962675.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android安卓webview,网页端生成安卓项目(极速生成)教程

Android安卓webview,网页端生成安卓项目(极速生成)教程 一,前言 当自己做了一个PC端的页面,也就是前端的页面,或者已经上服的页面,但也想生成一个安卓端供用户使用,本教程详细讲解…

九种情况,要知道灵活变通

九种情况,要知道灵活变通 【安志强趣讲《孙子兵法》第27讲】 第八篇:九变 【全篇大白话】 战场千变万化,胜败看实力,还要看将帅的应变能力。 【原文】 孙子曰:凡用兵之法,将受命于君,合军聚众&a…

解决计算机视觉模型中的种族和性别偏见问题,Meta开源 FACET工具

Meta 公司最新推出的 FACET 工具是为了解决计算机视觉模型中存在的种族和性别偏见问题。该工具经过三万张图片的训练,并含有五万人的图像,特别强调了性别和肤色方面的感知能力。 通过评估计算机视觉模型在不同特征上的表现,FACET 工具可以回答…

vscode远程调试php

使用vscode远程调试php的方法 1.安装remote ssh插件 2.连接服务器 可以点击左下角的绿色按钮,或者ctrlshiftp打开命令框输入remote ssh应该也有。 3.在服务器端vscode安装php debug插件 4.安装xdebug xdebug是用来调试php的软件,原本和vscode没什么关…

无涯教程-JavaScript - GAMMADIST函数

GAMMADIST函数取代了Excel 2010中的GAMMA.DIST函数。 描述 该函数返回伽马分布。您可以使用此功能来研究可能具有偏斜分布的变量。伽马分布通常用于排队分析。 语法 GAMMADIST(x,alpha,beta,cumulative)争论 Argument描述Required/OptionalXThe value at which you want t…

Ubuntu18.04安装docker-io

1. 安装docker 1.1 网上一搜,全是更新仓库、下载依赖、添加docker的gpg密钥、添加docker仓库、安装docker-ce的步骤,但是在安装docker-ce时却提示“package "docker-ce" has no installation candidate”,就很迷。 1.2 安装docke…

设计模式-建造者(生成器)模式

文章目录 简介建造者模式的核心概念产品(Product)建造者(Builder)指挥者(Director)建造者模式与其他设计模式的关系工厂模式和建造者模式uml对比 建造者模式的实现步骤建造者模式的应用场景spring中应用 建…

【类与对象】②认识类的六个默认函数

文章目录 1.类的六个默认函数2.构造函数3.析构函数4.拷贝构造函数5.赋值运算符重载6.const成员 1.类的六个默认函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动…

算法通关村14关 | 数据流中位数问题

1. 数据流中位数问题 题目 LeetCode295: 中位数是有序列表中间的数,如果列表长度是偶数,中位数是中间两个数的平均值, 例如:[2,3,4]的中位数是3, [2,3]中位数是(23)/ 2 2.5 设计一个数据结构: …

使用python对光谱进行lorentz峰值拟合并作图(标注峰值点位)

承接: 使用python对光谱进行lorentz峰值拟合 接下来是对图象的处理,即作图。 import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit# 定义Lorentzian函数 def lorentzian(x, x0, A, gamma):return A * gamma**2…

外贸企业如何借助CRM提升企业发展?

外贸企业竞争激烈,提高自身竞争力,扩大海外业务市场,是每个外贸企业的目标。为了实现这一目标,不少外贸企业借助CRM系统,优化业务流程,管理维护客户,从而实现可持续发展。那么,外贸企…

git 忽略已经提交的文件或文件夹 (修改.gitignore文件无效)

场景描述:项目开发到一半,追加了模块,提交的时候未注意将不需要提交的文件或者目录提交到.gitignore,然后提交后发现再修改git配置文件已无法阻拦更新,查阅官方资料: 核心点:.gitignore 之前&a…

大数据之hadoop入门

大数据概念 大数据:无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现李和流程优化能力的海量、高增长率和多样化的信息资产。 大的概念是相对来说的:目前来说&#xff0…

基于51单片机的SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿真程序原理图报告讲解视频) 讲解视频1.主要功能:2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&下载链接 51单片机SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿…

实现跨境电商测评和采退、LU卡、LU货最安全的系统方案

首先你要有一个稳定的测评环境系统,这个是做自养号退款、撸货、撸卡的基础。测评环境系统有很多,从早期的虚拟机,模拟机,云手机,VPS等等。这些系统方案先不说成本高,最重要的是成功率很低,所以一…

Git和Github的基本用法

目录 背景 下载安装 安装 git for windows 安装 tortoise git 使用 Github 创建项目 注册账号 创建项目 下载项目到本地 Git 操作的三板斧 放入代码 三板斧第一招: git add 三板斧第二招: git commit 三板斧第三招: git push 小结 🎈个人主页&#xf…

基于单片机的串行通信发射机设计

一、项目介绍 串行通信是一种常见的数据传输方式,允许将数据以比特流的形式在发送端和接收端之间传输。当前实现基于STC89C52单片机的串行通信发射机,通过红外发射管和接收头实现自定义协议的数据无线传输。 二、系统设计 2.1 单片机选择 在本设计中&…

黑马 大事件项目 笔记

学习视频:黑马 Vue23 课程 后台数据管理系统 - 项目架构设计 在线演示:https://fe-bigevent-web.itheima.net/login 接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 接口根路径: http:/…

系统架构技能之设计模式-抽象工厂模式

一、上篇回顾 上篇我们主要讲述了简单工厂模式和工厂模式。并且分析了每种模式的应用场景和一些优缺点,我们现在来回顾一下: 简单工厂模式:一个工厂负责所有类型对象的创建,不支持无缝的新增新的类型对象的创建。 工厂模式&…

系统架构技能之设计模式-工厂模式

一、开篇 本文主要是讲述设计模式中最经典的创建型模式-工厂模式,本文将会从以下几点对工厂模式进行阐述。 本文将会从上面的四个方面进行详细的讲解和说明,当然会的朋友可以之处我的不足之处,不会的朋友也请我们能够相互学习讨论。 二、摘…