时钟树综合跑不下去,怎么破?

news2024/11/16 0:02:15

吾爱IC社区第二十一期IC训练营正式开始招募啦(5月21号开营)!不知不觉小编的IC后端训练营课程已经举办21期了。每一期的报名时间也就1-3天,而且几乎每期都是爆满的情况。这背后的逻辑很简单。大家都信任吾爱IC社区这个品牌,更信任小编的技术实力。

这一期开始将在原来训练营模式的基础上,每周新增1次线上直播答疑课。同时为了大家能够更高效学习做项目,计划将往期直播课回放权限开放给大家。

因此,目前的训练营有以下几大特点:

1)开营直播+结营直播授课
2)由一线11年+后端技术专家负责每日问题解答和远程协助服务
3)每周一次线上直播授课+答疑(本周学习任务总结,解决大家实际项目中的具体问题)
4)公司实际项目,SoC芯片中的ARM CPU项目,而非开源或Lab项目
5)简历修改+面试指导

在有些设计中会通过DLL Macro来调整时钟的相位,比如90度,180度。下图中的Mux的I0端接原始时钟CLK,I1端接经过DLL调整相位后的时钟。而且DLL内部其实就是一段clock tree,它内部的delay值为2ns。

在这里插入图片描述

遇到这样的设计,如果你仅仅是个跑PR Flow的工程师,那么这个时钟树综合出来的结果一定惨不忍睹,而且通常是跑不出来的。如果你不希望未来被工具所替代,一定不能仅仅会跑后端流程。

因为Mux后带的sink。都是挂在CLK这个时钟下,默认情况工具会把Mux的I0和I1两路做clock balance。因此,工具做时钟树综合的clock balance阶段会在I0端垫个约2ns的clock inverter chain。

解决方案:

我们可以在做时钟树综合时在Mux的输出端定义一个create_clock,并且把Mux的I0和I1 pin设置成ignore pin。这个方法其本质也是用了“分段做tree”的思想。工作做tree会分别作出下面三段tree出来,而且第一段和第三段是完全没有关系的。

在这里插入图片描述
还有一种解决方法是通过设置set_clock_sense   -stop_propgation  $mux_I1_pin。原理是类似的。这个方法就是让CLK时钟属性不要穿过Mux。

如果大家平时没有经常看小编的技术干货,第一次遇到这样的案例一定无从下手。因为工具的时钟树综合完全跑不出来。

但如果你经常看小编分享的时钟树综合topic,你一定知道我们可以让工具只做clustering这个步骤,这样我们就可以快速找到逻辑最长的clock path并及时修正我们的clock spec,比如clock skew group的冲突问题等等。

所以,我们只需要按照下面的设置来做clock tree即可快速定位到本案例中的问题点,然后做适当修改就可以做出一个完美的时钟树出来。

set_ccopt_property balance_mode cluster

create_ccopt_clock_tree_spec -file spec.tcl

source spec.tcl

ccopt_design -cts [or ccopt_design ]

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

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

相关文章

做副业的我很迷茫,但ChatGPT却治好了我——AI从业者被AI模型治愈的故事

迷茫,无非就是不知道自己要做什么,没有目标,没有方向。 当有一个明确的目标时,往往干劲十足。但做副业过程中,最大的问题往往就是 不知道自己该干什么。 干什么?怎么干?干到什么程度&#xff1f…

通过部署Java工程学习Jenkins

今天来学习Jenkins部署应用,在工作中一般都是提交代码到git之后,通过自动打包的功能形成jar包,然后运行jar包。服务器自动从git拉取最新代码进行打jar包的这个过程就通过Jenkins来进行。 Jenkins官网地址 首先我们可以看一下官网的版本 我们…

智能学习 | MATLAB实现GWO-SVM多输入单输出回归预测(灰狼算法优化支持向量机)

智能学习 | MATLAB实现GWO-SVM多输入单输出回归预测(灰狼算法优化支持向量机) 目录 智能学习 | MATLAB实现GWO-SVM多输入单输出回归预测(灰狼算法优化支持向量机)预测效果基本介绍模型原理程序设计参考资料预测效果 基本介绍 Matlab实现GWO-SVM灰狼算法优化支持向量机的多输…

Vue中如何进行状态持久化(LocalStorage、SessionStorage)

Vue中如何进行状态持久化(LocalStorage、SessionStorage)? 在Vue应用中,通常需要将一些状态进行持久化,以便在用户关闭浏览器或刷新页面后,仍能保留之前的状态。常见的持久化方式包括LocalStorage和Sessio…

Cracking C++(8): 开发环境的选择

Cracking C(8): 开发环境的选择 文章目录 Cracking C(8): 开发环境的选择1. 目的2. 工具代码编辑器 和 IDEWindows命令行界面编译器gcc/gclang/clangMicrosoft Visual Studio基于浏览器的编译器 3. 其他工具补充调试器代码分析工具其他 1. 目的 在看了 hackingcpp 的 C Develo…

《百年孤独》15句经典语录

句句都是人生真相,说透了所有人的孤独。 1、生命中曾经有过的所有灿烂,原来终究,都需要用寂寞来偿还。 2、过去都是假的,回忆是一条没有尽头的路。 这句话是最受读者欢迎的一句话,回忆就是一条没有尽头的路&#xf…

shell脚本基础5——常用命令写作技巧

文章目录 一、grep命令二、sed命令2.1 选项参数2.2 常用命令 三、AWK命令3.1 常用参数3.2 常用示例 四、find与xargs五、date命令六、对话框6.1 消息框6.2 yes/no对话框6.3 表单输入框6.4 密码输入框6.5 菜单栏6.6 单选对话框6.7 多选对话框6.8 进度条 七、常用写作技巧7.1 EOF…

我,ChatGPT,打钱

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 一、ChatGPT是个啥? chat:表示“聊天”。 GPT:则是G…

提升Python函数调用灵活性:参数传递类型详解

前言 在Python编程中,函数参数起着非常重要的作用。函数参数允许我们向函数传递数据,并在函数内部使用这些值。Python提供了多种参数传递类型,包括位置参数、关键字参数、默认参数、可变数量的位置参数、可变数量的关键字参数。这些不同的参数…

数据结构——串(字符串)

文章目录 **一 串的定义和实现****1 定义****2 串的存储结构****2.1 定长顺序存储表示****2.2 堆分配存储表示****2.3 块链存储表示** **3 串的基本操作** **二 串的模式匹配****1 简单的模式匹配算法****2 串的模式匹配算法——KMP算法****2.1 字符串的前缀,后缀和…

一起学SF框架系列5.4-模块Beans-DefaultListableBeanFactory

在生成ApplicationContext过程中,AbstractRefreshableApplicationContext.refreshBeanFactory()完成旧BeanFactory关闭,创建新的BeanFactory,即new DefaultListableBeanFactory(…)。然后bean实例化时调用本类的preInstantiateSingletons方法…

网安笔记12 IPsec

IPSec 基于通信IP环境下一种端到端,保证数据安全的机制 包含 两个安全协议,一个密钥管理协议, 标准价秘密技术为基础 DES/其他分组加密算法键值hash算法认证公钥有效的数字证书 AH协议提供信息源验证、完整性保证ESP提供信息源验证、机密…

华为OD机试真题 JavaScript 实现【求解立方根】【牛客练习题】

一、题目描述 计算一个浮点数的立方根,不使用库函数。保留一位小数。 数据范围:∣val∣≤20 。 二、输入描述 待求解参数,为double类型(一个实数) 三、输出描述 输出参数的立方根。保留一位小数。 四、解题思路…

Git工作流(随笔)

目录 前言 一、工作流概述 1、概念 2、分类 二、集中式工作流 1、概述 2、介绍 3、操作过程 三、功能分支工作流 1、概述 2、介绍 3、操作过程 1)创建远程分支 2)删除远程分支 四、GitFlow工作流 1、概述 2、介绍 3、操作过程 五、Forki…

Linux系统:CentOS编译Linux内核

目录 一、实验 1.下载内核 2.解压内核源码 3.配置依赖的环境 4.进入源码目录,使用make menuconfig开启菜单选项,手动选择内核功能 5.编译内核 6.安装模块 7.安装内核 8.验证新内核版本 一、实验 1.下载内核 (1)官网下载…

010:vue中el-table 隐藏表头的两种方法

第010个 查看专栏目录: VUE — element UI echarts,openlayers,cesium,leaflet,mapbox,d3,canvas 免费交流社区 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例…

【Kubernetes存储篇】StorageClass存储类动态生成PV详解

文章目录 一、StorageClass存储类理论二、案例:Storageclass存储类实战演示1、搭建NFS服务端2、搭建NFS供应商(provisioner)3、创建StorageClass存储类4、创建PVC,通过StorageClass动态生成PV5、创建Pod挂载PVC 三、步骤总结 一、StorageClass存储类理论…

web测试工程师的工作职责

web测试工程师的工作职责1 职责: 1、 负责数据平台产品的测试工作,参与产品需求分析,负责方案制定,并能预先评估项目风险,确保测试活动的顺利开展; 2、 深入理解系统内部的设计原理,并能从测试的角度提供优化意见; 3、 根据产品需…

LVS+Keepalived 高可用群集实战部署

目录 前言 一、Keepalived工具介绍 1、Keepalived的作用 2、 Keepalived体系主要模块 二、keepalived工作原理 1、VRRP (虚拟路由冗余协议) 2、VRRP (虚拟路由冗余协议) (1)keepalived.conf是主配置文…

qt 使用qtpdfium实现读取pdf文件

此处仅作为笔记和配置指导。 要想获取源码可Git hub上下载,这里推荐一个:QtPdfium_Build_Source: 基于Google pdfium 库,可编译和编译好的Qtpdfium 库,用于加载pdf文件进行预览 (gitee.com) 目前小编根据推荐的编译方法&#xf…