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

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

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

相关文章

人工智能-深度学习之文本预处理

文本预处理 对于序列数据处理问题&#xff0c; 这样的数据存在许多种形式&#xff0c;文本是最常见例子之一。 例如&#xff0c;一篇文章可以被简单地看作一串单词序列&#xff0c;甚至是一串字符序列。 本节中&#xff0c;我们将解析文本的常见预处理步骤。 这些步骤通常包括…

Java 语言关键字有哪些

Java 语言关键字有哪些 分类关键字访问控制privateprotectedpublic类&#xff0c;方法和变量修饰符abstractclassextendsfinalimplementsinterfacenativenewstaticstrictfpsynchronizedtransientvolatileenum程序控制breakcontinuereturndowhileifelseforinstanceofswitchcase…

uniapp 微信小程序登录 新手专用 引入即可

预览 第一步导入插件 在引入的页面的登录按钮下拷贝一下代码 <template><view class"content"><button type"primary" click"login">微信登录</button></view><TC-WXlogin :wxloginwxlogin /> </templ…

05-Spring Boot工程中简化开发的方式Lombok和dev-tools

简化开发的方式Lombok和dev-tools Lombok常用注解 Lombok用标签方式代替构造器、getter/setter、toString()等重复代码, 在程序编译的时候自动生成这些代码 注解名功能NoArgsConstructor生成无参构造方法AllArgsConstructor生产含所有属性的有参构造方法,如果不希望含所有属…

[C/C++]数据结构 栈和队列()

一:栈 1.1 栈的概念及结构 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底,栈中的数据元素遵守先进后出的原则. 压栈:栈的插入操作叫做进栈/压栈/入栈,将数据插入栈顶 出栈:栈的删除操作也叫出…

【PTA题目】7-3 冰雹猜想。 分数 10

7-3 冰雹猜想。 分数 10 全屏浏览题目 切换布局 作者 赵静静 单位 浙江工贸职业技术学院 冰雹猜想的内容是&#xff1a;任何一个大于1的整数n&#xff0c;按照n为偶数则除等2&#xff0c;n为奇数则乘3后再加1的规则不断变化&#xff0c;最终都可以变化为1。 例如&#xff…

Redis新操作

1.Bitmaps 1.1概述 Bitmaps可以对位进行操作&#xff0c;实际上它就是一个字符串&#xff0c;可以将Bitmaps想象为一个以位为单位的数组&#xff0c;数组中的每个元素只能存储0或者1&#xff0c;数组的下标在Bitmaps被称为偏移量。 setbit key offset value&#xff1a;设置o…

游戏中的资源动态加载

动态加载的优势 游戏中的资源动态加载是指在游戏运行时根据需要加载和卸载资源的过程&#xff0c;而不是在游戏启动时一次性加载所有资源。这种方法对于管理大型游戏中的资源尤其重要。以下是动态加载的一些关键方面和优势&#xff1a; 1. 内存管理&#xff1a; 动态加载资源…

uni-app下,页面跳转后wacth持续监听的问题处理

uni-app下&#xff0c;页面跳转后wacth持续监听的问题处理 好久没写博客了&#xff0c;最近碰到了一个uni-app&#xff08;vue2&#xff09;开发小程序的问题&#xff0c;个人觉得很典型&#xff0c;所以拿出来给各位做个参考。 需求场景&#xff1a; 全局轮询用户权限。简单…

MIB 6.S081 System calls(1)using gdb

难度:easy In many cases, print statements will be sufficient to debug your kernel, but sometimes being able to single step through some assembly code or inspecting the variables on the stack is helpful. To learn more about how to run GDB and the common iss…

十二.Jenkins持续集成

十二.Jenkins持续集成 一.安装jenkins 1.下载 Jenkins下载地址&#xff1a;http://jenkins-ci.org/ 或 https://mirrors.jenkins-ci.org/redhat/2.安装 可以通过官网的安装方式来安装 安装完后&#xff0c;需要修改以下的配置 vim /usr/lib/systemd/system/jenkins.servic…

git常用命令和参数有哪些?【git看这一篇就够了】

文章目录 前言常用命令有哪些git速查表奉上常用参数后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;git操作相关 &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出…

什么是AIGC

1 定义 "AIGC"代表“人工智能生成内容”&#xff08;Artificial Intelligence Generated Content&#xff09;&#xff0c;它指的是使用人工智能&#xff08;AI&#xff09;技术自动生成的内容&#xff0c;这些内容可以包括文本、图像、音乐、视频或其他多媒体形式。…

记录一个困难

Mysql加插件 create table tb_xuesheng1 as select * from tb_xuesheng; 会报如下错误 SQL 错误 [3185] [HY000]: Cant find master key from keyring, please check in the server log if a keyring is loaded and initialized successfully.当我去搜寻答案网上都说缺少插件…

Borland编辑器DOS系统快捷键应用

在项目中接触到DOS系统&#xff0c;该系统距离当下已经接近20年时间&#xff0c;网络上资源较少&#xff0c;因为需要用到C语言编辑器BorlandC,每次应用时难免会忘记快捷键使用&#xff0c;给使用造成很大的不便。 于是把现有收集的快捷键做出整理便于使用&#xff0c;供大家参…

Git企业开发级讲解(五)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、bug 分⽀二、删除临时分支三、小结 一、bug 分⽀ 假如我们现在正在 dev2 分⽀上进⾏开发…

AI Navigation导航系统_unity基础开发教程

AI Navigation导航系统 安装插件烘焙导航系统障碍物创建人物的AI导航动态障碍物 在unity编辑器中&#xff0c;有一个灰常好用的插件&#xff1a;Navigation。有了它1&#xff0c;你就可以实现人物自动走到你鼠标点击的位置&#xff0c;而且还会自动避开障碍物&#xff0c;下面就…

第7天:信息打点-资产泄漏amp;CMS识别amp;Git监控amp;SVNamp;DS_Storeamp;备份

第7天&#xff1a;信息打点-资产泄漏&CMS识别&Git监控&SVN&DS_Store&备份 知识点&#xff1a; 一、cms指纹识别获取方式 网上开源的程序&#xff0c;得到名字就可以搜索直接获取到源码。 cms在线识别&#xff1a; CMS识别&#xff1a;https://www.yun…

quickapp_快应用_tabBar

tabBar 配置项中配置tabBar(版本兼容)使用tabs组件配置tabBar语法示例问题-切换tab没有反应问题-数据渲染问题解决优化 问题-tab的动态配置 第三方组件tabbar 一般首页都会显示几个tab用于进行页面切换&#xff0c;以下是几种tab配置方式。 配置项中配置tabBar(版本兼容) 在m…

transform学习资料

一、NLP&#xff1a;自然语言处理 NLP 是机器学习在语言学领域的研究&#xff0c;专注于理解与人类语言相关的一切。NLP 的目标不仅是要理解每个单独的单词&#xff0c;而且能理解这些单词与之相关联的上下文之间的意思。 常见的NLP 任务列表&#xff1a; 对整句的分类&…