FPGA设计时序约束十二、Set_Clock_Sense

目录

一、序言

二、Set Clock Sense

2.1 基本概念

2.2 设置界面

2.3 命令语法

2.4 命令示例

三、工程示例

3.1 工程代码

3.2 无set_clock_sense

3.3 设置set_clock_sense

四、参考资料


一、序言

    本章将介绍Set_Clock_Sense约束,在介绍约束之前,大家需对时序弧以及timing sense有一定的基础了解,具体可参考另一篇文章《FPGA设计时序分析概念之Timing Arc》 

链接:https://blog.csdn.net/zyp626/article/details/134890605?spm=1001.2014.3001.5501

二、Set Clock Sense

2.1 基本概念

   Set_Clock_Sense约束用于定义时钟引脚的单边性Unateness,并且只能用于时钟网络中单边性状态为non-unate的引脚,该引脚上的时钟信号是无法确定的,在设置约束后,约束的时钟单边性状态将从约束的引脚向前传输。

2.2 设置界面

进入Timing Constraints界面,在左侧Others栏中选中Set Clock Sense,右侧即显示Set Clock Sense

 

设置界面中需设置单边性Unateness,可为positive/negative/stop propagation

 

约束设置子界面中Objects,可为I/O port或cell pins

 

Clock中选定设置clock sense的时钟

 

2.3 命令语法

命令格式

set_clock_sense [‑positive] [‑negative] [‑stop_propagation] [‑clocks <args>] [‑quiet] [‑verbose] <pins>

参数含义

 

2.4 命令示例

1、约束xor门中输出引脚z与初始时钟的极性状态为正极性positive unate

set_clock_sense -positive [get_pins xor_a.z]

三、工程示例

3.1 工程代码

设计中四路输入时钟通过一个多路选择器为两个级联的触发器提供时钟信号

module set_clock_sense(d1,clk1,clk2,clk3,clk4,rst,sel,out);
output out;
input d1,rst;
input [1:0] sel;
input clk1,clk2,clk3,clk4;
reg mux,ff1,ff2;
wire mux_n;
always@(sel)
begincase(sel)2'b00:mux<=clk1;2'b01:mux<=clk2;2'b10:mux<=clk3;2'b11:mux<=clk4;endcase
end
assign mux_n=mux;
always@(posedge mux_n)
begin
if(!rst)ff1<=1'b0;
else ff1<=d1;
endalways@(posedge mux_n)
begin
if(!rst)ff2<=1'b0;
else ff2<=ff1; 
end 
assign out=ff2;endmodule

综合网表连接图,多路选择器是用一个LUT6实现

 

3.2 无set_clock_sense

约束文件:

create_clock -period 1.000 -name clk1 -waveform {0.000 0.500} [get_ports clk1]
create_clock -period 8.000 -name clk2 -waveform {0.000 4.000} [get_ports clk2]
create_clock -period 7.000 -name clk3 -waveform {0.000 3.500} [get_ports clk3]
create_clock -period 3.000 -name clk4 -waveform {0.000 1.500} [get_ports clk4]

时序报告结果如下,

3.3 设置set_clock_sense

约束文件中对clk1不设set_clock_sense约束,clk2,clk3,clk4分别设置参数positive,negative,stop_propagation,注意:约束的位置需约束单元的Timing Sense状态为Unateness的输出引脚才行,如LUT,XOR异或门单元等,此处为ff1_i_2/O,即LUT的输出

create_clock -period 1.000 -name clk1 -waveform {0.000 0.500} [get_ports clk1]
create_clock -period 8.000 -name clk2 -waveform {0.000 4.000} [get_ports clk2]
create_clock -period 7.000 -name clk3 -waveform {0.000 3.500} [get_ports clk3]
create_clock -period 3.000 -name clk4 -waveform {0.000 1.500} [get_ports clk4]set_clock_sense -positive -clocks [get_clocks clk2] [get_pins ff1_i_2/O]
set_clock_sense -negative -clocks [get_clocks clk3] [get_pins ff1_i_2/O]
set_clock_sense -stop_propagation -clocks [get_clocks clk4] [get_pins ff1_i_2/O]

时序报告结果中同步时钟域中只剩下clk1,clk2。clk4的时序路径不存在是因为设置了stop_propagation,该条路径断开,clk3断开是由于只支持极性为positive的时序切换传输,因此,设置为negative也是路径断开,clk2设置的positive正常传输

 

四、参考资料

用户手册:ug903-vivado-using-constraints-en-us-2022.2.pdf

链接:https://pan.baidu.com/s/17AK_-J4wRXiFLtLTorlrwg?pwd=mylt 

提取码:mylt   

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

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

相关文章

《Kotlin核心编程》笔记:反射、注解和加锁

Kotlin 和 Java 反射 1&#xff09;Kotlin 的 KClass 和 Java 的 Class 可以看作同一个含义的类型&#xff0c;并且可以通过.java和.kotlin方法在KClass和Class之间互相转化。2&#xff09;Kotlin 的 KCallable 和 Java 的 AccessiableObject 都可以理解为可调用元素。Java 中构…

Redis List类型

列表类型是用来存储多个有序的字符串&#xff0c;如图所示&#xff0c;a、b、c、d、e 五个元素从左到右组成了一个有序的列表&#xff0c;列表中的每个字符串称为元素 (element)&#xff0c;一个列表最多可以存储2的32次方 -1个元素。在 Redis 中&#xff0c;可以对列表两端插入…

Linux 基本语句_15_Tcp并发服务器

原理&#xff1a; 利用父子进程。父进程接收客户端的连接请求&#xff0c;子进程处理客户端的数据处理操作&#xff0c;两者各施其职。最终实现能够多个客户端连接一个服务端的操作。 代码&#xff1a; 服务端代码&#xff1a; #include <stdio.h> #include <sys/…

【Java】猜数字小游戏

规则 游戏开始随机生成4位数字符串&#xff0c;每个数字从0到9各不相同&#xff0c;比如0123玩家10次猜数机会&#xff0c;输入4位数字符串&#xff0c;每个数字从0到9各不相同游戏判断玩家输入与所猜谜底数&#xff0c;给出结果nAnB&#xff0c;A表示位置和数字都猜对的个数&…

借着期末作业,写一个JavaWeb项目

合集传送门 要求 学生成绩管理系统设计与实现 设计一个学生成绩管理系统。根据以下功能&#xff0c;分析使用的逻辑结构和存储结构。并设计菜单&#xff0c;显示相应结果。 &#xff08;1&#xff09;录入功能&#xff1a;能够录入学生成绩&#xff08;包括&#xff1a;学号…

一个遗憾,特此纪念

这是学习笔记的第 2479篇文章 说一件有些遗憾的事情。其实今年遗憾的事情有好几件&#xff0c;这一件算是其中之一。倒不是它发生在今天&#xff0c;而是每每想起来&#xff0c;都有一种无力感和酸楚&#xff0c;索性简单写一写纪念一下。 这件事情就是放弃了读博士的想法。 在…

linux dotnet环境安装

https://dotnet.microsoft.com/en-us/download/dotnet dotnet安装 #配置.net源 rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm #安装dotnet yum install dotnet-sdk-3.1 aspnetcore-runtime-3.1

第一次数学建模赛后总结

大家好&#xff0c;这里是七七。 前些日子参加了一次数学建模比赛&#xff0c;赛后总结了一下&#xff0c;发现有很多事情是到了动手操作的时候&#xff0c;才发现问题的。总结了一下&#xff0c;有以下几点。 一、准备 在赛前准备阶段只傻傻的准备了很多学校给我们列举的数…

权重衰减(Weight Decay)

在深度学习中&#xff0c;权重衰减&#xff08;Weight Decay&#xff09;是一种常用的正则化技术&#xff0c;旨在减少模型的过拟合现象。权重衰减通过向损失函数添加一个正则化项&#xff0c;以惩罚模型中较大的权重值。 一、权重衰减 在深度学习中&#xff0c;模型的训练过程…

SQL基础:操作环境搭建

在上一节中&#xff0c;我们简单讲述了数据库和SQL的基本概念。 本节我们讲述一下环境搭建&#xff0c;为下一节讲表的基本操作做下铺垫。 环境搭建 具体到操作&#xff0c;我们就要准备一些环境了。如果不进行练习&#xff0c;我们学习的知识将很快被遗忘。 MySQL安装&…

【MySQL内置函数】

目录&#xff1a; 前言一、日期函数获取日期获取时间获取时间戳在日期上增加时间在日期上减去时间计算两个日期相差多少天当前时间案例&#xff1a;留言板 二、字符串函数查看字符串字符集字符串连接查找字符串大小写转换子串提取字符串长度字符串替换字符串比较消除左右空格案…

【话题】低代码123

目录 一、什么是低代码 二、低代码的优缺点 三、你认为低代码会替代传统编程吗&#xff1f; 四、有哪些低代码工具和框架 4.1 国外的平台 4.2 国内的平台 五、未来的软件研发 低代码&#xff0c;听着就过瘾的一个词。而且不是无代码&#xff0c;这说明&#xff0c;低代码…

计算机组成原理-函数调用的汇编表示(call和ret指令 访问栈帧 切换栈帧 传递参数和返回值)

文章目录 call指令和ret指令高级语言的函数调用x86汇编语言的函数调用call ret指令小结其他问题 如何访问栈帧函数调用栈在内存中的位置标记栈帧范围&#xff1a;EBP ESP寄存器访问栈帧数据&#xff1a;push pop指令访问栈帧数据&#xff1a;mov指令小结 如何切换栈帧函数返回时…

Spring入门

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

Toyota Programming Contest 2023#8(AtCoder Beginner Contest 333)

A - Three Threes 题目大意&#xff1a;给你一个整数n&#xff0c;将这个数n输出n次。 呃呃 B - Pentagon 题目大意&#xff1a;给你一个正五边形ABCDE&#xff0c;给你任意两条边&#xff0c;判断是否相等 主要问题要判断一下内边&#xff1a;AD&#xff0c;AC&#xff0c;…

store-sales-time-series-forecasting

首先题意为预测未来三年中的每一天中的每一家超市中的每一个商品的销售价值 目前我的思路是&#xff1a; 因为本道题目涉及多种特征&#xff0c;并且有着明确的时间线&#xff0c;并且题意也表示&#xff0c;这是一道时间预测的题目&#xff0c;那么对于该道题目我考虑使用LS…

小主机折腾记19

近一个月来折腾如下 1.购买了一个m92p&#xff0c;安装了3470t以及16g内存&#xff0c;常开&#xff0c;挂向日葵作为家中的远程控制主机&#xff1b; 2.400g2dm 安装chrome os flex到傲腾m10&#xff0c;失败&#xff0c;提示至少需要16g空间&#xff08;傲腾实际13.5左右&…

基于ssm图书商城网站的设计和开发论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本图书商城网站就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

Win11极速安装Tensorflow-gpu+CUDA+cudnn

文章目录 0.pip/conda换默认源1.Anacondapython虚拟环境2.安装CUDA以及cudnn 0.pip/conda换默认源 为了高效下载&#xff0c;建议先把默认源换了&#xff0c;很简单这里不再赘述。&#xff08;我用梯子&#xff0c;所以没换源&#x1f60b;&#xff09; 1.Anacondapython虚拟…

Go 语言中切片的使用和理解

切片与数组类似&#xff0c;但更强大和灵活。与数组一样&#xff0c;切片也用于在单个变量中存储相同类型的多个值。然而&#xff0c;与数组不同的是&#xff0c;切片的长度可以根据需要增长和缩小。在 Go 中&#xff0c;有几种创建切片的方法&#xff1a; 使用[]datatype{valu…