FPGA学习_时序约束以及VIVADO时序报告

文章目录

  • 前言
  • 时序约束的目的
  • 一、时序约束种类
    • 1、约束主时钟
    • 2、约束衍生时钟
    • 3、约束虚拟时钟
    • 4、input delay
    • 5、output delay
    • 6、约束异步时钟组
    • 7、约束互斥时钟
    • 8、假路径约束
    • 9、多周期约束
  • 二、VIVADO时序报告
  • 三、从时序的角度看为什么寄存器赋值慢一拍

前言

一边学习一边补充当中

时序约束的目的

  1. 告知EDA软件需要达到什么样的设计指标,然后EDA软件尽可能的优化布局布线以达到该约束指标
  2. 协助EDA软件进行分析设计当中的时序路径,以产生相应的时序报告,例如约束主时钟,EDA软件才可以根据此约束进行分析电路设计

一、时序约束种类

1、约束主时钟

SYSCLK_div SYSCLK_div_5mhz(.clk_out1               (w_clk_5mhz     ),   .locked                 (w_clk_5mhz_lock),       .clk_in1                (i_clk          )      
);

对于这种直接使用Clocking Wizard IP核的时钟信号,输入输出我们都不需要进行约束,IP核会自动进行约束。

CLK_DIV_module#(.P_CLK_DIV_CNT          (40) //MAX = 65535
)CLK_DIV_module_U(.i_clk                  (w_clk_5mhz      ),.i_rst                  (~w_clk_5mhz_lock),.o_clk_div              (w_clk_125khz    ));

对于这种我们自己设计的时钟分频模块,如果我们不对其进行约束的话,VIVADO就不知道w_clk_125khz的频率是多少,涉及到w_clk_125khz的时序逻辑,VIVADO就不会正确分析,所以我们需要对其进行约束。

2、约束衍生时钟

w_clk_5mhz是由i_clk分频出来的时钟,称为衍生时钟。
首先给衍生时钟命名;
选择主时钟pin
选择主时钟
设置分频或者倍频值
添加Source object,即我们需要约束的时钟w_clk_5mhz
注:这里需要勾选-add属性,这是因为时钟i_clk在主时钟约束那里已经被约束过了,加上add属性则可以避免冲突,在已有约束基础上再增加约束
在这里插入图片描述
w_clk_125khz同理,设置分频值为40即可,主时钟选择5mhz时钟,具体的工程代码设计可以先看之前介绍IIC的文章https://blog.csdn.net/m0_56222647/article/details/136815041
在这里插入图片描述

3、约束虚拟时钟

暂时没用到,后续补充

4、input delay

5、output delay

6、约束异步时钟组

静态时序分析是穷尽式的,所有寄存器之间路径都会被分析,但异步时钟寄存器之间是不用进行分析的,该约束就是告知VIVADO不要分析异步时钟路径

7、约束互斥时钟

物理互斥:即CLK1有信号时,CLK2则无信号,物理芯片上进行控制的
逻辑互斥:俩个时钟结果选择器,一次只能选择一个时钟

8、假路径约束

异步时钟路径也可以通过假路径约束

9、多周期约束

大概就让触发沿和锁存沿之间不再是只隔一个时钟周期,可以隔多个

二、VIVADO时序报告

在这里插入图片描述
打开布局布线后可以看到建立时间余量和保持时间,都是大于0的,时序正常。
估计是时序逻辑主要是使用主时钟i_clk分频出来的的5mhz(200ns),所以这里的建立时间余量这么大。
点击WNS可以看到最差建立时间余量这几条路径:如下图
在这里插入图片描述
点击第一条路径,可以在原理图里看到它的路径,原理图里面的路径,绿色为起点,红色为终点
在这里插入图片描述
双击第一条路径可以打开时序报告:
源时钟路径,Incr是指增加的时延,Path是指当前时延总和
在这里插入图片描述
这里多提一嘴,经过MMCM后这里增加的时延是负的,这是由于相位调整的缘故,目的寄存器时钟也会引入负的延时,所以相对来说这个负的时延是无所谓的。
数据路径
在这里插入图片描述
这里是数据经过各个LUT,寄存器、进位链以及走线net的延时。
同时可以计算出数据到达时间:Tarrive = Tco + Tdatadelay = 1.964
目的时钟路径
在这里插入图片描述
个别名词解释:
clock pessimism : 时钟悲观度,由于温度影响,时钟最坏情况下会引入的偏移
clock uncertainly:时钟不确定度
FDCE(Setup):这里是指建立时间,按道理来说这里应该是负的,但是图中是正的,不知道啥情况,估计还是和时钟相位调整有关系吧
根据此可以计算出数据要求到达时间:
Trequired = Tcycle + Tskew - Tsu = 198.495
最终的建立时间裕量为:Trequired - Tarrive = 198.495 - 1.964 = 196.531
该数值和时序报告summary当中数值一致。

三、从时序的角度看为什么寄存器赋值慢一拍

  • 时序逻辑电路并没有真正意义上的落后一拍,落后一拍的原因是因为Tco的存在,导致在当前时钟上升沿无法采集到最新的值,而只能采集到未变化的值
  • 在仿真时,输入信号尽量用非阻塞赋值“<=”来模拟其来自寄存器的输出,这样的仿真结果更接近实际电路
  • 可以采用“#1”这种赋值方式来模拟Tco的存在,这可以在仿真时带来很大的便利

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

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

相关文章

容器中的大模型(三)| 利用大语言模型:容器化高效地部署 PDF 解析器实践...

作者&#xff1a;宋文欣&#xff0c;智领云科技联合创始人兼CTO 01 简介 大语言模型&#xff08;LLMs&#xff09;正逐渐成为人工智能领域的一颗璀璨明星&#xff0c;它们的强大之处在于能够理解和生成自然语言&#xff0c;为各种应用提供了无限可能。为了让这些模型更好地服务…

【Hadoop】Hadoop 编译源码

目录 为什么要源码编译Hadoop 编译源码1前期工作准备2jar 包安装2.1安装 Maven2.2安装 ant2.3安装 glibc-headers 和 g2.4安装 make 和 cmake2.5安装 protobuf2.6安装 openssl 库2.7安装 ncurses-devel 库 3编译源码3.1解压源码到 /opt/ 目录3.2 进入到 hadoop 源码主目录 /opt…

AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…

UniTask 异步任务

文章目录 前言一、UniTask是什么&#xff1f;二、使用步骤三、常用的UniTask API和示例1.编写异步方法2.处理异常3.延迟执行4.等待多个UniTask或者一个UniTas完成5.异步加载资源示例6.手动控制UniTask的完成状态7.UniTask.Lazy延迟任务的创建8.后台线程切换Unity主线程9.不要返…

第二证券|热度飙升,出境游人数有望破亿,这些概念股被机构盯上

在免签和航班批量康复的方针利好下&#xff0c;本年出境游商场迎来炽热升温。 清明出境游有望爆火 3月20日&#xff0c;Airbnb爱彼迎在北京举行春季出境游趋势发布会举行。 爱彼迎中国数据显示&#xff0c;本年清明节期间的出境游查找热度已经超出2023年同期的2.5倍&#xf…

计算机网络面经-什么是IPv4和IPv6?

前言 Internet协议&#xff08;IP&#xff09;是为连接到Internet网络的每个设备分配的数字地址。它类似于电话号码&#xff0c;是一种独特的数字组合&#xff0c;允许用户与他人通信。IP地址主要有两个主要功能。首先&#xff0c;有了IP&#xff0c;用户能够在Internet上被识别…

Redis 安装(二)

Redis安装说明 大多数企业都是基于Linux服务器部署项目&#xff0c;而且Redis官网也没有提供Windows版本的安装包&#xff0c;因此课程中我们会基于Linux系统来安装Redis。 此处选择Linux版本为Centos7。 Redis的官方网站地址&#xff1a;https://redis.io/ Redis的安装 切换…

TCP协议中的传输控制机制图文详解「重传机制」「流量控制」「拥塞控制」

目录 TCP重传机制 超时重传 快速重传 SACK 方法 Duplicate SACK TCP 流量控制 滑动窗口 累积确认 窗口大小由哪一方决定&#xff1f; 接收窗口和发送窗口的大小是相等的吗&#xff1f; 流量控制 窗口关闭的后果 糊涂窗口综合症 TCP拥塞处理 为什么要有拥塞控制呀&#xff0c;不…

如何在WSL中的ubuntu编译Linux内核并且安装使用ebpf?

如何在WSL中的ubuntu编译Linux内核并且安装使用ebpf? 步骤1 编译安装内核获取源码修改配置编译编译成功后配置重启WSL测试 步骤2 安装bcc安装依赖下载bcc&#xff0c;编译测试 环境: wsl2windows 11 步骤1 编译安装内核 去https://kernel.org/找你想要的版本&#xff0c; …

119.设计链表(力扣)

代码解决 class MyLinkedList { public:// 定义链表节点结构体struct LinkedNode {int val;LinkedNode* next;LinkedNode(int val):val(val), next(nullptr){}};MyLinkedList() {dummyhead new LinkedNode(0);size0;}int get(int index) {if (index > (size - 1) || index…

从点云创建 DSM:网格化和可视化实用指南

今天我将向您展示如何从点云创建数字表面模型&#xff08;DSM&#xff09;。首先&#xff0c;我们将尝试了解 DSM 是什么&#xff0c;然后我们将进入讨论的更实际部分。 什么是 DSM&#xff1f; DSM 是一个描述表面及其表面所有内容的模型。现在&#xff0c;为了更清楚地了解…

学习JavaEE的日子 Day28 异常,多线程

Day28 1.异常机制 1.1 异常概念 异常是程序在运行期发生的不正常的事件&#xff0c;它会打断指令的正常执行流程。 设计良好的程序应该在异常发生时提供处理这些不正常事件的方法&#xff0c;使程序不会因为异常的发生而阻断或产生不可预见的结果。 ​ Java语言使用异常处理机…

LabVIEW柴油机安保监控系统

LabVIEW柴油机安保监控系统 随着航运业的快速发展&#xff0c;确保船舶柴油机的安全稳定运行变得尤为重要。船舶柴油机故障不仅会导致重大的经济损失&#xff0c;还可能危及人员安全和环境。设计并开发了一套基于LabVIEW平台的柴油机安保监控系统&#xff0c;旨在通过实时监控…

Python数学建模-2.9Matplotlib库

Matplotlib库是Python中一个非常流行的绘图库&#xff0c;它提供了大量的绘图工具&#xff0c;可以生成各种类型的静态、动态、交互式的图表。Matplotlib的设计初衷是为了与NumPy配合使用&#xff0c;从而提供一个强大的数学绘图工具。 1.Matplotlib的主要特点 丰富的图表类型…

Ubuntu18.04显示--有线连接未托管

引用: Ubuntu18.04连不网 报"有线连接未托管"_ubuntu20.04以太网未托管-CSDN博客 正文 虚拟机环境配置&#xff1a; VirtaualBox Ubuntu18.04桌面版 问题现象&#xff1a; Ubuntu18.04虚拟机的桌面上提示“有线连接未托管”&#xff0c;虚拟机不能上网&#xf…

抖音视频批量下载软件可导出视频分享链接|手机网页视频提取|视频爬虫采集工具

解锁抖音视频无水印批量下载新姿势&#xff01; 在快节奏的生活中&#xff0c;抖音作为时下最热门的短视频平台之一&#xff0c;吸引着广大用户的目光。而如何高效地获取喜欢的视频内容成为了许多人关注的焦点。Q:290615413现在&#xff0c;我们推出的抖音视频批量下载软件&…

初始Java篇(JavaSE基础语法)(3)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 方法的使用 方法定义 实参和形参的关系 方法重载 方法签名 递归 方法的使用 方法就是一个代码片段. 类似于 C 语言中的 "函数"…

WordPress Plugin NotificationX插件 SQL注入漏洞复现(CVE-2024-1698)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。 0x02 漏洞概述 WordPress plugin NotificationX是一个应用插件。2.8.2版本及之前 存在安全漏洞,该…

音频转换器哪个好?5个角度详细测评~

我们常常会用到音频转换器&#xff0c;比如因为平台和设备对某些格式的不兼容&#xff0c;需要进行格式转换&#xff1b;比如有些音频文件可能过大&#xff0c;需要转换为更高效&#xff1b;压缩格式以节省存储空间或加快传输速度&#xff1b;比如调整音频文件的比特率、采样率…

Dijkstra算法

Dijkstra算法用于求无向图或者有向图中起点到各个顶点的最短路径&#xff0c;且边的权值需要为非负数下面这个题就可以用该算法求解 743. 网络延迟时间 有 n 个网络节点&#xff0c;标记为 1 到 n。 给你一个列表 times&#xff0c;表示信号经过 有向 边的传递时间。 times[i]…