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,一经查实,立即删除!

相关文章

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

Redis新操作

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

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;正在不断努力填补技术短板。(如果出…

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…

系列五、怎么查看默认的垃圾收集器是哪个?

一、怎么查看默认的垃圾收集器是哪个 java -XX:PrintCommandLineFlags -version

wpf devexpress 创建布局

模板解决方案 例子是一个演示连接数据库连接程序。打开RegistrationForm.BaseProject项目和如下步骤 RegistrationForm.Lesson1 项目包含结果 审查Form设计 使用LayoutControl套件创建混合控件和布局 LayoutControl套件包含三个主控件&#xff1a; LayoutControl - 根布局…

【Go入门】 Go搭建一个Web服务器

【Go入门】 Go搭建一个Web服务器 前面小节已经介绍了Web是基于http协议的一个服务&#xff0c;Go语言里面提供了一个完善的net/http包&#xff0c;通过http包可以很方便的搭建起来一个可以运行的Web服务。同时使用这个包能很简单地对Web的路由&#xff0c;静态文件&#xff0c…

【力扣】从零开始的动态规划

【力扣】从零开始的动态规划 文章目录 【力扣】从零开始的动态规划开头139. 单词拆分解题思路 45. 跳跃游戏 II解题思路 5. 最长回文子串解题思路 1143. 最长公共子序列解题思路 931. 下降路径最小和解题思路 开头 本力扣题解用5题来引出动态规划的解题步骤&#xff0c;用于本…

Android图片涂鸦,Kotlin(1)

Android图片涂鸦&#xff0c;Kotlin&#xff08;1&#xff09; import android.content.Context import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.graphics.Path import android.graphics.PointF import android.…

UE4动作游戏实例RPG Action解析三:实现效果,三连击Combo,射线检测,显示血条,火球术

一、三连Combo 实现武器三连击,要求: 1.下一段Combo可以随机选择, 2.在一定的时机才能再次检测输入 3. 等当前片段播放完才播放下一片段 1.1、蒙太奇设置 通过右键-新建蒙太奇片段,在蒙太奇里创建三个片段,并且移除相关连接,这样默认只会播放第一个片段 不同片段播…

图像分类(六) 全面解读复现MobileNetV1-V3

MobileNetV1 前言 MobileNetV1网络是谷歌团队在2017年提出的&#xff0c;专注于移动端和嵌入设备的轻量级CNN网络&#xff0c;相比于传统的神经网络&#xff0c;在准确率小幅度降低的前提下大大减少模型的参数与运算量。相比于VGG16准确率减少0.9%&#xff0c;但模型的参数只…

基于Vue+SpringBoot的大病保险管理系统 开源项目

项目编号&#xff1a; S 031 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S031&#xff0c;文末获取源码。} 项目编号&#xff1a;S031&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统配置维护2.2 系统参保管理2.3 大…

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

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