当前位置: 首页 > article >正文

数字后端零基础入门系列 | 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


http://www.kler.cn/news/364824.html

相关文章:

  • 【使用winget下载Java21】
  • python multiprocessing lock锁在相同父进程ID起作用
  • 【D3.js in Action 3 精译_037】4.1 DIY 实战:D3 源码分析之——d3.timeFormat() 函数
  • 线上遇到的问题记录(说多了都是泪)
  • 如何写一个视频编码器演示篇
  • 通过四元数求机器人本体坐标旋转量
  • 3.swoole安装【Docker】
  • 微前端架构新选择:micro-app 框架一文全解析
  • IDEA开发工具使用技巧积累
  • Agilent4339B高阻计测试仪HP4339B原装二手详情资料
  • 1-17课程总结
  • Docker 的网络模式 + 容器间通讯 + TC 流量控制工具
  • 现场总是发生急停,很可能是PLC和设置间网络中断
  • 供电电压和逻辑电压
  • Linux:文件IO
  • Unity-Shader-Tags
  • el-select实现模糊搜索、远端搜索
  • 线性可分支持向量机的原理推导【补充知识部分】拉格朗日函数 公式解析
  • Ubuntu下查看指定文件大小
  • Jenkins发布vue项目,版本不一致导致build错误
  • C++,STL 042(24.10.21)
  • 探索Web3与区块链的融合:未来互联网的新范式
  • Linux的用户管理、组帐号管理(chmod,chown)
  • Makefile:1954: recipe for target ‘Modules/_ssl.o‘ failed请安装ssl后,重新安装或编译Python
  • VS2022控制台程序显示命名空间引用
  • 影刀RPA实战:网页爬虫之桌面壁纸图片