innovus如何分步长func和dft时钟

在Innovus工具中,分步处理功能时钟(func clock)和DFT时钟(如扫描测试时钟)需要结合设计模式(Function Mode和DFT Mode)进行约束定义、时钟树综合(CTS)和时序分析。跟随分步操作下吧:

2.5GHz数字后端实战课!过年大促!

景芯SoC【设计】实战课

景芯SoC【验证】实战课

景芯SoC【DFT】实战课

景芯SoC【后端】实战课

【劲爆】芯片全流程实战


1. 约束定义与模式分离
a. 创建多模式约束(MMMC)
- 在SDC约束文件中,为Function Mode和DFT Mode分别定义时钟:


 # Function Mode
 create_clock -name func_clk -period 10 [get_ports clk]

 # DFT Mode(扫描测试时钟)
 create_clock -name scan_clk -period 20 [get_ports scan_clk]

- 使用set_case_analysis区分模式:
 # Function Mode
 set_case_analysis 0 [get_port test_mode]
 # DFT Mode
 set_case_analysis 1 [get_port test_mode]


b. 配置多模式多角(MMMC)
- 在Innovus中加载不同模式的约束文件,并创建Analysis View:

create_analysis_view -name func_view -mode func_mode -corner ssg0p81v125c
create_analysis_view -name dft_view  -mode dft_mode  -corner ssg0p81v125c

# 关联SDC到对应模式
read_sdc -mode func_mode func_mode.sdc
read_sdc -mode dft_mode  dft_mode.sdc

set_analysis_view -setup {func_view} -hold {func_view}  # 功能模式分析


set_analysis_view -setup {dft_view}  -hold {dft_view}   # DFT模式分析

图片

2. 分步时钟树综合(CTS)

set_analysis_view -setup func_view
ccopt_design -clock func_clk  # 功能时钟优化

set_analysis_view -setup dft_view
ccopt_design -clock scan_clk  # DFT时钟优化

(c) 处理时钟冲突
若功能时钟和DFT时钟共用时钟树分支(如MUX输出),需定义排除关系:
# 在功能视图中排除DFT时钟优化
set_ccopt_property -exclude_clock scan_clk -analysis_view func_view

# 在DFT视图中排除功能时钟优化
set_ccopt_property -exclude_clock func_clk -analysis_view dft_view

3. 多模式时序分析与验证

(a) 功能模式时序检查
set_analysis_view -setup {func_view} -hold {func_view}
timeDesign -expandedViews -analysis_view func_view
report_timing -view func_viee
 

(b) DFT模式时序检查
set_analysis_view -setup {dft_view} -hold {dft_view}
timeDesign -expandedViews -analysis_view dft_view
report_timing -view dft_view

(c) 跨模式检查
确保时钟切换信号(如test_mode)的时序稳定:
check_timing -override_defaults mode_switch

图片

4. DFT时钟特殊处理
(a) 扫描链时钟分组
隔离功能时钟与DFT时钟的物理路径:
set_clock_groups -physically_exclusive -group func_clk -group scan_clk

(b) 低功耗DFT时钟
若DFT时钟频率较低,需单独设置过渡时间约束:

set_clock_transition -clock scan_clk -max 0.5

(c) 时钟MUX稳定性

确保时钟选择信号(test_mode)的路径满足建立/保持时间:
set_false_path -from [get_ports test_mode] -to [get_clocks func_clk]
set_false_path -from [get_ports test_mode] -to [get_clocks scan_clk]

5. 最终验证
(a) 时钟树报告
report_ccopt -analysis_view func_view
report_ccopt -analysis_view dft_view

(b) DRC/LVS检查
verify_drc -mode all -limit 1000
verify_connectivity -type all

(c) 形式验证(Formality)
确保功能模式与DFT模式逻辑等价。
 

注意特殊DFT时钟处理

- 扫描链时钟(Scan Shift/Scan Capture):
 - 在DFT模式下,扫描链时钟通常需要更低频率,需单独约束。
 - 使用set_clock_groups隔离功能时钟和测试时钟:
 
   set_clock_groups -physically_exclusive -group {func_clk} -group {scan_clk}
   
- 时钟MUX处理:
 - 确保时钟选择信号(如

test_mode)在布局布线后稳定,避免毛刺。

图片

其他关键注意事项
1. 模式切换信号:确保test_mode等控制信号在物理实现中布局稳定。
2. 功耗分析:DFT模式下可能功耗更高,需单独分析IR Drop。
3. DRC/LVS:时钟MUX和DFT逻辑需通过物理验证工具(如Pegasus)检查。

通过分场景约束、分步CTS和多模式时序分析,可高效管理功能时钟与DFT时钟的冲突问题。

赞赏二维码

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

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

相关文章

[LeetCode]day20 383.赎金信

题目链接 题目描述 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1&am…

PHP E-mail发送机制详解

PHP E-mail发送机制详解 引言 随着互联网的普及,电子邮件(E-mail)已经成为人们日常工作中不可或缺的通信工具。PHP作为一种流行的服务器端脚本语言,也提供了丰富的E-mail发送功能。本文将详细介绍PHP E-mail发送的机制&#xff…

java高级知识之集合

前言 集合是java开发中的重点内容,需要掌握的东西很多,面试中可问的东西很多,无论是深度还是广度。集合框架中Collection对应的实现类如下所示,这些都是要完全掌握,一个可以分为三大类List集合、Set‘集合以及Map集合…

51c自动驾驶~合集49

我自己的原文哦~ https://blog.51cto.com/whaosoft/13164876 #Ultra-AV 轨迹预测新基准!清华开源:统一自动驾驶纵向轨迹数据集 自动驾驶车辆在交通运输领域展现出巨大潜力,而理解其纵向驾驶行为是实现安全高效自动驾驶的关键。现有的开…

C# ASP.NET 介绍

.NET学习资料 .NET学习资料 .NET学习资料 一、概述 ASP.NET是由微软创建的一个开源 Web 框架,用于使用.NET 构建现代化的 Web 应用程序和服务。它为开发者提供了一套丰富的工具、库和编程模型,使得创建功能强大、高效且安全的 Web 应用变得更加容易。…

AI基础 -- AI学习路径图

人工智能从数学到大语言模型构建教程 第一部分:AI 基础与数学准备 1. 绪论:人工智能的过去、现在与未来 人工智能的定义与发展简史从符号主义到统计学习、再到深度学习与大模型的变迁本书内容概览与学习路径指引 2. 线性代数与矩阵运算 向量与矩阵的…

【05】RUST常用的集合函数宏类型

文章目录 常用集合VecStringHashMap 宏打印 类型Option<T> 常用集合 Vec 堆上连续内存vector可能出现扩容&#xff0c;把老元素copy到内存新位置 因此不允许let first &v[0];作用域内调用v.push(4); // 定义 let v: Vec<i32> Vec::new(); let v vec![1,…

Unity-Mirror网络框架-从入门到精通之MultipleMatches示例

文章目录 前言MultipleMatchesLobbyViewRoomViewMatchGUIPlayerGUI总结前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开源网络框架,专为多人…

VMware Workstation创建虚拟机

目录 创建新的虚拟机 虚拟机快照功能 虚拟机添加空间 其他注意事项 创建新的虚拟机 打开VMware Workstation&#xff1a;启动软件后&#xff0c;点击“创建新的虚拟机”。 选择安装方式&#xff1a; 典型安装&#xff1a;适合大多数用户&#xff0c;会自动完成大部分配置…

DeepSeek AI R1推理大模型API集成文档

DeepSeek AI R1推理大模型API集成文档 引言 随着自然语言处理技术的飞速发展&#xff0c;大语言模型在各行各业的应用日益广泛。DeepSeek R1作为一款高性能、开源的大语言模型&#xff0c;凭借其强大的文本生成能力、高效的推理性能和灵活的接口设计&#xff0c;吸引了大量开发…

前后端交互方式

在现代 Web 开发中,前后端的高效交互是构建流畅、响应迅速应用的核心。随着技术的不断发展,传统的请求响应模型已不再满足复杂应用的需求。本文将探讨多种前后端交互的方式,从经典的 HTTP 请求到实时数据传输的 WebSocket、GraphQL 等协议,每种方法都有其独特的优势和适用场…

Node.js调用DeepSeek Api 实现本地智能聊天的简单应用

在人工智能快速发展的今天&#xff0c;如何快速构建一个智能对话应用成为了开发者们普遍关注的话题。本文将为大家介绍一个基于Node.js的命令行聊天应用&#xff0c;它通过调用硅基流动&#xff08;SiliconFlow&#xff09;的API接口&#xff0c;实现了与DeepSeek模型的智能对话…

活泼瘤胃球菌(Ruminococcus gnavus)——多种疾病风险的潜在标志物

​ 前几日&#xff0c;南方医科大学深圳医院院长周宏伟教授团队在国际顶尖医学期刊《Nature Medicine》上发表了一项重要研究。首次揭示一种名为活泼瘤胃球菌(Ruminococcus gnavus)的细菌产生的物质——苯乙胺&#xff0c;在肝性脑病发生中的关键作用。 ​ 同时谷禾的人群检测数…

8.flask+websocket

http是短连接&#xff0c;无状态的。 websocket是长连接&#xff0c;有状态的。 flask中使用websocket from flask import Flask, request import asyncio import json import time import websockets from threading import Thread from urllib.parse import urlparse, pars…

qiime2:安装与使用

试一下docker安装 docker pull quay.io/qiime2/amplicon:2024.10 docker images docker run -v {挂载的目录}:/data quay.io/qiime2/amplicon:2024.10 qiime -h使用 import.txt docker run -v ~/diarrhoea/MJ/qingzhu:/data quay.io/qiime2/amplicon:2024.10 qiime tools imp…

pair的使用(c++)

pair 是 C 标准库中的一个模板类&#xff0c;用于将两个值组合成一个单一对象&#xff0c;通常用于存储键值对或返回多个它有两个公有成员 first 和 second&#xff0c;分别表示第一个值和第二个值。 我们可以把pair 理解成 C为我们提供一个结构体&#xff0c;里面有两个变量:…

JUnit断言方法详解与实战

在Java开发中&#xff0c;JUnit是一个不可或缺的单元测试框架&#xff0c;而org.junit.Assert类中的断言方法则是JUnit的核心功能之一。通过这些方法&#xff0c;我们可以方便地验证代码的正确性。本文将详细介绍一些常用的断言方法&#xff0c;并通过实例展示它们的使用。 一、…

推荐算法实践:movielens数据集

MovieLens 数据集介绍 MovieLens 数据集是由明尼苏达大学的GroupLens研究小组维护的一个广泛使用的电影评分数据集&#xff0c;主要用于推荐系统的研究。该数据集包含用户对电影的评分、标签以及其他相关信息&#xff0c;是电影推荐系统开发与研究的常用数据源。 数据集版本 …

基于vue2 的 vueDraggable 示例,包括组件区、组件放置区、组件参数设置区 在同一个文件中实现

为了在Vue 2中实现一个包含组件区、组件放置区以及组件参数设置区的界面&#xff0c;我们可以使用vue-draggable库来处理拖拽功能&#xff0c;并结合其他UI组件库如Element UI来构建界面。下面是一个基本的示例&#xff0c;展示如何实现这样的布局。 第一步&#xff1a;安装必…

技术实战|ELF 2学习板本地部署DeepSeek-R1大模型的完整指南(一)

DeepSeek作为国产AI大数据模型的代表&#xff0c;凭借其卓越的推理能力和高效的文本生成技术&#xff0c;在全球人工智能领域引发广泛关注。DeepSeek-R1作为该系列最新迭代版本&#xff0c;实现了长文本处理效能跃迁、多模态扩展规划、嵌入式适配等技术维度的突破。 RK3588作为…