FPGA设计时序约束十二、Set_Clock_Sense

news2024/11/23 15:22:32

目录

一、序言

二、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)
begin
    case(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;
end
 
always@(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.coloradmin.cn/o/1317881.html

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

相关文章

【上海大学数字逻辑实验报告】七、中规模元件及综合设计

一、实验目的 掌握中规模时序元件的测试。学会在Quartus II上设计序列发生器。 二、实验原理 74LS161是四位可预置数二进制加计数器&#xff0c;采用16引脚双列直插式封装的中规模集成电路&#xff0c;其外形如下图所示&#xff1a; 其各引脚功能为&#xff1a; 异步复位输…

cmd命令bat脚本隐藏执行窗口

家里一直都有远程开3389的需要&#xff0c;一直使用的是frp. 最近发现总是经常掉线。也不清楚原因&#xff0c;后调查出来原来是由于 我命令行窗口一般启动的比较多&#xff0c;有时候就会去点一下&#xff08;选择复制内容&#xff09;&#xff0c;如下&#xff1a; 有时候…

解决:Invalid bound statement (not found): com.XXXXX.UserMapper.countUser

问题&#xff1a;Invalid bound statement (not found): com.XXXXX.UserMapper.countUser 原因&#xff1a;mapper.java和mapper.xml映射不上 解决方法&#xff1a; 1、在application.properties全局配置文件中没有加上映射mapper文件的配置,mapper为resources下的文件&…

可以给网站任意位置添加4个区块源码

在网站里添加html区块把html里的代码复制进去&#xff0c;然后把3、4、5行的CSS和JS修改成网站对应目录就行了

十七、如何将MapReduce程序提交到YARN运行

1、启动某个节点的某一个用户 hadoopnode1:~$ jps 13025 Jps hadoopnode1:~$ yarn --daemon start resourcemanager hadoopnode1:~$ jps 13170 ResourceManager 13253 Jps hadoopnode1:~$ yarn --daemon start nodemanager hadoopnode1:~$ jps 13170 ResourceManager 15062 Jp…

MATLAB2022安装下载教程

安装包需从夸克网盘自取&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/373ffc9213a1 提取码&#xff1a;N7PW 1.将安装包解压 2.以管理员的身份运行文件夹中的setup文件 3.点击高级选项--->我有文件安装密钥 4. 选择【是】&#xff0c;进入下一步 5.输入密钥 0532…

汽车发动机市场调研:预计2029年将达到642亿美元

过去汽车发动机行业快速发展&#xff0c;很多产品都出现供不应求&#xff0c;甚至加价销售的状况&#xff0c;而随着产能过剩、需求下滑&#xff0c;未来汽车发动机行业的价格竞争将愈发激烈&#xff0c;形成新的供需矛盾。根据动力源类型&#xff0c;汽车可分类为传统燃油汽车…

819. 最常见的单词

819. 最常见的单词 Java&#xff1a;split() 过滤 class Solution {public String mostCommonWord(String paragraph, String[] banned) {String s paragraph.replaceAll("\\p{Punct}", " "); // 去除所有标点符号String arr[] s.split(" "…

C语言:求和1+1/2-1/3+1/4-1/5+……-1/99+1/100

#include<stdio.h> int main() {int i 0;double sum 0.0;int flag 1;for (i 1;i < 100;i){sum 1.0 / i * flag;flag -flag;}printf("sum%lf\n", sum);return 0; }

学习MS Dynamics AX 2012编程开发 2. X++语言

X是用于构建Dynamics AX功能的编程语言。X是一种与C类似的面向对象编程语言。 完成本章后&#xff0c;您将能够理解X语言&#xff1b;您将知道可用的数据类型是什么&#xff0c;如何创建各种循环&#xff0c;如何比较和操作变量&#xff0c;在哪里可以找到预定义的函数&#x…

OpenCV开发:MacOS源码编译opencv,生成支持java、python、c++各版本依赖库

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它为开发者提供了丰富的工具和函数&#xff0c;用于处理图像和视频数据&#xff0c;以及执行各种计算机视觉任务。 以下是 OpenCV 的一些主要特点和功能&#xff…

【JavaWeb学习笔记】11 - WEB工程路径专题

一、工程路径问题 1.引入该问题 通过这几个去访问很麻烦 二、工程路径解决方案 1.相对路径 1.说明:使用相对路径来解决&#xff0c;一 个非常重要的规则:页面所有的相对路径&#xff0c;在默认情况下&#xff0c;都会参考当前浏览器地址栏的路径http:/ /ip:port/工程名/来进…

【教3妹学编程-算法题】找到 Alice 和 Bob 可以相遇的建筑

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2…

ES6 面试题 | 15.精选 ES6 面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

服务端主动给客户端发消息?实战教学:使用Nestjs实现服务端推送SSE

前言 服务端消息推送SSE是常用的服务器消息通信手段&#xff0c;适用于服务器主动给客户端发送消息的场景&#xff0c;例如私信通知&#xff0c;扫描登录等都可以使用SSE实现。SSE的底层原理是客户端与服务端建立 HTTP 长链接。 Nestjs 框架内置了对SSE的支持&#xff0c;本文…

Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小

需求&#xff1a; Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于&#xff0c;就压缩。小于&#xff0c;就拉伸到指定大小 代码实现&#xff1a; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.F…

【深度强化学习】确定性策略梯度算法 DDPG

前面讲到如 REINFORCE&#xff0c;Actor-Critic&#xff0c;TRPO&#xff0c;PPO 等算法&#xff0c;它们都是随机性策略梯度算法&#xff08;Stochastic policy&#xff09;&#xff0c;在广泛的任务上表现良好&#xff0c;因为这类方法鼓励了算法探索&#xff0c;给出的策略是…

禁毒知识竞赛流程和规则

禁毒知识竞赛是一项全国性竞赛活动。有着深化全国青少年毒品预防教育&#xff0c;巩固学校毒品预防教育成果的重要作用。本文介绍一场禁毒知识竞赛的完整流程和规则&#xff0c;供单位组织此类活动时参考。 1、赛制 第一轮10进6&#xff0c;第二轮6进4&#xff0c;4支队伍决出…

编译android的C版本Lua库

本文讲述如何使用android studio 编译最新版本的Lua开源库),请自行下载。 我们提供的Demo,可以自行下载,工程结构如下: 本文编译的是Lua 5.4.6的版本,编译采用cmake的方式,我们支持编译静态库和动态库(我们在这一讲里:“Lua与***C在Android上的互调”是使用静态库)…

02_Web开发基础之JavaScript

Web开发基础之JavaScript 学习目标和内容 1、能够描述Javascript的作用 2、能够使用分支结构if语句逻辑判断 3、能够使用其中一种循环语句 4、能够定义javaScript中的函数 5、能够定义javaScript中的对象 6、能够描述DOM的作用 7、能够通过DOM操作HTML标签元素及其属性 8、能够…