热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FPGA时序约束中常用公式推导

https:blog.csdn.nethuan09900990articledetails76079820在fpga工程中加入时序约束的目的:1、给quartusi
https://blog.csdn.net/huan09900990/article/details/76079820

在fpga工程中加入时序约束的目的: 
1、给quartusii 提出时序要求; 
2、quartusii 在布局布线时会尽量优先去满足给出的时序要求; 
3、STA静态时序分析工具根据你提出的约束去判断时序是否满足的标准。 
举个形象的比喻:就好比我要让代工厂(类比quartus ii)给我加工一批零件,要求长宽高为10x10x10cm,误差不超过1mm(类比时序约束条件)。代工厂按要求(即约束条件)开始进行生产加工,工厂为了不返工,肯定会尽量生产出达到我要求的零件。当加工完成后,质检员(类比STA静态时序分析工具)按我给出的要求进行检验看是否满足要求。要是工厂想尽了各种办法也不能达到我给出的要求,那么就是我给出的要求太高了(即时序约束中的过约束),要是我给出的要求太低(比如说加工成方形就行,而没有指出长宽高),那么工厂很容易就生产出来了,但这并不是我想要的,这是由于我给出的约束太松 即相当于时序里的 欠约束。 
quartus ii里的静态时序分析(STA):是套用特定的时序模型,针对特定电路分析其是否违反设计者给定的时序限制。说白了就是检查fpga内部所有寄存器的建立时间保持时间是否满足spec给定的要求。 
1、Data Arrival Time 数据到达目的寄存器REG2时间 
这里写图片描述 
2、Clock Arrival Time 时钟到达目的寄存器REG2时间 
这里写图片描述
3、Data Required Time 数据需求时间-Setup 
指数据需要在需求时间前到达目的寄存器,否则不满足建立时间关系,不能被正确采样。 
最大延迟是防止数据来的太慢 ,当时钟沿已经到来时,数据还没到,这样就不能在上升沿被寄存器正确采样。 
这里写图片描述
4、Data Required Time 数据需求时间-Hold 
指数据在时钟锁存沿到达后,必须保持一段稳定的时间,使数据被正确采样。做最小延迟约束是为了防止数据传输过快,使得寄存器还在锁存上一个数据时,下一个数据就来了,使得上次锁存数据发生错误。 
所以 保持时间必须小于 tco+tlogic(组合逻辑延时),这里 tco+tlogic(组合逻辑延时)就是数据从源寄存器到目的寄存器的时间。 
这里写图片描述
5、时序裕量slack 
Setup Slack=Setup Required Time - Data Arrival Time 
Hold Slack=Data Arrival Time - Hold Required Time 
时序裕量为正 表示时序满足时序约束条件,为负,时序不满足。 
6、Input Delay 输入最大最小延迟 
Input Delay=数据路径延迟-时钟路径延迟+utco(外部器件) 
输入延迟 Input Delay=Data Arrival Time-Clock Arrival Time 
=launch Edge+Tclk1+uTco+Tdata-latch edge-Tclk2

数据相对于时钟到达目的寄存器的时间差值。即数据和时钟从同一时间点(launch)开始,到达目的寄存REG2的时间差。 
数据到达REG2走的路径延时是:时钟从launch开始 经过Tclk1的延迟到达REG1,REG1在时钟沿来之后,经过Tco的时间把数据送出REG1,然后数据再经过路径延迟Tdata 到达REG2的数据管脚。 
时钟到达REG2走的路径延时是:时钟也从同一时间点(launch)开始,经过路径延迟Tclk2就到达REG2的时钟管脚。 
输入最大延迟是约束为了满足寄存器的建立时间,输入最小延迟是位了满足寄存器的保持时间。 
Input Maximum Delay=Data Arrival Time最大值-Clock Arrival Time 最小值 
“fpga-centric”Input Maximum Delay<&#61;tclk-tsu(fpga) 
这里写图片描述
Input Minimum Delay&#61;Data Arrival Time最小值-Clock Arrival Time 最大值 
“fpga-centric” Input Minimum Delay>&#61;th(fpga) 
这里写图片描述
7、output Delay 输出最大最小延迟 
output Maximum Delay&#61;外部器件tsu&#43;数据路径最大延迟-时钟路径最小延迟 
这里写图片描述

output Minimum Delay&#61;外部器件th&#43;数据路径最小延迟-时钟路径最大延迟 
这里写图片描述
8、Fmax

指设计能运行的最高频率&#xff0c;即周期为最小时&#xff0c;频率最大 
当Setup Slack&#61;0时&#xff0c;系统刚好满足建立时间&#xff0c;此时周期为最小值。 
period&#61;tco&#43;data_delay&#43;tsu-tskew 
这里写图片描述


推荐阅读
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 学习Java异常处理之throws之抛出并捕获异常(9)
    任务描述本关任务:在main方法之外创建任意一个方法接收给定的两个字符串,把第二个字符串的长度减1生成一个整数值,输出第一个字符串长度是 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
author-avatar
你眼眸下的伤谁能读懂UPV
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有