数字后端零基础入门系列 | Innovus零基础LAB学习Day8

news2024/12/23 7:05:39

###LAB15
Detail Routing for Signal Integrity, Timing, Power and Design for Yield

这个章节虽然标题有点长,但不要被它吓到,其实这个章节就是Innovus工具的绕线Routing。只不过这个阶段做Route不是仅仅是把所有的逻辑连接,用实际的金属层连线来实现实际物理连接,它还需要考虑时序,DRC,功耗和DFM(考虑良率)等因素。

数字后端零基础入门系列 | Innovus零基础LAB学习Day7

数字后端零基础入门系列 | Innovus零基础LAB学习Day6

数字后端零基础入门系列 | Innovus零基础LAB学习Day5

数字后端零基础入门系列 | Innovus零基础LAB学习Day4
这里所说的Signal Integrity是指信号完整性,在PR中是指信号的质量分析,主要是靠crosstalk串扰来衡量信号的完整性。

crosstalk分析及其修复方法

对于普通信号,如果存在crosstalk,但timing是满足的,我们是可以不用修复。

对于关键时钟信号,如果有crosstalk,我们需要尽量修复干净。

DFM全称是Design For Manufacture。工艺在制作过程中,需要满足一些特殊的要求,这些特殊的要求往往比基本要求要严格点,比如原来Metal的space要求只要0.05um,考虑DFM,foundary可能会把space要求提高到0.07um,又比foundry又希望信号变得更宽,通孔VIA变成双(多)孔。

###LAB15-1

这个章节的学习目标是学会给一些关键信号设置NDR(Non-Default Rule) 和shielding,从而确保时序和信号质量满足设计要求。

首先,我们打开postCTSopt这个database,命令如下:

restoreDesign …/saved/postCTSopt.inv.dat DTMF_CHIP

给net设置特殊space和Shielding

使用的命令是setAttribute,具体命令如下。这个官方lab是用VDD来做shielding net的,但实际项目中大都是使用VSS来做的,因为VSS相比VDD要安静。

setAttribute \
-net DTMF_INST/TDSP_CORE_INST/read_data \
-shield_net VDD

备注:命令中的每行的“\”是当一行写不下一条命令的时候可以通过这个特殊字符来换行继续写。

给net设置后,真正给对应net加shielding VDD会在后续绕线时加上的。

为了查看我们所设置的是否生效以及这条net还有其他什么属性,我们可以通过下面的命令来获取。

getAttribute -net DTMF_INST/TDSP_CORE_INST/read_data

Innovus getAttribute使用方法

【思考题】 这条net所加的shielding net是单边shielding 还是双边shielding?

对于设计中的关键信号,比如DTMF_INST/clk这个时钟信号,我们可以给这条net设置一个2倍space的约束。设置约束后,后续工具绕这条net时会遵守我们的约束条件来完成绕线。

setAttribute -net DTMF_INST/clk -preferred_extra_space 2

对net进行绕线

首先,我们优先把需要加shielding的net先完成绕线。

按照之前的lab介绍,我们有两种方式来选中这样的net——DTMF_INST/TDSP_CORE_INST/read_data。

第一种方法是直接使用selectNet DTMF_INST/TDSP_CORE_INST/read_data。

第二种方法就是lab中介绍的图形界面操作方法。具体操作步骤如下图所示。
在这里插入图片描述

弹出我们要的net之后,通过Design Browser界面的Select即可完成net的选中。

在这里插入图片描述

【思考题】图中显示这条net有3个pin,请问它们分别是什么pin?几个输入pin,几个输出pin?

选中net后,我们就可以来针对这条net来进行绕线。

GUI图形界面操作方式:Route— NanoRoute----Route

选择后会弹出如下左边界面,按照下图所示的操作步骤来设置,然后点击OK即可开始绕线。

innovus nanoroute GUI图形界面操作方法

绕线完成后,我们来看看这条net的走线以及shielding net是怎么走线的。工具走线后的效果如下图所示,这条net优先绕线就是漂亮,而且shielding也是包围的很严实。

innovus clock shielding添加方法

如果对于高亮显示的net看不太清楚,可以用之前lab介绍的ctrl+F12来把显示的屏幕变暗。连续这样操作三次又会回到默认的亮度。

针对这条net绕线完成后,我们还要利用工具来完成剩下其他signal的绕线。这里的操作方法和上面的操作是一样的,唯一不同的地方是不能再选择Selected net Only这个选项。

在这里插入图片描述

针对每次的绕线,我们都需要通过log来查看当前绕线后是否存在DRC。本次绕线后的结果如下图所示。

Innovus routing drc violation
DRC Violation项目案例及其修复方法

当然,我们也可以通过图形界面上的Violation Browser来查看,具体操作步骤如下图所示。结果显示也是没有任何DRC,这个和log中的信息是吻合的。

在这里插入图片描述

前面绕线前我们选择了Timing Driven和SI Driven,所以工具绕线的过程就会自动考虑Timing和SI。

那下面我们直接来看下timing到底能否meet? 报timing我们还是要请出我们熟悉的朋友——timeDesign。

为了考虑OCV效应,在报timing前我们还需要有如下的变量设置。

setAnalysisMode –analysisType onChipVariation

报告setup timing的命令如下:

timeDesign –postRoute

报告timing summary结果如下:

Innovus timeDesign Summary报告

这里我们发现此时有比较大的setup violation,所以我们还需要做一轮optDesign来优化时序。使用的命令如下所示:

optDesign -postRoute -setup

经过一轮优化后的timing结果如下图所示,基本上进剩一条16ps的violation。这里觉得不够满意也可以再做一轮,也可以等后续再修。

innovus optDesign后timing report

报告hold timing的命令如下:

timeDesign –postRoute -hold

同样从timeDesign的report中可以看到设计也存在hold violation。我们也可以用同样的方法来优化hold time,这里就不再做演示了。

在这里插入图片描述
在innovus中如果想同时报setup和hold的timing,我们主要有两种方式来实现。

1)设置如下global timing变量
set_global timing_enable_simultaneous_setup_hold_mode true

2)设置analysisMode分别为setup和hold

setAnalysisMode -checkType hold

保存绕线后的设计

saveDesign DTMF_detailrouted.inv

###END OF LAB15-1

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

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

相关文章

发现研究的组织是自己所在组织,有点慌

donnyhuang 2019-5-29 23:34 我们做业务建模研究的组织可以是自己所在的组织吗?例如,如果我想做一个组件来来提高研发效能,那我研究的组织是我们部门的研发线可以吗? 因为最近做一个设备管理的建模,发现研究的组织是自…

将数学学生搞糊涂的糊涂话:面积(路程)是一种对应规则(关系)

黄小宁 将一种关系与构成此关系的成员、要素混为一谈是非常低级的常识性错误。问题是学生们做梦都不敢怀疑课本会有这样的错误。有战士与班长之间构成一种上下级关系,战士必须服从上级的指挥。将构成此关系中的班长说成是关系本身显然是概念性错误。同样&#xff0c…

(九)JavaWeb后端开发3——Servlet

目录 1.Servlet由来 2.Servlet快速入门 3.Servlet执行原理 4.Servlet生命周期 1.Servlet由来 在JaveEE API文档中对Servlet的描述是:可以运行在服务器端的微小程序,但是实际上,Servlet就是一个接口,定义了Java类被浏览器访问…

【51单片机】矩阵键盘

学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 矩阵键盘 矩阵键盘 矩阵键盘位于开发板的右下角 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键…

特朗普概念股分析:DJT和Phunware股价大涨:买还是卖?

猛兽财经核心观点: (1)特朗普媒体科技集团的股价已经从9月份的低点上涨了280%。 (2)随着特朗普赢得大选的概率上升,Phunware的股价也在大幅上涨 (3)这些股票在大选后逆转的可能性越来…

Python | Leetcode Python题解之第522题最长特殊序列II

题目&#xff1a; 题解&#xff1a; class Solution:def findLUSlength(self, strs: List[str]) -> int:def is_subseq(s: str, t: str) -> bool:pt_s pt_t 0while pt_s < len(s) and pt_t < len(t):if s[pt_s] t[pt_t]:pt_s 1pt_t 1return pt_s len(s)ans …

FlinkCDC-MYSQL批量写入

一、运行环境 &#xff08;1&#xff09;Flink&#xff1a;1.17.2 &#xff08;2&#xff09;Scala&#xff1a;2.12.20 &#xff08;3&#xff09;Mysql&#xff1a;5.7.43 ##开启binlog 二、代码示例 思路&#xff1a;通过滚动窗口收集一批数据推给sink消费。binlog日志对…

群控系统服务端开发模式-应用开发-上传配置功能开发

下面直接进入上传配置功能开发&#xff0c;废话不多说。 一、创建表 1、语句 CREATE TABLE cluster_control.nc_param_upload (id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 编号,upload_type tinyint(1) UNSIGNED NOT NULL COMMENT 上传类型 1&#xff1a;本站 2&a…

【大语言模型】ACL2024论文-03 MAGE: 现实环境下机器生成文本检测

【大语言模型】ACL2024论文-03 MAGE: 现实环境下机器生成文本检测 目录 文章目录 【大语言模型】ACL2024论文-03 MAGE: 现实环境下机器生成文本检测目录摘要研究背景问题与挑战如何解决核心创新点算法模型实验效果&#xff08;包含重要数据与结论&#xff09;主要参考工作后续优…

C++设计模式结构型模式———组合模式

文章目录 一、引言二、组合模式三、总结 一、引言 组合模式是一种结构型设计模式&#xff0c; 可以使用它将对象组合成树状结构&#xff0c; 并且能像使用独立对象一样使用它们。代码实现中涉及了递归调用。组合模式与传统上的“类与类之间的组合关系”没有关联&#xff0c;不…

【C/C++】qsort函数的学习与使用

零.导言 在之前的文章中&#xff0c;我介绍了冒泡排序&#xff0c;即按ASCII码值把元素从小到大排序&#xff08;文章链接我放在了第五部分&#xff0c;有兴趣的小伙伴可以求看看&#xff09;。而今天我将继续介绍qsort函数&#xff0c;这个函数可以起到和冒泡排序一样的作用&a…

前段(vue)

目录 跨域是什么&#xff1f; SprinBoot跨域的三种解决方法 JavaScript 有 8 种数据类型&#xff0c; 金额的用什么类型。 前段 区别 JQuery使用$.ajax()实现异步请求 Vue 父子组件间的三种通信方式 Vue2 和 Vue3 存在多方面的区别。 跨域是什么&#xff1f; 跨域是指…

【elkb】索引生命周期管理

索引生命周期管理 Index lifecycle management(索引生命周期管理)是elasticsearch提供的一种用于自动管理索引的生命周期的功能。允许使用者定义索引的各个阶段&#xff0c;从创建至删除。并允许使用者在每个阶段定义索引需要执行的特定动作。这些动作包含索引创建&#xff0c…

基于SSM志愿者招募系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;志愿组织管理&#xff0c;组织信息管理&#xff0c;组织申请管理&#xff0c;志愿活动管理活动报名管理 用户账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;…

msys2更换国内源(多个文件(不是3个文件的版本!))

msys2更换国内源 起因排查答案如下mirrorlist.mingw64mirrorlist.ucrt64mirrorlist.mingw32mirrorlist.mingwmirrorlist.clang64mirrorlist.clang32mirrorlist.msys 不想看经过的直接跳到答案 起因 查了很多个教程大部分都是【打开MSYS2软件内的\etc\pacman.d\ 中3个文件&…

Spring Boot框架下的信息学科平台系统架构设计

3系统分析 3.1可行性分析 通过对本基于保密信息学科平台系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于保密信息学科平台系统采用Spring Boot框架&a…

基于Python可视化的热门微博数据分析系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的热…

ffplay 实现视频流中音频的延迟

ffplay -rtsp_transport tcp -i rtsp://admin:1234qwer192.168.1.64:554/Streaming/Channels/101 -vn -af "adelay5000|5000"在这个命令中&#xff1a; -vn 参数表示只播放音频。 -af "adelay5000|5000" 参数表示将音频延迟5000毫秒&#xff08;即5秒&…

Iceoryx2:高性能进程间通信框架(中间件)

文章目录 0. 引言1. 主要改进2. Iceoryx2 的架构3. C示例代码3.1 发布者示例&#xff08;publisher.cpp&#xff09;3.2 订阅者示例&#xff08;subscriber.cpp&#xff09; 4. 机制比较5. 架构比较6. Iceoryx vs Iceoryx2参考资料 0. 引言 Iceoryx2 是一个基于 Rust 实现的开…

HTML+javaScript+CSS

文章目录 HTMLjavaScriptCSS属性区块表单层叠样式表选择器常用属性盒子模型相关属性浮动float定位&#xff08;position&#xff09; JS操作节点事件点击事件onclick()聚焦事件、失焦事件鼠标移入移出事件 定时任务延迟定时任务重复定时任务 判断哪个单选框被选中设置按钮失效冒…