ICC学习——LAB0A

文章目录

  • ICC学习——LAB0A
  • Task1 启动ICC
  • Task2 layout视图导航
  • Task3 控制图层的可见性
  • Task4 选择和查询对象
  • Task5 得到关于命令和变量的信息

从今天开始学习ICC lab guide,记录学习过程的一些小的细节,防止遗忘。内容以lab guide2010.12为主,穿插一些学习感悟。

学习目标:
1.熟悉ICC GUI
2.学习如何得到关于变量和变量的help信息

预期效果
1.打开并退出ICC
2.打开一个已保存的设计
3.配置layout窗口
4.浏览layout视图
5.选择并查询layout对象
6.使用help,printvar和man获取有关命令和变量的帮助和附加信息

Task1 启动ICC

1.登录linux(可以忽略)
2.启用ICC之前,删除GUI窗口配置文件window configuration。(这个文件保存了之前的ICC设置)

rm ~/.config/Synopsys/icc_shell.conf

rm:删除指令
cd ~:打开代码主目录,相互于当前登录的用户目录
比如我的服务器路径,~代表/home/soc/用户名

Note:删除窗口配置并不是必须的
3.从home目录更改到lab0_gui目录下

cd lab0_gui

4.在linux命令行下启动icc

icc_shell

5.查看当前目录下文件。在ICC shell中键入ls -la

icc_shell > ls -la

运行完后可以看到两个文件,一个是icc_shell.cmd,一个是.log
cmd包含所有ICC命令包含启动icc的命令。
log记录开启ICC后的命令和命令的输出。
Note:log文件的名字可以通过在.synopsys_dc.setup中定义。

6.打开ICC可视化界面

icc_shell > start_gui

短暂的等待后,一个ICC主窗口(Main Window)被打开。设计载入后,这个窗口可以展示原理图和逻辑层次。
Note:除了通过ICC_shell 键入命令,还可以直接在终端输入icc_shell -gui。
7.从risc_chip.mw(MilkWay的设计库)载入被放置的单元,分为以下几步:
a.在主窗口,点击黄色图标(左上方)或者使用菜单命令File —> Open Design

b.在Open Design窗口点击黄色文件夹,“Select Library”对话框被打开。MilkWay库倍一个橘黄色的“L”图标标记。选择库文件risc_chip.mw,并点击“choose”。

c.在“Open Design”对话框中展示了被存储的CELs。仅有一个单元放在列表中,已经被选中(蓝色高亮)。点击“OK”打开。一个新的layout窗口被打开了。

关于Cell View
MilkWay数据库包含同一单元的不同表示,称之为单元格的视图。
1.CEL view:诸如通孔,标准单元,宏或整个芯片物理结构的完整布局图,包含单元格的布局布线引脚和网表信息。
2.FRAM view:用于布局和布线的单元抽象表示。包含金属封锁,允许通过区域和单元格引脚。
3.Fill view:ICC中sign_off_metal_fill命令创建的金属填充视图,用于芯片物理实现,无逻辑功能。
4.CONN view:由PrimeRail或由ICC创建并由PrimeRail工具用于IR drop和EM的电源和地网络。
5.ERR view:ICC中验证命令发现的物理设计规则违规,如verify_zrt_route或signoff_drc

存储在MilkWay库中的物理设计至少包含CEL视图,CEL视图包含布局、布线和掩码生成所有的单元设计的信息。每个宏单元(macro)都具有CEL和FRAM view,FRAM用于布局布线,CEL视图用于芯片制造的掩模数据。

TLU+ <=> TLU plus
8.将main窗口放在前面,看窗口底部的命令文本,回答以下问题
问题1:打开placed cell时,执行了什么命令
(提示:向上翻动,知道找到它——在命令行内按上下键,查看之前输入的命令)
答案1:open_mw_cel placed

顺便看到了打开risc_chip.mw命令。open_mw_lib /位置/risc_chip.mw

查看命令文本对初学ICC命令很有帮助。也可以通过terminal窗口得到命令的执行和响应。
9.将“layout”窗口前置并且最大化窗口

10.点击小写的[F]键,使layout视图适应窗口
你现在看的是叫作placed的layout CEL视图,属于risc_chip.mw设计库的一部分。

在layout的外部,IO pad单元(浅蓝色矩形)

在core区域的四周。core是色彩鲜艳的。

在core和IO pad区域之间有绿色和红色的金属环,叫作power ring,一个VSS,一个VDD。

为了更好进行供电,在core区域有垂直和水平的VDD/VSS straps。

核的底部有两个RAM macro。

在设计规划阶段确定了核心和外围布局以及电源布线
core,io cell,power routing

在placement阶段,标准单元放置到水平放置行内(RAM上面的深蓝色区域)

利用Task2中的zoom 操作可以看到标准单元

蓝色区域是由狭窄水平走向的金属线组成,叫作VSS/VDD rails,主要作用将power传到标准单元上。


power ring:一周的电源
power straps:类似于ring但是在core内,垂直和水平电源。
power rail:将电源供到单元上,VSS,VDD交替排列,形成水平放置列,中间摆放标准单元。

Note:Layout window有自己的菜单,一些与主窗口共享,其它的一些由Layout Window独有。大多数的物理设计都通过Layout window来形成。

Task2 layout视图导航

1.花几分钟熟悉zoom(缩放)和pan(平移)按钮,当缩放和平移时观察Overview Window中的黄色矩形变化。
Overview Window:在layout window的左上角。


提示:layoutwindow有快捷zoom,pan工具,选择工具进行不同的操作,点击白色箭头或ESC退出zoom和pan模式。

问题2:带有2的放大按钮和带有+的放大按钮的不同,
回答:2是放大两倍,+是常规放大。
2.“快捷键/热键”是可获得的,当layout窗口运行时。
小写字母[F]/[Ctrl + F]:相当于zoom fit all(全景图)
Z:相当于zoom in放大功能。
zoom in模式下可以拉一个橘黄色的矩形,放大此区域。
3.可以找到其他热键,通过以下两种方式:
方式1:悬停鼠标在按钮上,出现一个“帮助气泡”,气泡力会介绍功能名和键盘快捷键。

方式2:可以在菜单中找到,路径:Help —> Report Hotkey Bindings。一个新的视图出现,列出热键的定义。关闭这个view可以通过Windows —> close view / [Ctrl + W]



4.鼠标手势操作,个人用的比较少。更喜欢用GUI的按钮和键盘热键。
介绍鼠标手势操作方法:点击鼠标中键并按住,同时上下移动指针,手势操作菜单就会出现在指针附近。

上左/右45°,放大选中的矩形区域
5.键盘上的上/下/左/右也可以用来平移操作
6.如果鼠标有滚轮,也可以用zoom in/out,在鼠标指针附近的区域。

Task3 控制图层的可见性

在view setting窗口,可以控制/查看对象是可视的/可选择的

以下步骤,将一次打开打开关键对象的可见性,清楚看到他们代表的内容。首先需要在设置的下拉菜单中选中“Auto apply”(保证选择立刻生效,而不用等待)

a.在Vis列(可视化),取消所有的对象,仅保留Cell。
只有标准单元,Macro,IO pad被展示


b.选择Pin。输入输出电源连接引脚被展示

c.查看Route。所有金属线可视化
因为设计还没有布线,只有电源/地的预布线(在Floor阶段做的电源布线),应该可以看到power ring和水平垂直的power straps 也可以看到power rail

d.检测Labels(标签)。单元和实例的名字变得可见。通过点击左侧的“+”将Labels展开。利用Z查看标准单元,会发现它的引脚名字变得可见。按[F]将窗口置于中间

e.选择Layer选项,通过一层层微调可视性,在METAL(14)行和shape的交界处点击带有对角线的蓝色正方形,随后蓝色的水平金属rail消失。(METAL(14)就是metal 1)

f.再点击一次,使得metal1可见(即rail 可见)
g.选择Objects选项,重新应用起始的设置。
问题3:上面的Vis和Sel列有什么区别?
回答:Vis:可视,使对象可以被看到。SEl:可选择,当点击是可以选中的。
不可视的不可被选中。
7.选择Layer选项,使用颜色和填充图案回答以下问题:

问题4:红色水平电源strapes位于哪一层?它的名字和编号
回答:METAL3(22)
点击完后红色strap消失

问题5:绿色垂直电源strapes位于哪一层?名字和编号
回答:METAL4(26)

8.通过鼠标悬停在straps上,出现一个query窗口,并核对你的答案。query:查询,query窗口有相关Layer图层。

query:包含单元名,引脚数,是否被fix(什么叫fix),形状,所在层,宽度,长度,endcap等。

Task4 选择和查询对象

1.选择对象
想要选择对象,鼠标必须是一个箭头,代表选择模式。
可以通过点击箭头按钮,或者[ESC]键。
2.用鼠标左键选择不同的单个对象。选择对象以白色高亮显示,直到取消选中或者选中其它对象,白色消失。
3.取消所有选择的对象,有3种方法。
a.点击Layout空白处(常用这种方法,简单实用)
b.菜单Select —> clear
c.键盘快捷键[Ctrl + D]
4.选中一个区域的多个对象。用左键拖放一个矩形,选中矩形的单元。

5.保持目前被选择的对象,增加其它对象。按住Ctrl,鼠标左键选择其它对象,类似Windows

6.多个对象叠加时,通过左键不断点击,直到所需对象高亮。可以尝试通过点击红色的straps和绿色straps交叉位置。

7.放大蓝色核心区域。通过在周围拖动选择框选择一些标准单元。
8.增加选择单元和未选择单元的对比度,可以调节Brightness到50%,增加对比度。亮度位于视图面板顶部,或者view setting中。


9.查询对象
鼠标悬停,对象被轻微高亮,左下角出现一个查询窗口。
显示对象的一些关键属性。
想要获得一个完整查询,选择一个单元有两种方法。
a.小写字母q
b.菜单Select —> Query Slection
会打开一个窗口列出所有特征值。

10.点击右上角的隐藏按钮关闭查询窗口。
11.关闭Layout窗口。从Main Window或Layout窗口点击File —> Close design,关闭当前的layout。然后点击对话框中的Discad All,关闭界面并不保存。
12.关闭GUI命令

stop_gui或gui_stop

Task5 得到关于命令和变量的信息

1.ICC可以通过[Tab]键补全变量名,命令名,文件名和命令选项。ICC shell尝试以下命令:
h[Tab]e[Tab] -v[Tab] help[Enter]
help -verbose help

2.想要查看命令和变量的manpage(手册页),需要完整的命令或者变量
在不清楚命令或变量精确名字时使用help结合*通配符。help查命令,printvar查变量
如:假如正在寻找某个优化命令的更多信息。不记得确切的名称,但知道syn字符(synthesis),使用下面命令列出所有包含syn命令,

help *syn*

从展示的命令中选取一个,如psynopt

3.help -verbose psynopt
或help -v psynopt
help选项,-verbose,指详细选项

4.使用man命令,查看命令和它的选项
“man psynopt” or “man psyn[Tab]”

5.printvar 查找变量

printvar *library*

从包含library列表找到想找的变量target.library
printvar也会列出变量值

6.man查看命令manpage

man target_library
man target_l[Tab]

7.man可以查询错误信息

man PSYN-025

工具报错编号PSYN-025
8.退出ICC_shell:

exit
quit

至此Lab0A完成。

ICC学习——LAB0A相关推荐

  1. ICC学习——LAB1

    ICC学习--LAB1数据准备和基础流程 文章目录 ICC学习--LAB1数据准备和基础流程 Task1 创建Milkway库 Task2 载入netlist,TLU+,约束和控制 Task3 基础流 ...

  2. ICC学习——LAB2

    ICC学习--LAB2设计规划 学习目标: 1.定义核心和放置的行结构 2.定义信号,PG,corner pad的位置 3.插入filler pad cell 4.手动放置macro 5.应用宏放置约 ...

  3. ICC使用----ICC 1 Lab Guide学习笔记

    文章目录 Preface ICC 1 Lab Guide Note: 1.Data Setup & Basic Flow(P27) Learning Objectives Create a M ...

  4. 影像组学视频学习笔记(29)-ICC的计算、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学的系列教学视频 本节(29)主要讲解: 用pingouin包进行ICC的计算 1.ICC的wikipedia定义 In statistics, the in ...

  5. ICC 图文学习——LAB0:ICC图形界面

      解决了库的问题,开始上手跑lab了.在做lab的过程中,会补充一些相关的知识点和自己的学习笔记,加深理解,防止遗忘. LAB0:熟悉ICC图形界面 LAB 0A 1. 启动ICC 2. Layou ...

  6. ICC 图文学习——LAB1:Data Setup 数据设置

    LAB1:Data Setup 数据设置 1. 数据准备 2. 创建Milkway设计库 3. 读入设计(网表文件) 4. 设置TLU+文件 5. 读入SDC文件 6. 检查设计的合理性 1. 数据准 ...

  7. ICC 图文学习——LAB3:Placement 布局

    floorplan完成了芯片的整体规划后,需要对标准单元进行摆放.布局阶段主要内容包括: · 完成布局和时序优化的设置 · 完成DFT和功耗优化的设置 · 完成标准单元位置的摆放 · congesti ...

  8. ICC 图文学习——LAB2:Design Planning 设计规划

      这一步也可以叫floorplan(布局规划),对设计进行布局规划.floorplan的合理性直接关系到芯片的时序收敛.布线畅通.电源稳定以及良品率等.这部分内容非常重要,只有这一步做好了,后面成功 ...

  9. ICC 图文学习——LAB4:CTS 时钟树综合

      时钟树综合的定义:时钟网络从根节点逐渐插入驱动器(buffer.inverter)从而达到其叶节点,按照芯片时钟网络的约束要求产生时钟树的过程.   主要内容: ·完成时钟树的综合CTS(负载平衡 ...

最新文章

  1. 电商企业纷纷结缘信息化 管理系统如何给力?
  2. buu 密码学的心声
  3. 3.5.5 CSMA/CD 协议
  4. JUnit 4.9(测试版3)中的规则
  5. python数字类型floatcomplexint_浅谈python 四种数值类型(int,long,float,complex)
  6. PHP Yii2 composer环境安装
  7. UITableView自动计算图片的高度 SDWebImage
  8. 【第一部分】04Leetcode刷题
  9. TeamWork#3,Week5,The First Meeting of Our Team
  10. Linux音频驱动-IIS总线标准
  11. ApacheCN 活动汇总 2019.8.16
  12. laravel实现汉子转拼音
  13. winpe 能否修复服务器系统盘,U盘WINPE、光盘WINPE系统(启动修复盘)制作图文教程...
  14. matlab幂函数回归分析,求助matlab种幂函数回归 这样的:
  15. sublime text2配置文件详解(转)
  16. L1-7 机工士姆斯塔迪奥 (20 分),C语言
  17. 如何降低疾病监测的漏诊比率?一种新的分类学习算法...
  18. 电脑编程和计算机编程有什么区别,机器人编程与电脑编程有何区别?官方专家为你详细解说!...
  19. 2023最新自助下单彩虹云商城系统源码+免授权无后
  20. 苹果保修期多久_手机的寿命究竟有多久,您的换机周期是否会等到手机报废呢?|手机|电池|安卓手机...

热门文章

  1. 基于PIE-Engine的新疆地区棉花种植面积提取
  2. Python数据分析项目-共享单车骑行数据分析
  3. Express中res.render和res.redirect的区别
  4. 7-11 最长的单词
  5. 各种类型的电脑进入bios界面
  6. jquery实现HTML复选框变单选框
  7. 关于汽车悬挂系统减震控制的进一步研究(自动控制原理课程设计小论文)
  8. IBM发表未来5年5项科技预测 3D全息手机或现世
  9. linux libata初始化分析
  10. SQL中rand和order by rand()用法