Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)

ops/2024/11/13 11:59:34/

我们都知道时钟树综合数字IC后端实现中的重要性。做clock tree主要有传统clock tree做法,H tree,Flexible H-tree,fishbone等做法。接下去小编将拿cadence官方的这份Innovus Flexible H-tree and Multi-Tap Clock Flow和对应的lab data来做这方面内容的分享。

在这里插入图片描述

需要完整版lab手册和lab数据的,可以前往社区星球免费获取。

该设计的时钟结构图如下。该设计时钟结构还是非常简单的。它包括一个主时钟my_clk,主时钟二分频时钟div_clk和测试时钟test_clk。

在这里插入图片描述

像这么简单的设计,我们数字后端工程师也都要会写该设计的timing signoff sdc和长clock tree sdc。

timing signoff sdc时序约束文件

Flexible H-Tree golden flow如下:

create_ccopt_clock_tree_spec

set_ccopt_property target_max_trans 150ps -net_type top

add_ndr -name 2W2S -spacing_multiplier {Metal2:Metal7 2} -width_multiplier {Metal2:Metal7 2}

create_route_type -name htree_route -top_preferred_layer Metal7 -bottom_preferred_layer Metal6 -non_default_rule 2W2S -shield_net VSS

set_ccopt_property route_type htree_route -net_type top

setDesignMode -topRoutingLayer 7

Set Route type

create_route_type -name cts_leaf -top_preferred_layer Metal5 -bottom_preferred_layer Metal4

create_route_type -name cts_trunk -top_preferred_layer Metal5 -bottom_preferred_layer Metal4 -non_default_rule 2W2S

set_ccopt_property route_type -net_type leaf cts_leaf

set_ccopt_property route_type -net_type trunk cts_trunk

Configure cts cell list

set_ccopt_property buffer_cells {CLKBUFX2 CLKBUFX4 CLKBUFX8 CLKBUFX12 CLKBUFX16 }

set_ccopt_property inverter_cells {CLKINVX2 CLKINVX4 CLKINVX8 CLKINVX12 CLKINVX16 }

set_ccopt_property clock_gating_cells {TLATNTSCAX2 TLATNTSCAX4 TLATNTSCAX8 TLATNTSCAX12 TLATNTSCAX16}

Skew target

set_ccopt_property target_skew 120ps

Maximum transition target

set_ccopt_property target_max_trans 200ps

Create Flexible H-tree

create_ccopt_flexible_htree \

-name test \

-sink_instance_prefix HTAP \

-sink_grid {4 4} \

-sink_grid_exclusion_zones {{100 0 500 330} {500 0 1000 330}} \

-trunk_cell CLKBUFX20 \

-final_cell CLKBUFX20 \

-pin clk \

-image_directory IMAGE/1

Synthesize the htree

synthesize_ccopt_flexible_htrees

H-tree效果如下图所示。
在这里插入图片描述

Clock Tree Debugger效果图如下。使用Flexible H-tree后clock tree的平均长度是1.25ns。

在这里插入图片描述

【思考题】测试时钟test_clk的clock tree长度是多少?它和主时钟长度的关系是什么?

在这里插入图片描述


http://www.ppmy.cn/ops/132987.html

相关文章

[Element] el-table修改滚动条上部分的背景色

[Element] el-table修改滚动条上部分的背景色 ::v-deep .el-table__cell .gutter {background: red;}

C语言中,“extern”关键字的含义与用法

在C语言中,extern 关键字用于声明一个已经在其他地方定义的变量或函数。它的主要作用是告诉编译器,某个变量或函数是在当前文件之外定义的,编译器应该在链接阶段找到这个变量或函数的实际定义。以下是 extern 的一些常见用途和用法&#xff1…

Sentinel — 微服务保护

微服务架构将大型应用程序拆分为多个小而独立的服务,每个服务可以独立部署和扩展。然而,微服务系统需要面对的挑战也随之增加,例如服务之间的依赖、分布式环境下的故障传播和安全问题。因此,微服务保护措施是确保系统在高并发、资…

吴恩达机器学习笔记(1)

吴恩达机器学习笔记 监督学习 定义 监督学习是一种机器学习方法,其中模型从输入数据(特征)和相应的输出标签(目标)中学习,目的是能够预测或决定新实例的输出标签。 监督学习机器学习中的核心概念之一&am…

初识Linux · 匿名管道

目录 前言: 匿名管道 理解为什么? 理解是什么? 理解怎么做? 前言: 引入管道之前,我们引入几个问题,进程通信的相关问题。 第一个是进程之间为什么要通信,对于进程间通信来说&…

多态之魂:C++中的优雅与力量

文章目录 1. 多态的概念1.1 编译时多态(静态多态)1.2 运行时多态(动态多态) 2. 多态的定义及实现2.1 多态的构成条件2.1.1 实现多态还有两个必须重要条件:2.1.2 虚函数2.1.3 虚函数的重写/覆盖1. 虚函数的重写&#xf…

【初阶数据结构与算法】线性表之链表的分类以及双链表的定义与实现

文章目录 一、链表的分类二、双链表的实现1.双链表结构的定义2.双链表的初始化和销毁初始化函数1初始化函数2销毁函数 3.双链表的打印以及节点的申请打印函数节点的申请 4.双链表的头插和尾插头插函数尾插函数 5.双链表的查找和判空查找函数判空函数 6.双链表的头删和尾删头删函…

【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)

博主说明:本文项目编号 T 061 ,文末自助获取源码 \color{red}{T061,文末自助获取源码} T061,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…