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

Module 10 利用Global Router来分析设计是否可绕通

LAB10-1 跑一个placement

本章节目的是load进一个floorplan,跑通一个placement并完成post-placement的timing优化

导入设计和floorplan

这步之前的lab已经做过了,大家再按照下面的步骤再练习巩固下。
Innovus加载floorplan

加载好设计和floorplan后,我们先获取下当前的placeMode,命令如下。

getPlaceMode

输入以上命令后,工具会输出当前的所有place mode。
setPlaceMode

这些变量很多都是工具默认值,而且这些变量不需要我们都背下来,需要在做项目过程中不断熟悉积累一些常用的选项。

这里比如place_global_timing_effort选项是medium,代表工具优化时序的力度是中等力度。如果对于timing比较紧的设计,我们可以通过setPlaceMode来给这个选项设上high值。

Scan def读入

如果综合有写出scan chain的def文件,在place之前我们可以读入scan chain的def来进一步优化congestion。

命令: defIn scan_input.def (innovus是通过defIn来读入这部分信息的)

innovus读入scan chain def
数字后端scan chain reorder优缺点

跑Placement的命令

place_opt_design

由于设计比较小,执行这个命令后大概1分钟就跑完了。跑完后的最后结果可以看place的log,具体结果如下图所示。
在这里插入图片描述

每个阶段跑完要看哪些report,可以查看下面分享的文章。

在这里插入图片描述

关于工具每个阶段,比如placement,cts,route各个阶段的log可以查阅下面这份教程。

在这里插入图片描述

在跑placement过程中,经常会遇到如下所示的IMSP-9100的错误。这个错误是提示当前设计存在scan chain,但有很高比例的寄存器没有scan chain连接信息。

**ERROR: (IMPSP-9100): Scan chains exist in this design but are not defined for 70.89% flops and -place_global_ignore_scan is set to false. Placement and timing QoR can be severely impacted in this case!

It is highly recommend to keep -place_global_ignore_scan option as its default value ‘true’ with scan chains definition.

Innovus  IMPSP-9100错误解决方案

写出scan chain def文件

defOutBySection -noNets -noComps -scanChains scan.def

高亮显示scan chain连接示意图

GUI界面操作如下:

Place-----> Display ------> Scan Chain

在弹出的窗口中选择scan1这条scan chain后,效果如下图所示。

在这里插入图片描述

为了看更清楚这条scan chain连接关系,我们可以通过放大缩小来看局部的连接顺序是否比较顺(即没有太多交叉飞线的情况)。这里细心的同学一定发现,此时有一些线挡住了我们的视线,所以我们可以通过右侧控制面板来关掉Route这个选项来不显示绕线部分信息。

在这里插入图片描述

Congestion查看

正常我们只要看log中的overflow值小于1%,基本上都是可绕通的。这个lab设计比较小,overflow都是0.0x的量级。

GUI界面查看方法

选择Overlay-----> Congestion

在这里插入图片描述

由于overflow过小,所以整体上看基本上看不到任何颜色。局部放大可以看到macro出pin位置会有点小overflow,值很小,所以工具都能绕通。

在这里插入图片描述

保存设计

saveDesign place_Opt.inn (名字可以随意取,取成大家自己的名字也可以!)

###END OF LAB 10-1

###LAB10-2 Running the Early Global Router

本章节学习目标是通过工具的前期global router 引擎来分析发现潜在绕线问题

GUI操作步骤:Route—Early Global Route (等效命令是earlyGlobalRoute)

在这里插入图片描述

上图中选择的Route layer这步界面操作等效于使用下面的命令。

setRouteMode -earlyGlobalMaxRouteLayer 3 -earlyGlobalMinRouteLayer 1

备注:这里计划哪些层用于绕线,我们就选择可用于绕线的层次范围,比如我们可用于绕线的层次为M1-M8,那么这里我们就分别填入8和1即可。

这里我们打开placeOpt这个database,它是工具做完placement后保存的数据。

restoreDesign …/saved/placeOpt.inv.dat DTMF_CHIP

place做完我们一定要学会看congestion map。查看的方法如下:

congestion map查看方法

如果没有弹出左侧的Congestion map界面,我们可以下图中这个类似“图片”的图标。
在这里插入图片描述

下面带大家看懂layout上显示的map的含义

在这里插入图片描述

以上图的V: 12/7为例,它表示当前的Congestion是垂直方向的,而且这个区域的可用绕线资源是7根,而实际该区域需要的绕线资源是12根,所以这里暗示我们这个区域存在一定的绕线风险。而且我们可以看到这个区域是用橙色来标示的,而图中的V: 5/2 则是用比较淡的颜色标示,代表它的绕线风险相比V:12/7要小。

而且如果我们仔细观察的话,就会发现这个设计的congestion map都是垂直V方向的congestion。

这里,我们也可以通过下面的操作来自动显示。

在这里插入图片描述

【思考题】 为何图中会出现垂直方向的congestion,而且还还有规律?

衡量design是否可以绕通,其实还有一个技术指标——hotspot。关于overflow和hotspot的区别可以查看下面这份详细教程。

在这里插入图片描述

保存设计

lab中教大家的是图形界面操作方式。这里小编教大家如何用命令来保存设计。命令如下:

saveDesign …/saved/earlyGlobalRouted.inn

保存后退出软件后,可以通过下面的命令再次打开保存的database。

restoreDesign …/saved/earlyGlobalRouted.inn.dat DTMF_CHIP

我们发现工具做完placement后的database中居然存在绕线了,这是为什么呢?

在这里插入图片描述

答案是这些线并非真实绕线,而是工具做placement时做的early global route出来的线。我们随意选取一条线来看:

在这里插入图片描述

选中一条net对应的命令是:

deselectAll
selectNet DTMF_INST/RESULTS_CONV_INST/n_1310

在这里插入图片描述

Innovus选中任何object前务必做下deselectAll,否则选中的object可能还是之前选中的object。

###END OF LAB10-2

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

信息安全工程师(62)网络蠕虫分析与防护

网络蠕虫分析 网络蠕虫是一种智能化、自动化,综合了网络攻击、密码学和计算机病毒技术的恶意程序或代码,它无须计算机使用者干预即可运行。这种蠕虫能够扫描和攻击网络上存在系统漏洞的节点主机,并通过局域网或国际互联网从一个节点传播到另一…

【UE5】通过程序化网格体组件实现剖切功能

效果 步骤 1. 新建两个Actor类蓝图,分别命名为“BP_CutActor”、“BP_CutPlane”,分别表示被剖切的网格体和剖切的片面。 2. 打开“BP_CutActor”(被剖切的网格体),添加静态网格体组件、程序化网格体组件,…

(三)第一个Qt程序“Qt版本的HelloWorld”

一、随记 我们在学习编程语言的时候,各种讲解编程语言的书籍中通常都会以一个非常经典的“HelloWorld”程序展开详细讲解。程序虽然简短,但是“麻雀虽小,五脏俱全”,但是却非常适合用来熟悉程序结构、规范,快速形成对编…

原型模式和建造模式的区别

原型模式(Prototype Pattern)和建造者模式(Builder Pattern)虽然都是创建型设计模式,但它们的应用场景和实现方式有着显著的区别。以下是二者的详细对比: 1. 意图和应用场景 原型模式: 意图&a…

【论文阅读】2022 TChecker Precise Static Inter-Procedural Analysis for Detecting

总览 “TChecker: Precise Static Inter - Procedural Analysis for Detecting Taint - Style Vulnerabilities in PHP Applications” 由香港中文大学的 Changhua Luo、Penghui Li 和 Wei Meng 撰写。论文介绍了 TChecker 工具,用于检测 PHP 应用中的污点式漏洞&am…

【Linux】为什么环境变量具有全局性?共享?写时拷贝优化?

环境变量表具有全局性的原因: 环境变量表之所以具有全局性的特征,主要是因为它们是在进程上下文中维护的,并且在大多数操作系统中,当一个进程创建另一个进程(即父进程创建子进程)时,子进程会继承…

动态路由:RIP实验

1.划分IP 2.配置环回 3.接口配置IP地址 4.进入RIP中,关闭手工汇总,选择版本号,宣告 5.ping命令查看是否全网通 6.在R3上配置缺省路由 [R3-rip-1]default-route originate 在边界路由器上下发缺省 7.为了安全配置手工认证 [R1-Gigab…

qt QVariant详解

QVariant是Qt框架中一个功能强大的变体类,它提供了一种通用的方式来存储Qt对象及其他类的值,能够以类似于指针的方式存储任意类型的值。 一、 主要特性 通用性:QVariant可以存储几乎所有数据类型,包括基本数据类型(如…

刷题小记9:回溯

回溯算法模板: void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理…

html+vue实现动态复杂table

1、效果 2、代码 <div style"overflow: scroll; width: 100%;height: calc(100% - 80px);"><table class"table table-bordered" style"width: auto;table-layout: fixed;"><thead style"position: sticky;top: -1px;z-inde…

【C++干货篇】——类和对象的魅力(四)

【C干货篇】——类和对象的魅力&#xff08;四&#xff09; 1.取地址运算符的重载 1.1const 成员函数 将const修饰的成员函数称之为const成员函数&#xff0c;const修饰成员函数放到成员函数参数列表的后面。const实际修饰该成员函数隐含的this指针&#xff08;this指向的对…

IDEA如何查看所有的断点(Breakpoints)并关闭

前言 我们在使用IDEA开发Java应用时&#xff0c;基本上都需要进行打断点的操作&#xff0c;这方便我们排查BUG&#xff0c;也方便我们查看设计的是否正确。 不过有时候&#xff0c;我们不希望进入断点&#xff0c;这时候除了点击断点关闭外&#xff0c;有没有更快速的方便关闭…

深入浅出剖析重量级文生图模型Flux.1

24年8月&#xff0c;Flux.1的发布又一次火爆整个AI绘图领域&#xff0c; 号称AI文生图的“新标杆”&#xff0c;刷新AI图像领域的新格局。 Flux是一款由Black Forest Labs开发的尖端AI图像生成工具&#xff0c;旨在通过先进的技术将文本提示转化为高质量的图像。Flux AI支持多…

利用 OBS 推送 WEBRTC 流到 smart rtmpd

webrtc whip 推流 & whep 拉流简介 RFC 定义 通用的 webrtc 对于 SDP 协议的交换已经有对应的 RFC 草案出炉了。这就是 WHIP( push stream ) & WHEP ( pull stream ) . WHIP RFC Link: https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html WHEP RFC Link:…

总分441数一149专137东南大学820信号数电考研经验电子信息与通信工程电路原920专业基础综合,真题,大纲,参考书。

一. 写在前面的话 本人是23年考生&#xff0c;本科就读于西电电子信息工程&#xff0c;以441分总分&#xff08;数学一149&#xff0c;英语83&#xff0c;专业课820&#xff08;原920信号和数电专业基础综合&#xff09;137&#xff0c;政治73&#xff09;考上东南信院电路与系…

虚拟机(VMwara Workstation17)保姆级别的安装(附软件获取途径)

文章目录 一、虚拟机的作用二、虚拟机的获取三、虚拟机的安装步骤四、总结 一、虚拟机的作用 压根不需要给自己的电脑重装系统&#xff0c;就可以使用Linux系统。简单来说就是虚拟出一个计算机&#xff0c;安装Linux系统&#xff0c;便于学习和工作 关于虚拟机的介绍&#xf…

初识Linux · 预备文件系统

目录 前言&#xff1a; 看看物理磁盘 了解磁盘的存储结构 对磁盘进行逻辑抽象 前言&#xff1a; 我们在上文探讨的问题都是基于文件是被打开的情况&#xff0c;那么对于文件没有被打开的情况&#xff0c;我们是没有探讨过的&#xff0c;而本文作为文件系统的预备知识&…

多ip访问多网站

1.前提配置 关防火墙 关selinux 2.安装web服务程序nginx 3.当前主机添加多地址&#xff08;ip a&#xff09; 4.自定义nginx配置文件通过多地址区分多网站 /etc/nginx/conf.d/test_ip.conf server { #标记为一个虚拟主机} 5.根据配置在主机创建数据文件 6.重启服务加载配…

【ROS2】构建导航工程

1、ROS小车组成 ROS小车由三大件组成:运动底盘、ROS主控、导航传感器。 1.1 运动底盘 运动底盘的硬件由车轮、电机(带编码器)、电机驱动器、STM32控制器、电池等组成。 涉及的知识点主要为:STM32单片机程序、机器人运动学分析 1)STM32单片机程序 单片机程序框架如下:…

Modbus TCP报错:Response length is only 0 bytes

问题描述&#xff1a; 使用modbus_tk库&#xff0c;通过Modbus tcp连接PLC时&#xff0c;python中的一个报错信息&#xff1a; Response length is only 0 bytes报错原因&#xff1a; 与Modbus TCP 服务端建立连接后没有断开&#xff0c;继续作为长连接使用&#xff0c;客户端…