首页 > 其他分享 >Vivado进阶-时序分析之时钟偏移

Vivado进阶-时序分析之时钟偏移

时间:2024-09-27 15:48:20浏览次数:3  
标签:进阶 捕获 时序 Vivado 偏移 寄存器 时间 时钟

	FPGA中绝大多数电路都是同步时序电路,基本模型为“寄存器+组合逻辑+寄存器”。同步就意味着时序路径上的所有寄存器都是在时钟信号的驱动下步调一致的运行。这就要求时钟信号要在同一时间点到达所有寄存器的时钟端口。为了尽量达到这个目的,在FPGA内部提供了专用的时钟布线资源,但是,即便如此,实际情况时钟信号也不可能在同一时间到达所有的寄存器的时钟端口,这种现象就叫时钟偏移。
	时钟偏移反映了时钟信号到达不同寄存器时钟端口之间的时间差异,如下图所示如下图所示
	![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2009bad086434cd7b0ae3702992284e4.png)
	时钟从远端到达FF1的时间是Tclk1,到达FF2的时间是Tclk2,因此时钟偏移Tskew=Tclk1-Tclk2.如果clk的源端记为0时刻点,那么Tclk1和Tclk2就是发送时钟路径延迟和捕获时钟路径延迟。
	![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/61cc9cc61c2c4201ab858c94794cede0.png)
	时钟偏移可正可负,如上图所示,如果数据流向和时钟方向相同,则偏移为正,否则,时钟偏移为负。
	时钟偏移对时序有什么影响呢?这需要从建立时间和保持时间两个方面来分析。先以正向的偏移时钟为例。建立时间裕量分析,如下图所示:
	![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8131cd43edae43bfa6f8d2b69e368687.png)

发起沿和捕获沿相差一个时钟周期,正向的时钟偏移对建立收敛是有利的,相当于捕获寄存器的建立时间由Tsu减小到Tsu-Tskew.保持时间的发起沿和捕获沿是同一个时钟沿,保持时间检查时基于建立时间检查的,要求当前发送沿发送的数据不能被前一个捕获沿捕获,下一个发送沿发送的数据不能被当前的捕获沿捕获,由图可以得出结论:正向的时钟偏移不利于保持时间收敛,相当于数据在有效沿到达之后还要稳定保持的时间变长了,由原来的Th变成了Th+Tkew。
在这里插入图片描述
结合建立时间裕量表达式和保持时间裕量表达式可知,若Skew为负,则建立时间更加困难,保持时间收敛更加容易。
这就告诉我们在设计初期就要做到系统时钟输入管脚与系统的数据输入管脚要在FPGA的同侧,这样能最大限度的保证时钟前进方向和数据流向是一致的。
哪 些因素会导致时钟偏移过大呢?首先是不合理的时钟结构,比如级联的BUFG或者时钟路径上面出现组合逻辑;时钟同时驱动I/O资源和SLICE资源;时钟跨die等都会增大时钟偏移。通常只要超过0.5ns就需要格外关注,时序报告的总结里面会有时钟偏移的具体值,如下图:
在这里插入图片描述
既然有时钟偏移,那么在fpga上如何降低时钟偏移呢?接下来就用实战中具体的方法来降低时钟偏移。

标签:进阶,捕获,时序,Vivado,偏移,寄存器,时间,时钟
From: https://blog.csdn.net/weixin_39896700/article/details/142594692

相关文章

  • 【C++进阶】AVL树的介绍及实现
    【C++进阶】AVL树的介绍及实现......
  • 大模型开发入门到进阶(二)大模型的应用领域、大模型的优缺点
    一、大模型的应用领域大模型作为人工智能领域的重要成果,其应用领域广泛且深入,涵盖了自然语言处理、计算机视觉、生物信息学、自动驾驶、金融等多个关键领域。以下是对大模型应用领域的详细介绍:1.自然语言处理(NLP)大模型在自然语言处理领域的应用最为广泛和深入。它们可以......
  • Java进阶阶段的学习要点
    Java进阶阶段的学习要点相对更加深入和广泛,涵盖了Java语言的高级特性、框架、性能优化等多个方面。以下是根据搜索结果整理的详细学习要点:1.Java高级特性多线程与并发编程:深入理解Java并发包(`java.util.concurrent`)中的工具类,如`ExecutorService`、`Callable`、`Future`、`C......
  • 7-2 jmu-Java-04面向对象进阶-01-接口-Comparable
    编写实现Comparable接口的PersonSortable类,使其按name以及age排序1.编写PersonSortable类属性:privatename(String)、privateage(int)有参构造函数:参数为name,agetoString函数:返回格式为:name-age实现Comparable接口:实现先对name升序排序,如果name相同则对age进行升序排序......
  • 面向对象进阶
    在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程进行更为深入的了解。@property装饰器之前我们讨论过Python中属性和方法访问权限的问......
  • 逆地理解析位置偏移如何解决
    有不少开发者在测试使用【维智物联全域定位】平台的逆地理编码API时,出现与实际位置偏移较大的情况,解决方式有两种:查看定位坐标是否准确,如是坐标偏移造成,需要先替换正确的坐标进行测试,注意使用正确的坐标系。坐标正确,地址不对,可以按照“地址+正确坐标+key+请求信息”......
  • 资金进阶司库|司库创新场景之AI加持下的司库新应用
    连载导语司库体系建设是企业实现财务数字化转型和资金管理现代化的重要手段,是企业实现战略转型和高质量发展的关键支撑,也是企业应对复杂多变的全球经济环境和风险挑战的重要保障。司库承担着组织中的领导和战略引导作用,越来越多的企业以司库建设为抓手,加快推进自身财务数智......
  • 【Linux篇】常用命令及操作技巧(进阶篇 - 上)
    ......
  • AI大模型开发工程师之路:从零到一的进阶指南
      当前最热门的技术无疑是AI大模型。虽然它的应用前景广阔,但真正精通大模型技术的人还不多。然而,市场对大模型的需求却在不断增长,吸引了不少开发者想要转行进入这个领域。然而,面对新技术,许多人心中充满疑虑,担心自己无法掌握。笔者也是充满疑虑,然后直到我看到这本书籍,感觉受益......
  • Mybatis进阶
    一、日志管理 mybatis主要使用logback来管理日志,具体内容之前的java进阶有说,链接如下java基础进阶——log日志、类加载器、XML、单元测试、注解、枚举类_javalogs是什么意思-CSDN博客二、动态SQL动态SQL指的是根据参数数据动态组织SQL的技术。三、MyBatis二级缓存我......