当前位置: 首页 > news >正文

FPGA设计时序约束八、others类约束之Set_Case_Analysis

目录

一、序言

二、Set Case Analysis

2.1 基本概念

2.2 设置界面

2.3 命令语法

2.4 命令示例

三、工程示例

四、参考资料


一、序言

    在Vivado的时序约束窗口中,存在一类特殊的约束,划分在others目录下,可用于设置忽略或修改默认的时序路径分析,以Vivado2022.1版本为例,主要包括以下4类

 

二、Set Case Analysis

2.1 基本概念

    Set case analysis(设置案例分析)命令通常通过对逻辑如配置寄存器设置常数值来描述功能模块,设置对象可为端口,线net,层级引脚或子模块输入引脚,常数值通过约束的逻辑单元传输,从而关闭该单元的任何时序分析,功能和设置set false path类似。约束可以在SDC、XDC文件中使用。

    使用set case analysis可以减少分析的空间,运行时间和内存消耗,将信号是一个常量值的信息告知时序分析工具是很重要的,对于保证不去报告非功能路径和不相关的路径也是至关重要的。因此,一个引脚pin带有set_case_anlaysis约束时,上面传输的信号是不活跃信号,和引脚相关的时序arc是关闭的。

    最常见的使用场景是对一个多路选择器选择引脚设置为0或1,使得两个多路选择器中一个输入来传输,以关闭从mux/s到mux/I1引脚的时序分析路径为例,约束命令如下

set_case_analysis 0 [get_pins mux/S]

    再看一个例子,将一个AND门 的一个输入通过set_case_analysis设为0,AND门的输出也为0,即0传输到了下一逻辑,时序分析工具不会去计算对应的时序arch也不会展示在时序报告中。但是,布局布线中仍会去修复这些引脚上的最大切换,最大扇出违例。

2.2 设置界面

    进入Timing Constraints界面,在左侧Others栏中选中Set Case Analysis,右侧即显示Set Case Analysis界面,双击空白位置

 

    在Find names of type的下拉框显示可设置的对象,有Port和Cell pins两类

 

可约束的值有4个:0,1,rising,falling,约束为0或1时,对应的时序路径将不存在,设置为切换边沿时,只有信号为设置的边沿切换时才进行时序分析。

 

2.3 命令语法

命令格式如下

set_case_analysis [‑quiet] [‑verbose] <value> <objects>

参数含义如下表

2.4 命令示例

约束两个主时钟到CLKBUFGMUX的两个输入引脚上,将set_case_analysis约束选择引脚clock_sel/S的值为1,此时将只有clk_B会传输到输出端口,clk_A被阻断了,效果和将对应的pin连接到VDD或VSS相同。。

create_clock -name clk_A -period 10.0 [get_pins clock_sel/I0]
create_clock -name clk_B -period 15.0 [get_pins clock_sel/I1]
set_case_analysis 1 [get_pins clock_sel/S]

三、工程示例

工程代码:

module timing_analysis(d1,d2,clk1,clk2,clk3,clk4,rst,out1,out2);
input d1,d2,clk1,clk2,clk3,clk4,rst;
output out1,out2;
reg ff1,ff2,ff3,ff4,ff5;
always @(posedge clk1)if(!rst)ff1<=0;elseff1<=d1;
always @(posedge clk2)if(!rst)ff2<=0;elseff2<=ff1;
always @(posedge clk3)if(!rst)ff3<=0;elseff3<=ff2;
assign out1=ff3&ff2;always @(posedge clk4)if(!rst)ff4<=0;elseff4<=d2;
always @(posedge clk4)if(!rst)ff5<=0;elseff5<=ff4;
assign out2=ff5;
endmodule

综合后网表连接图

 

未添加set_case_analysis时的时序报告,同步时钟报告中只有clk4,异步时钟报告中有clk1到clk2,clk2到clk3的时序路径,根据综合网表连接图,符合预期。

 

对clk1设置set_case_analysis值为fall,clk4设置set_case_analysis值为1,同步时钟路径中已不存在clk4,异步时钟路径中存在clk1到clk2。因为clk1设置的analysis clk为下降沿,而实际为上升沿,clk4设置为常量1,不存在切换

 

四、参考资料

1、用户手册《ug835-vivado-tcl-commands-en-us-2023.1.pdf》

文档链接:https://pan.baidu.com/s/1Su_w9CDHR7R9_tt_in_arQ?pwd=7w4f 

提取码:7w4f

2、Vivado的command reference

相关文章:

FPGA设计时序约束八、others类约束之Set_Case_Analysis

目录 一、序言 二、Set Case Analysis 2.1 基本概念 2.2 设置界面 2.3 命令语法 2.4 命令示例 三、工程示例 四、参考资料 一、序言 在Vivado的时序约束窗口中&#xff0c;存在一类特殊的约束&#xff0c;划分在others目录下&#xff0c;可用于设置忽略或修改默认的时序…...

xftp连接wsl2

在WSL中默认是没有安装OpenSSH&#xff0c;需要自己安装。 安装 sudo apt update sudo apt install openssh-server检查是否安装成功 ssh -V配置ssh sudo vim /etc/ssh/ssh_config设置端口 Port 22启动ssh服务 sudo service ssh startxftp连接 主机地址&#xff1a;127.…...

Cross-View Transformers for Real-Time Map-View Semantic Segmentation 论文阅读

论文链接 Cross-View Transformers for Real-Time Map-View Semantic Segmentation 0. Abstract 提出了 Cross-View Transformers &#xff0c;一种基于注意力的高效模型&#xff0c;用于来自多个摄像机的地图视图语义分割使用相机感知的跨视图注意机制隐式学习从单个相机视…...

MySQL InnoDB 引擎底层解析(一)

6. InnoDB 引擎底层解析 MySQL 对于我们来说还是一个黑盒&#xff0c;我们只负责使用客户端发送请求并等待服务器返回结果&#xff0c;表中的数据到底存到了哪里&#xff1f;以什么格式存放的&#xff1f;MySQL 是以什么方式来访问的这些数据&#xff1f;这些问题我们统统不知…...

redis安装(Windows和linux)

如何实现Redis安装与使用的详细教程 Redis 简介 Redis是一个使用C语言编写的开源、高性能、非关系型的键值对存储数据库。它支持多种数据结构&#xff0c;包括字符串、列表、集合、有序集合、哈希表等。Redis的内存操作能力极强&#xff0c;其读写性能非常优秀&#xff0c;且…...

【LeetCode刷题-树】--1367.二叉树中的链表

1367.二叉树中的链表 方法&#xff1a;枚举 枚举二叉树中的每个节点为起点往下的路径是否与链表相匹配的路径&#xff0c;为了判断是否匹配设计了一个递归函数dfs(root,head),其中root表示当前匹配到的二叉树节点&#xff0c;head表示当前匹配到的链表节点&#xff0c;整个函数…...

【嵌入式 – GD32开发实战指南(ARM版本)】第2部分 外设篇 - 第3章 温度传感器DS18B20

1 理论分析 1.1 DS18B20概述 DS18B20 是 DALLAS 最新单线数字温度传感器,新的"一线器件"体积更小、适用电压更宽、更经济。Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一线总线"接口的温度传感器。 DS18B20采用的单总线协议,也…...

基于spring gateway 的静态资源缓存实现

由于子项目比较多&#xff0c;子项目都是通过嵌套的方式实现的。就会导致子页面加载比较慢&#xff0c;影响客户体验 实现思路&#xff08;AI搜的--!&#xff09;: 1、通过spring boot缓存实现静态资源缓存 2、在gateway过滤器&#xff0c;对静态资源进行缓存 直接上代码&a…...

SDUT OJ《算法分析与设计》搜索算法

A - 子集和问题 Description 子集和问题的一个实例为〈S,t〉。其中&#xff0c;S{ x1 &#xff0c; x2 &#xff0c;…&#xff0c;xn }是一个正整数的集合&#xff0c;c是一个正整数。子集和问题判定是否存在S的一个子集S1&#xff0c;使得&#xff1a; 。 试设计一个解子…...

【NI-DAQmx入门】校准

1.设备定期校准的理由 随着时间的推移电子器件的特性会发生自然漂移&#xff0c;可能会导致测量结果的不准确性。防止出现良品和差品筛选出错的情况满足行业国际标准降低设备出现故障的风险使测量结果更具备参考性 2.查找NI设备的校准间隔。 定期校准会使DAQ设备的精度保持在…...

C语言链表

head.h typedef struct Node_s{int data; //数据域struct Node_s *pNext; //指针域 } Node_t, *pNode_t;void headInsert(pNode_t *ppHead, pNode_t *ppTail, int data); void print(pNode_t pHead); void tailInsert(pNode_t *ppHead, pNode_t *ppTail, int data); void sort…...

LabVIEW进行MQTT通信及数据解析

需求&#xff1a;一般通过串口的方式进行数据的解析&#xff0c;但有时候硬件的限制&#xff0c;没法预留串口&#xff0c;那么如何通过网络的方式特别是MQTT数据的通信及解析 解决方式&#xff1a; 1.MQTT通信控件&#xff1a; 参考开源的mqtt-LabVIEW https://github.com…...

基于DOTween插件实现金币飞行到指定位置功能

文章目录 前言一、DOTween是什么&#xff1f;二、使用步骤1.导入DOTween插件在Unity官方插件商店找到DOTween插件导入DOTween插件启用DOTween插件 2.代码逻辑金币飞行代码控制飞行效果代码 3.物体配置1.物体上装配CoinEffect脚本2.在金币预制体上装配FlyControl脚本 三、效果展…...

python-opencv 培训课程作业

python-opencv 培训课程作业 作业一&#xff1a; 第一步&#xff1a;读取 res 下面的 flower.jpg&#xff0c;读取彩图&#xff0c;并用 opencv 展示 第二步&#xff1a;彩图 -> 灰度图 第三步&#xff1a;反转图像&#xff1a;最大图像灰度值减去原图像&#xff0c;即可得…...

【Go入门】并发

【Go入门】并发 有人把Go比作21世纪的C语言&#xff0c;第一是因为Go语言设计简单&#xff0c;第二&#xff0c;21世纪最重要的就是并行程序设计&#xff0c;而Go从语言层面就支持了并行。 goroutine goroutine是Go并行设计的核心。goroutine说到底其实就是协程&#xff0c;…...

Java虚拟机运行时数据区结构详解

Java虚拟机运行时数据区结构如图所示 程序计数器 程序计数器&#xff08;Program Counter Register&#xff09;是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字节码的行号指示器。 多线程切换时&#xff0c;为了能恢复到正确的执行位置&#xff0c;每条线程…...

华为OD机试 - 转盘寿司(Java JS Python C)

目录 题目描述 输入描述 输出描述 用例 题目解析 JS算法源码 Java算法源码...

【ATTCK】MITRE Caldera-emu插件

CALDERA是一个由python语言编写的红蓝对抗工具&#xff08;攻击模拟工具&#xff09;。它是MITRE公司发起的一个研究项目&#xff0c;该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的&#xff0c;能够较真实地APT攻击行为模式。 通过CALDERA工具&#xff0c;安全…...

23111709[含文档+PPT+源码等]计算机毕业设计基于Spring Boot智能无人仓库管理-进销存储

文章目录 **软件开发环境及开发工具&#xff1a;****功能介绍&#xff1a;****论文截图&#xff1a;****数据库&#xff1a;****实现&#xff1a;****代码片段&#xff1a;** 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 软件开发环境及…...

SDUT OJ《算法分析与设计》贪心算法

A - 汽车加油问题 Description 一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法&#xff0c;指出应在哪些加油站停靠加油&#xff0c;使沿途加油次数最少。并证明算法能产生一个最优解。 对于给定的n和k个加油站位置&#xff0c;计算最少加油次数。 I…...

【EI(JA)期刊征稿】第五届能源、电力与电气国际学术会议(ICEPET 2026)

【期刊征稿页面】 第五届能源、电力与电气国际学术会议&#xff08;ICEPET 2026&#xff09; 2026 5th International Conference on Energy, Power and Electrical Technology 重要信息 会议官网&#xff1a;https://ais.cn/u/E7RRVv【点击参会/投稿/了解会议详情】 会议时…...

RadarSimPy:Python雷达仿真的完整指南与实战教程

RadarSimPy&#xff1a;Python雷达仿真的完整指南与实战教程 【免费下载链接】radarsimpy Radar Simulator built with Python and C 项目地址: https://gitcode.com/gh_mirrors/ra/radarsimpy RadarSimPy是一个基于Python和C构建的强大雷达仿真工具&#xff0c;为雷达系…...

如何快速掌握yuzu模拟器:Switch游戏在电脑上流畅运行的终极指南

如何快速掌握yuzu模拟器&#xff1a;Switch游戏在电脑上流畅运行的终极指南 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu yuzu模拟器是目前最流行的任天堂Switch开源模拟器&#xff0c;让玩家能够在Windows、Lin…...

如何彻底清理显卡驱动残留?DDU终极解决方案完整指南

如何彻底清理显卡驱动残留&#xff1f;DDU终极解决方案完整指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller …...

OpenClaw配置备份方案:Qwen3.5-9B-AWQ-4bit迁移到新设备

OpenClaw配置备份方案&#xff1a;Qwen3.5-9B-AWQ-4bit迁移到新设备 1. 为什么需要完整的配置迁移方案 上周我的主力开发机突然硬盘故障&#xff0c;导致所有OpenClaw配置丢失。重新搭建环境时发现&#xff0c;单纯备份openclaw.json远远不够——飞书机器人授权失效、硬件指纹…...

FlowState Lab 在音频信号处理中的迁移应用效果:音高与节奏分析

FlowState Lab 在音频信号处理中的迁移应用效果&#xff1a;音高与节奏分析 1. 音频分析的新视角 音乐和语音信号处理一直是人工智能领域的重要研究方向。传统的音频分析方法往往需要复杂的特征工程和领域专业知识&#xff0c;而FlowState Lab的出现为这一领域带来了全新的可…...

OpenClaw安全审计方案:Phi-3-mini-128k-instruct操作日志分析

OpenClaw安全审计方案&#xff1a;Phi-3-mini-128k-instruct操作日志分析 1. 为什么需要OpenClaw安全审计 去年夏天&#xff0c;我在用OpenClaw自动处理一批财务报表时&#xff0c;差点酿成大错。当时脚本在凌晨3点自动运行&#xff0c;由于模型错误理解了"删除临时文件…...

mPLUG与LangChain集成实战:构建智能视觉问答知识库

mPLUG与LangChain集成实战&#xff1a;构建智能视觉问答知识库 1. 当图片会“说话”时&#xff0c;知识管理发生了什么变化 上周帮一家三甲医院的信息科同事调试系统&#xff0c;他们正为医学影像资料的检索头疼。放射科每天产生上千张CT和MRI片子&#xff0c;但医生想找某类…...

飞书集成全攻略:OpenClaw+Qwen3-4B-Thinking打造智能工作台

飞书集成全攻略&#xff1a;OpenClawQwen3-4B-Thinking打造智能工作台 1. 为什么选择OpenClawQwen3-4B-Thinking组合&#xff1f; 去年夏天&#xff0c;当我第一次尝试用AI自动化处理会议纪要时&#xff0c;经历了从兴奋到沮丧的全过程。当时使用的是某商业SaaS方案&#xff…...

C++编程进阶:探索内建数学函数与C++20的<numbers>头文件

C编程进阶&#xff1a;探索内建数学函数与C20的头文件 在C编程的世界里&#xff0c;数学运算无处不在&#xff0c;无论是游戏开发中的物理模拟、图形处理&#xff0c;还是数据分析中的复杂计算&#xff0c;数学函数都是不可或缺的工具。随着C标准的不断演进&#xff0c;C20引入…...