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完成。