FPGA时序分析与约束(5)——时序路径

一、前言

        在之前的文章中我们分别介绍了组合电路的时序,时序电路的时序和时钟的时序问题,我们也对于时序分析,时序约束和时序收敛几个基本概念进行了区分,在这篇文章中,我们将介绍时序约束相关的最后一部分基本概念,带领大家了解什么是时序路径。

二、常用术语

        时序分析中的常用术语:

  • 源时钟(Source Clock/Launch Clock,也称为发起时钟)
  • 目的时钟(Destination Clock/Capture Clock,也称为捕获时钟)
  • 发起沿(launch edge,源时钟产生数据的有效时钟沿)
  • 捕获沿(capture edge,目的时钟捕获数据的有效时钟沿)
  • 发起沿通常在0ns,捕获沿通常在下一个发起沿,发起沿和捕获沿通常相差一个时钟周期。

 三、时序路径

1、一条普通时序路径的三要素

1.1 源时钟路径

        从源时钟的源节点(通常是FPGA的时钟输入引脚)到源寄存器的时钟端口的路径。当时序路径的起点是FPGA输入端口时,该时序路径是没有源时钟路径的。

1.2 数据路径

        从时序路径的起点到时序路径的终点之间的数据传播路径。时序路径的起点可以是源寄存器的时钟端口或FPGA的输入端口,时序路径的终点可以是目的寄存器的输入端口或FPGA的输出端口。

1.3 目的时钟路径        

        从目的时钟的源节点(通常是FPGA的时钟输入引脚)到目的寄存器的时钟端口的路径。当时序路径的终点是FPGA的输出端口时,该时序路径是没有目的时钟路径的。

2、FPGA中常见的4种时序路径

         一般来说,FPGA中的时序路径可以分化成4种不同的类型

(1)第一类时序路径(红色):从device A的时钟到FPGA的第一级寄存器的输入端口。
(2)第二类时序路径(蓝色):两个同步元件之间的路径(rega到regb)
(3)第三类时序路径(黄色):最后一级寄存器到device B数据端口的路径
(4)第四类时序路径(绿色):端口到端口的路径(dinb到dinb)

2.1 引脚到寄存器(从FPGA的输入端口到目的寄存器的数据输入端口)

  • 数据由Board clock发起并在FPGA外部产生;
  • 数据经过Input Delay的延迟后到达FPGA的输入端口;
  • 数据经过FPGA的Internal Delay后到达由目的时钟驱动的目的寄存器
  • 这种路径是没有源时钟路径的,用户需要约束Input Delay和时钟来告知时序引擎必要信息,时序引擎才能正确的分析这种路径。

2.2 寄存器到引脚(从源寄存器的时钟端口到目的寄存器的数据输入端口)

  • 数据由源时钟发起并在FPGA内部产生;
  • 数据经过Data Path Delay后到达由目的时钟驱动的目的寄存器;
  • 这种时序路径是最常见的,用户需要约束源时钟和目的时钟告知时序引擎必要的信息,时序引擎才能正确的分析这种时序路径。

2.3 寄存器到寄存器(从源寄存器的时钟端口到FPGA的输出端口) 

  • 数据由源时钟发起并在FPGA内部产生;
  • 数据经过Internal Delay后到达输出端口;
  • 数据经过Output Delay后被Board Clock捕获到;
  • 这种路径是没有目的时钟路径的,用户需要约束Output Delay和时钟来告知时序引擎必要信息,时序引擎才能正确的分析这种路径。

2.4 引脚到引脚(从FPGA的输入端口到FPGA的输出端口)

  • 数据横穿FPGA,没有经过任何触发器,这种路径也叫in-to-out path,约束输入和输出延时的参考时钟可以使用虚拟时钟。
  • 这种路径中只有数据路径,用户需要约束Input Delay和Output Delay,告知时序引擎必要的信息,时序引擎才能正确的分析这种时序路径。

四、总结

        在本文中,我们主要介绍了时序分析过程中时序路径的基本概念,分别介绍了FPGA中常见的4种时序路径:(1)引脚到寄存器(从FPGA的输入端口到目的寄存器的数据输入端口)(2)寄存器到引脚(从源寄存器的时钟端口到目的寄存器的数据输入端口)(3)寄存器到寄存器(从源寄存器的时钟端口到FPGA的输出端口) (4)引脚到引脚(从FPGA的输入端口到FPGA的输出端口)。这部分的内容是我们进行后续时序分析及时序约束的重要基础。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word文档如何引用参考文献

参考 word文档如何引用参考文献 说明

大数据课程L3——网站流量项目的系统搭建

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解网站流量项目的运行环境; ⚪ 了解网站流量项目的日志采集系统搭建; ⚪ 了解网站流量项目的离线业务系统搭建; ⚪ 了解网站流量项目的Hive做离线数据处理; ⚪ 了解网站流量项目的…

计算机使用中常用截图与标注方法

一、截图常用方法 1.windows自带快捷键 Print Screen SysPq 截取全屏,可以粘到word文档中,可以粘贴到"画图"程序中,命名一个文件名,另存为图片,或.jpg后缀,或.png后缀 alt Print S…

JetBrains设置文件名格式

如题,在使用CLion创建C类时,希望创建的文件名符合Google编码规范。设置如下图所示: 创建的C类是PascalCase格式,对应的文件名是pascal-case格式。

时序数据库

时序数据库在许多应用领域中得到广泛应用,包括物联网(IoT)监控、应用性能监控(APM)、日志分析、金融数据分析、工业自动化和能源管理等。一些知名的开源和商业时序数据库包括InfluxDB、Prometheus、OpenTSDB、TimescaleDB和Kdb+等。 上图是一个典型的时序数据示意图,由…

17 mysql global_variables session_variables

前言 这是一个关于 mysql 中的一些配置的探索 起因是需要 看一下 mysql 自增长的实现, 这里面涉及到两个变量 auto_increment_increment, auto_increment_offset, 然后 需要探索一下 这两个变量的来历 然后 就有了这里的相关介绍 global_variables 的初始化 global_va…

前端uniapp块样式写法

<template><view class"block"><view class"block_box"><view class"block_box_content"><view class"block_box_left">左边</view><view class"block_box_right">右边</view…

网络带宽管理:限速策略的备份应用场景

假设现在有一个千兆网络环境&#xff0c;使用云祺容灾备份系统&#xff0c;部分备份数据需要走这个千兆网络&#xff0c;现在这个企业网络环境中从早上9点到晚上9点&#xff0c;生产网络占用了500兆带宽。 那么在早上9点到晚上9点这个时间段之间&#xff0c;不对备份任务进行网…

什么是Scrum?如何实施Scrum(敏捷开发)以及敏捷工具

什么是Scrum&#xff1f; Scrum是一个敏捷开发框架&#xff0c;它是一个增量的、迭代的开发过程。它被广泛应用于敏捷软件开发&#xff0c;在Scrum中&#xff0c;开发过程由若干个短的迭代周期组成&#xff0c;每个迭代周期称为一个Sprint。 那么Scrum如何实施呢&#xff1f;…

Leetcode646. 最长数对链

Every day a Leetcode 题目来源&#xff1a;646. 最长数对链 解法1&#xff1a;动态规划 定义 dp[i] 为以 pairs[i] 为结尾的最长数对链的长度。 初始化时&#xff0c;dp 数组需要全部赋值为 1。 计算 dp[i] 时&#xff0c;可以先找出所有的满足 pairs[i][0]>pairs[j]…

直播APP源码搭建:核心的服务器系统

在现代科技的推动下&#xff0c;网络衍生出了各种各样的技术&#xff0c;每个技术都被应用到需要的APP上&#xff0c;直播APP源码搭建出来的APP就是其中的一个&#xff0c;然而&#xff0c;这些技术能够成功的在直播APP源码搭建的APP中稳定的为用户们提供功能与服务&#xff0c…

手写Spring:第12章-基于JDK、Cglib实现AOP切面

文章目录 一、目标&#xff1a;基于JDK、Cglib实现AOP切面二、设计&#xff1a;基于JDK、Cglib实现AOP切面三、实现&#xff1a;基于JDK、Cglib实现AOP切面3.0 引入依赖3.1 工程结构3.2 AOP切点表达式和使用以及基于JDK和CGLIB的动态代理类图3.3 切点表达式3.3.1 类匹配接口3.3…

Scala

Scala 介绍 Scala是一种多规范的编程语言&#xff0c;它结合了面向对象编程&#xff08;OOP&#xff09;和函数式编程&#xff08;FP&#xff09;的特征&#xff0c;Scala的名字源于”Scalable language“&#xff0c;意为”可伸缩语言“。2003年开发的&#xff0c;并在JVM&a…

LeetCode 48题: 旋转图像

题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]…

激光切割机在船舶行业的的应用有哪些

我国享有世界工厂的美誉&#xff0c;是全球制造业的主力。然而&#xff0c;在船舶制造的关键技术领域&#xff0c;我国的研发投入不足&#xff0c;技术进步仍滞后&#xff0c;我国高端船舶制造的实力仍显不足。 在我国制造业全面复苏的当前背景下&#xff0c;“精准制作”正构成…

数据库 设计规范数据库设计样例

目录 5 数据库5.1 数据库命名规范5.2 数据库字段命名5.2.1 字段命名规范5.2.2 命名规范5.2.3 待优化命名示例5.2.4 字段类型规范5.2.5数据库中每个字段的规范描述 5.3表设计5.4 参考设计5.4.1 应用场景5.4.2 需求分析5.4.3 设计思路5.4.4 表结构设计5.4.5 缓存策略Q1 冗余设计和…

上手Spring

设置Maven镜像为阿里云 找到Maven的目录所在位置找到conf目录找到settings.xml文件 找到Maven的目录所在位置&#xff1a;去idea 的设置中 直接搜索Maven 找到conf目录 修改Maven本地仓库的地址 地址自定义 修改Maven的镜像为阿里云镜像 <mirror><id>nexus-aliy…

9.8day59

503. 下一个更大元素 II - 力扣&#xff08;LeetCode&#xff09; 知识点&#xff1a;单调栈 42. 接雨水 - 力扣&#xff08;LeetCode&#xff09;

opencv基础: 视频,摄像头读取与保存的常用方法

当然还可以从视频中抓取截图&#xff0c;所以现在聊一下常用的抓取视频截图的的方法。 VideoCapture 方法 cv2.VideoCapture();cv2.VideoCapture( device);cv2.VideoCapture(filename);上面有三种构造方法&#xff0c; 第一种是无法构造方法。 第二种参数device是一个数字。 …

【群智能算法改进】一种改进的鹈鹕优化算法 IPOA算法[2]【Matlab代码#58】

文章目录 【获取资源请见文章第5节&#xff1a;资源获取】1. 原始POA算法2. 改进后的IPOA算法2.1 随机对立学习种群初始化2.2 动态权重系数2.3 透镜成像折射方向学习 3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节&#xff1a;资源获取】 1. 原始POA算法…