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

Module 16 Wire Editing

这个章节的学习目标是学习如何在innovus中手工画线,切断一根线,换孔,更改一条net shape的layer和width等等。这个技能是每个数字IC后端工程师必须具备的。因为项目后期都需要这些技能来修复DRC和做一些手工custom走线。

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

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

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

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

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

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

LAB16-1

首先,我们把工作目录切到 /home/ic062/Desktop/FPR/work/EDIT_ROUTE,命令如下:

cd /home/ic062/Desktop/FPR/work/EDIT_ROUTE (如果你的端口是12,那么这里ic062就改成ic012,这个是用户名)

然后打开innvous,通过restoreDesign 打开我们要操作的database。

restoreDesign EditRoute.dat DTMF_CHIP

快速找到我们要的IO CELL

具体图形界面操作方法及步骤如下图所示。

在这里插入图片描述
数字IC后端实现 | Innovus各个阶段常用命令汇总

对应的命令实现方法:

select_obj IOPADS_INST/Prefclkip

上面这颗IO cell的名字如何获取呢?方法是在Design browser中选择那颗cell,右键选择copy name即可。

在这里插入图片描述

任务来了,就是连接如下图所示两个pin之间的连线。

在这里插入图片描述

打开pin shapes开关如下:

在这里插入图片描述

具体的pin name如下:

IOPADS_INST/Prefclkip/C --------- > DTMF_INST/PLLCLK_INST/refclk

获取这条net的名字

在这里插入图片描述
在这里插入图片描述

所以,这条线的net名字是 refclkI。

有了net名字后,我们就准备开始画线了。

按快捷键e即可进入下面的图形界面。

innovus手工画线GUI操作步骤

需要注意的是拉线前,需要点击菜单栏上的画线图标。

在这里插入图片描述

完成连线后的结果如下图所示。IO pin是出在M1,M2,M3,M4,M5和M6这几层,而PLLCLK_INST的refclk pin是出在M1这层。

在这里插入图片描述

换孔VIA

换孔的操作很简单。首先选中需要换via的孔,然后右键选择replace via,在弹出的图形界面对话框中选择合适的VIA来替换即可。工具自动会列出所有可用via的类型和视图(根据其实是根据tech lef中自动加载进来的)。

具体操作步骤如下图所示。唯一需要说明的是当很多层的metal和via堆叠在一起的时候,我们可以通过快捷键Q来快速获取选中的object是不是我们要的。如果不是我们要的object,我们可以按下回车键,工具会轮流选中这些堆叠的object。如此操作直至找到我们想要的object。

我们这个例子是选择上面自己画的那条net的via1。

为什么会有via1呢?因为M1(横向蓝色Metal1)连接到M4(纵向Metal4),必须通过通孔VIA来进行连接。这中间包含了VIA1,VIA2和VIA3。

在这里插入图片描述

切线/改变线宽/线的层次

还是以刚才那条net refclkI为例,我们希望把纵向的M4改成下面这种样式。

在这里插入图片描述

如何实现呢?

1)先利用工具的切线cut功能

在这里插入图片描述

在这里插入图片描述

这里说明一点,复制出来的Metal4是纵向的,我们需要改成横向的。可以通过旋转90度来实现。

在这里插入图片描述

弄好后的效果图如下图所示。

在这里插入图片描述

接着我们还需要实现如下图所示的样式需求,即把最右侧的纵向M4改成M6,而且要打上M4到M6的所有VIA。

在这里插入图片描述

两种方法可以实现:

1)就是lab中介绍的方法,比较土,这里不做多介绍。也是通过快捷键E来更换metal layer来实现的。

  1. 选中最右侧的那段net shape,然后执行下面的命令即可自动实现我们所需要的效果。

editChangeLayer -layer_vertical M6

那如何改net shape的线宽呢?

只需要一个简单的命令即可。如果改的是垂直方向metal的宽度,选择width_vertical。

editChangeWidth -width_vertical 0.44

在这里插入图片描述
从Innovus 20版本之后editChangeWidth这个命令就没有了。此时需要使用editResize来改变线的宽度和高度了。

editResize -to 0.1 -direction x -side high
editResize -to 0.1 -direction y -side high

对应Common UI的命令如下:

edit_resize_routes -to 0.1 -direction x -side low
edit_resize_routes -to 0.1 -direction y -side high

最后说明一点,本章节初学者如果发现操作有点困难,可以先跳过,或者有时间多操作几次就明白了。因为这部分内容是属于后面修复DRC可能会用到的一些小技能,纯属实践操作部分,对于初学者想找工作是可以先跳过的,不会影响面试结果的。但是只要知道我们在实际项目中,经常会用到换孔,改metal layer和metal width这些操作即可。

###END OF LAB16-1

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

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

相关文章

前后端交互通用排序策略

目录 排序场景 排序实现思路 1. 静态代码排序实现 2.数据库驱动排序实现 3. 基于Java反射的动态排序实现 通用排序工具 SortListUtil 结语 排序场景 在面向前端数据展示的应用场景中,我们旨在实现一个更加灵活的排序机制,该机制能够支持对从后端传递…

前端入门一之CSS知识详解

前言 CSS是前端三件套之一,在MarkDown中也完美兼容这些语法;这篇文章是本人大一学习前端的笔记;欢迎点赞 收藏 关注,本人将会持续更新。 文章目录 Emmet语法:CSS基本语法:css语法结构只有3种&#xff1a…

leetcode | 88. 合并两个有序数组

题目描述 88. 合并两个有序数组 分析 题目不允许更改nums1的长度,要求原地更改。 题目其实不难,如果记住可以从后往前合并的解法,但是正向遍历的问题是什么呢? ——元素覆盖。那为什么负向遍历就不会有这个问题呢?…

跳蚤市场之商品发布功能

一 商品类别和小类的联动 以下是一个示例代码&#xff0c;展示了如何实现商品类别中大类和小类的联动。 商品大类选择框、小类选择框 的设计 html部分 <form id"category-form"><label for"major-category">大类&#xff1a;</label&g…

OpenAI 发布了新的事实性基准——SimpleQA

SimpleQA 简介 名为 SimpleQA 的事实性基准&#xff0c;用于衡量语言模型回答简短的事实性问题的能力。 人工智能领域的一个悬而未决的问题是如何训练模型&#xff0c;使其产生符合事实的回答。 目前的语言模型有时会产生错误的输出或没有证据证明的答案&#xff0c;这个问题…

Android camera2

一、序言 为了对阶段性的知识积累、方便以后调查问题&#xff0c;特做此文档&#xff01; 将以camera app 使用camera2 api进行分析。 (1)、打开相机 openCamera (2)、创建会话 createCaptureSession (3)、开始预览 setRepeatingRequest (4)、停止预览 stopRepeating (5)、关闭…

Javascript属性遮蔽问题

先了解一下Object.defineProperty()方法 Object.defineProperty() 静态方法会直接在一个对象上定义一个新属性&#xff0c;或修改其现有属性&#xff0c;并返回此对象。 //obj&#xff1a;要定义的对象 //prop&#xff1a;一个字符串或 Symbol&#xff0c;指定了要定义或修改…

vue3项目history模式部署404处理,使用 historyApiFallback 中间件支持单页面应用路由

vue3项目history模式部署404处理&#xff0c;使用 historyApiFallback 中间件支持单页面应用路由 在现代的 web 开发中&#xff0c;单页面应用&#xff08;SPA&#xff09;变得越来越流行。这类应用通常依赖于客户端路由来提供流畅的用户体验&#xff0c;但在服务器端&#xf…

【vim文本编辑器gcc编译器gdb调试器】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、vimvim安装vim常用快捷键vim使用vimtutor zh文档 二、gcc编译器安装gcc工具编译源代码 三、gdb调试器gdb安装gdb常用指令gdb简单上手使用gdb的单步调试功能 总结…

企业数字化转型的架构治理策略:核心问题、深度分析与优化路径

在当今的商业环境中&#xff0c;企业数字化转型已成为实现可持续发展、增强竞争力的战略选择。企业架构治理&#xff08;Enterprise Architecture Governance Capability, EAGC&#xff09;在数字化转型中扮演着保障架构一致性、提升变革效能的关键角色。本指南深入解析了如何通…

基于springboot+vue实现的农产品物流系统

基于springbootvue实现的农产品物流系统 &#xff08;源码L文ppt&#xff09;4-107 摘 要 随着现代信息技术的迅猛发展&#xff0c;农产品物流系统应运而生&#xff0c;成为连接生产者与消费者的重要桥梁。该系统采用java语言&#xff0c; Spring Boot框架&#xff0c;结合My…

基于uniapp和java的电动车智能充电系统软件平台的设计

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 对电动车智能充电系统进行设计和开发。通过使用本系统可有效地减少运营成本&#xff0c;提高管理效率。 根据近年来社会…

Jmeter命令监控CPU等指标

JMeter 命令行执行脚本得到的报告中&#xff0c;是没有CPU、内存使用率等监控数据的&#xff0c;但是可以使用JMeter插件帮忙。 一、下载jmeter-plugins-manager.jar 下载后将文件放到jmeter安装包lib/ext目录下。打开Jmeter》菜单栏》选项》Plugins Manager 二、安装PerfMon…

ubuntu20.04 加固方案-检查是否设置登录超时

一、编辑/etc/profile配置文件 打开终端。 使用文本编辑器&#xff08;如vim&#xff09;编辑/etc/profile 文件。 vi /etc/profile 二、添加配置参数 在打开的配置文件中&#xff0c;如图位置添加如下参数&#xff1a; TMOUT1800 export TMOUT三、保存并退出 在vim编辑器…

HarmonyOS使用arkTS拉起指定第三方应用程序

HarmonyOS使用arkTS拉起指定第三方应用程序 前言代码及说明bundleName获取abilityName获取 前言 本篇只说采用startAbility方式拉起第三方应用&#xff0c;需要用到两个必备的参数bundleName&#xff0c;abilityName&#xff0c;本篇就介绍如何获取参数… 代码及说明 bundle…

32位汇编——通用寄存器

通用寄存器 什么是寄存器呢&#xff1f; 计算机在三个地方可以存储数据&#xff0c;第一个是把数据存到CPU中&#xff0c;第二个把数据存到内存中&#xff0c;第三个把数据存到硬盘上。 那这个所谓的寄存器&#xff0c;就是CPU中用来存储数据的地方。那这个寄存器有多大呢&a…

江协科技STM32学习- P35 硬件I2C读写MPU6050

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

【大数据学习 | HBASE】habse的表结构

在使用的时候hbase就是一个普通的表&#xff0c;但是hbase是一个列式存储的表结构&#xff0c;与我们常用的mysql等关系型数据库的存储方式不同&#xff0c;mysql中的所有列的数据是按照行级别进行存储的&#xff0c;查询数据要整个一行查询出来&#xff0c;不想要的字段也需要…

【dvwa靶场:XSS系列】XSS (Reflected)低-中-高级别,通关啦

一、低级low 简单拿捏 <script>alert(123)</script>二、中级middle 源码过滤了script但是没有过滤大小写&#xff0c;改成大写S <Script>alert(123)</script>三、高级high 比中级高&#xff0c;过滤了script并且以及大小写&#xff0c;使用其他标…