约束综合中的逻辑互斥时钟(Logically Exclusive Clocks)

注:本文翻译自Constraining Logically Exclusive Clocks in Synthesis

逻辑互斥时钟的定义

逻辑互斥时钟是指设计中活跃(activate)但不彼此影响的时钟。常见的情况是,两个时钟作为一个多路选择器的输入,并根据sel信号决定哪一个时钟被激活。一个处理逻辑互斥时钟的重要指导思想就是逻辑互斥时钟不应该在mux以外的地方发生交互。
在这里插入图片描述
如上图所示,设计中共有两个时钟,分别是CLKA和CLKB,两个时钟是多路选择的,某一时刻,只有一个时钟对电路起作用。一种约束的方法是使用set_case_analysis约束,即假定SEL恒为0或者1,然后进行时序分析。否则,若不进行任何约束,则flop-1和flop-2的发起时钟和捕获时钟分别有两种可能,因而综合工具总共会分析四条路径,如下表所示:

flop-1发起时钟flop-2捕获时钟
CLKACLKA
CLKBCLKA
CLKACLKB
CLKBCLKB

然而,事实上,表中中间的两种情况永远不可能发生。因此,为了杜绝这一问题,我们可以采用下面所示的约束方式:

set_clock_groups -logically_exclusive -group CLKA -group CLKB

通过上述约束,综合工具只会分析CLKA–>CLKA和CLKB–>CLKB这两条路径。
事实上,我们也可以通过设置伪路径来实现:

set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB]
set_false_path -from [get_clocks CLKB] -to [get_clocks CLKA]

在这里插入图片描述

现在考虑另一种情况,如上图所示,CLKA直接驱动了flop-3,因此,如果我们仍然采用set_clock_groups -logically_exclusive -group CLKA -group CLKB约束,那么综合工具只会分析CLKA–>CLKA和CLKB–>CLKB之间的路径,而事实上,flop-3和flop-2之间可能存在CLKA–>CLKB这种情况
因此,为了解决上述问题,我们需要为CLKA和CLKB创建生成时钟,如下所示:

create_generated_clock -name -CLKA_GEN -source CLKA [get_pins clk_mux/out]
create_generated_clock -name -CLKB_GEN -source CLKB [get_pins clk_mux/out]

然后,我们设置生成时钟之间是逻辑互斥的:

set_clock_groups -logically_exclusive -group CLKA_GEN -group CLKB_GEN

经此约束后,原先遗漏的路径CLKA(flop-3)–>CLKB(flop-2)也会被综合工具分析了。
在这里插入图片描述
考虑上图所示的情况,由图可知,CLKA和CLKB被信号SEL1 MUX,CLKC和CLKD被信号SEL2 MUX,flop-1和flop-2以及flop-6被CLKA和CLKB MUX后的时钟驱动,而flop-4、flop-5以及flop-3被CLKC和CLKD MUX后的时钟驱动。
为了对上述设计进行约束,我们有:

set_clock_groups -logically_exclusive -group CLKA -group CLKB
set_clock_groups -logically_exclusive -group CLKC -group CLKD

我们也可以通过设置伪路径实现上述效果:

set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB]
set_false_path -from [get_clocks CLKB] -to [get_clocks CLKA]
set_false_path -from [get_clocks CLKC] -to [get_clocks CLKD]
set_false_path -from [get_clocks CLKD] -to [get_clocks CLKC]

在这里插入图片描述
我们在上述例子的情况再作了一些改变,即两个MUX的SEL信号是相同的,此时CLKA和CLKB以及CLKD不能交互,CLKC也不能和CLKD以及CLKB交互,因此,我们可以做如下约束:

set_clock_groups -logically_exclusive -group “CLKA CLKC” -group “CLKB CLKD”

上述约束中,同一组内的时钟可以交互,而不同组间的时钟不能交互,其效果正是我们想达到的。

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

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

相关文章

【Linux】程序地址空间

程序地址空间 首先引入地址空间的作用什么是地址空间为什么要有地址空间 首先引入地址空间的作用 1 #include <stdio.h>2 #include <unistd.h>3 #include <stdlib.h>4 int g_val 100;6 int main()7 {8 pid_t id fork();9 if(id 0)10 {11 int cn…

【Megatron-DeepSpeed】张量并行工具代码mpu详解(四):张量并行版Embedding层及交叉熵的实现及测试

相关博客 【Megatron-DeepSpeed】张量并行工具代码mpu详解(四)&#xff1a;张量并行版Embedding层及交叉熵的实现及测试 【Megatron-DeepSpeed】张量并行工具代码mpu详解(三)&#xff1a;张量并行层的实现及测试 【Megatron-DeepSpeed】张量并行工具代码mpu详解(一)&#xff1a…

测试老鸟经验总结,Jmeter性能测试-重要指标与性能结果分析(超细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Aggregate Report …

【CTF-web】修改请求头(XFF)

题目链接&#xff1a;https://ctf.bugku.com/challenges/detail/id/79.html 随意输入后可以看到需要本地管理员登录&#xff0c;得知这是一道需要修改XFF头的题。 XFF即X-Forwarded-For&#xff0c;该请求标头是一个事实上的用于标识通过代理服务器连接到 web 服务器的客户端的…

【Apollo】Apollo-ros版本架构学习与源码分析

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Apollo-ros版本架构学习与源码分析。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&a…

途乐证券-新股行情持续火爆,哪些因素影响首日表现?

全面注册制以来&#xff0c;参加打新的投资者数量全体呈现下降。打新收益下降&#xff0c;破发频出的布景下&#xff0c;投资者打新策略从逢新必打逐步向优选个股改变。 经过很多历史数据&#xff0c;从商场定价、参加者热度以及机构重视度维度揭秘了上市后股价体现优秀的个股具…

时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测)

时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测) 目录 时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测)效果一览基本描述模型结构程序设计参考资料效果一览

记录一下关于word存放代码出现的问题

如下图所示&#xff0c;从 Word 中复制代码并粘贴到其他地方&#xff0c;例如文本编辑器或代码编辑器中&#xff0c;有时会出现额外的连字符或破折号。这是因为 Word 使用了特定的字符编码和格式&#xff0c;而这些字符在代码中可能不被支持或解析为特殊字符。   可见有时从…

拓扑布局和建立小型网络

练习 2.6.1&#xff1a;拓扑布局和建立小型网络 地址表 本实验不包括地址表。 拓扑图 学习目标 正确识别网络中使用的电缆物理连接点对点交换网络验证每个网络的基本连通性 简介&#xff1a; 许多网络问题都可以在网络的物理层解决。因此&#xff0c;必须清楚了解网络连接…

13-把矩阵看作是对系统的描述

探索矩阵乘法&#xff1a;更深刻的理解与应用视角 &#x1f9e9;&#x1f50d; 引言 &#x1f4d6; 在我们进一步探讨矩阵乘法之前&#xff0c;让我们从不同的角度来理解什么是矩阵&#xff0c;以及如何将矩阵视为一个系统。我们之前已经介绍了矩阵的基本概念和运算&#xff…

【QT】 QSS样式表设计一文了解

很高兴在雪易的CSDN遇见你 &#xff0c;给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享QT界面设计中的QSS样式技术&#xff0c;主要从**、**和**方面展开&#xff0c;希望对各位小伙伴有所帮助&#xff01;学会了QSS样式设计&#xff0c;就可以开动你的审美&#…

Zookeeper集群 + Kafka集群

文章目录 Zookeeper集群 Kafka集群一.Zookeeper 概述1.Zookeeper 定义2.Zookeeper 工作机制2.1 Zookeeper 工作机制图示 3.Zookeeper 特点4.Zookeeper 数据结构5.Zookeeper 应用场景5.1 统一命名服务5.2 统一配置管理5.3 统一集群管理5.4 服务器动态上下线5.5 软负载均衡 6.Zo…

JMeter启动时常见的错误

很多小伙伴在学工具这一块时&#xff0c;安装也是很吃力的一个问题&#xff0c;之前记得有说过怎么安装jmeter这个工具。那么你要启动jmeter的时候&#xff0c;一些粉丝就会碰到如下几个问题。 1.解压下载好的jmeter安装&#xff0c;Windows 平台&#xff0c;双击 jmeter/bin …

35岁职业危机?不存在!体能断崖?不担心

概述 90年&#xff0c;硕士毕业&#xff0c;干了快8年的Java开发工作。现年33岁&#xff0c;再过2年就要35岁。 工作这些年&#xff0c;断断续续也看过不少35岁找不到工作&#xff0c;转行&#xff0c;降薪入职的传闻、案例。 35岁&#xff0c;甚至30岁之后&#xff0c;体能…

使用gewe框架进行微信群组管理(一)

友情链接&#xff1a;geweapi.com 点击访问即可。 管理员操作 小提示&#xff1a; 添加、删除、转让多个wxid时仅限于添加/删除管理员&#xff0c;1添加 2删除 3转让 请求URL&#xff1a; http://域名地址/api/group/admin 请求方式&#xff1a; POST 请求头&#xff1a…

Expo项目 使用Native base UI库

装包&#xff1a; yarn add native-base expo install react-native-svg12.1.1 Index.js: import React from react import { View, Text } from react-native import useList from ./useList import { NativeBaseProvider, Button, Box } from native-base import styles f…

Python中搭建IP代理池的妙招

在Python的爬虫世界里&#xff0c;你是否也想搭建一个功能强大的IP代理池&#xff0c;让你的爬虫无忧无虑地畅游各大网站&#xff1f;今天&#xff0c;我就来教你使用Scrapy框架搭建IP代理池&#xff0c;让你的爬虫更加智能、高效&#xff01;跟着我一步一步来&#xff0c;轻松…

NGINX负载均衡及LVS-DR负载均衡集群

目录 LVS-DR原理搭建过程nginx 负载均衡 LVS-DR原理 原理&#xff1a; 1. 当用户向负载均衡调度器&#xff08;Director Server&#xff09;发起请求&#xff0c;调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求&#xff0c;判断目标IP确定是本机IP&#xff…

Android JNI实现锅炉压力显示系统详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 第一步创建GuoLu.c文件 // // Created by DELL on 2023/8/13. // #include <stdio.h…

vue3使用pinia和pinia-plugin-persist做持久化存储

插件和版本 1、安装依赖 npm i pinia // 安装 pinia npm i pinia-plugin-persist // 安装持久化存储插件2、main.js引入 import App from ./App.vue const app createApp(App)//pinia import { createPinia } from pinia import piniaPersist from pinia-plugin-persist //持…