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

  解决了库的问题,开始上手跑lab了。在做lab的过程中,会补充一些相关的知识点和自己的学习笔记,加深理解,防止遗忘。


LAB0:熟悉ICC图形界面

  • LAB 0A
    • 1. 启动ICC
    • 2. Layout视图导航
    • 3. 控制图层的可见性
    • 4. 选择和查询对象
    • 5. 获取命令和变量的信息
  • LAB 0B
    • 1. 配置窗口
    • 2. 平移和缩放的历史记录
    • 3. 选择列表、高亮显示和查询
    • 4. 分析时序路径
    • 5. 窗口管理

LAB 0A

1. 启动ICC

  1. 登录到Linux环境(安装好虚拟机,登录即可)
  2. 启动ICC之前,需要删除GUI窗口配置文件,因为这个文件保存了之前的GUI窗口设置(删除窗口配置并非必要操作)
rm ~/.config/Synopsys/icc_shell.conf
  1. 从当前目录更改到lab0_gui目录
cd lab0_gui
  1. 在Linux命令行下启动ICC
icc_shell
  1. 查看当前目录下的文件(其中-la表示将所有文件列出来)
icc_shell > ls -la

运行完后可以看到两个文件,分别是 .cmd(命令文件)和 .log(输出日志文件)。
其中,cmd文件记录所有命令和启动ICC调用的命令;log文件记录工具启动后的命令和命令的输出。
注:log文件命名可以在库设置文件 .synopsys_dc.setup 中定义。

  1. 打开ICC图形界面
icc_shell > start_gui   
#或
icc_shell -gui
  1. 从risc_chip.mw(MilkWay设计库)加载被放置的单元,步骤如下:
    a. 在主窗口中,点击左上角的黄色图标(如下图),或使用菜单命令File-Open Design
    在这里插入图片描述
    b. 在“Open Design”对话框中单击黄色文件夹图标,打开“Select Library”对话框。选择MilkWay库中带有橙色“L”图标的库文件(risc_ship.mw),并点击“choose”按钮(如下图)。
    在这里插入图片描述
    c. 在“OpenDesign”对话框中显示了被存储的CEL。由于列表中只有一个单元,已经被选中(蓝色高亮显示),点击“OK”,打开Layout窗口,如下图:
    ICC 图文学习——LAB0:ICC图形界面_第1张图片
    ICC 图文学习——LAB0:ICC图形界面_第2张图片

  2. 将Main窗口放在前面,查看窗口底部的命令记录,回答以下问题:
    问题1:执行了什么命令去打开placed cell?(提示:在命令行内按上下键,查看之前输入的命令)
    答案:open_mw_cel placed.(如下图)
    ICC 图文学习——LAB0:ICC图形界面_第3张图片
    注:查看命令文本对初学ICC命令者非常有用。

  3. 将Layout窗口前置,并使窗口最大化。

  4. 点击小写 [ F ] 键,使布局图处于窗口最大化,如下图:
    ICC 图文学习——LAB0:ICC图形界面_第4张图片
      现在看到的是CEL design的布局图,属于rsic_chip.mw设计库的一部分。在layout的外围,IO PAD单元(浅蓝色矩形)围绕在core(色彩鲜亮)的四周。在core和IO PAD区域之间有绿色和红色的金属线组成环状,叫做power ring(由一根VSS和一根VDD组成)。
    ICC 图文学习——LAB0:ICC图形界面_第5张图片
      为了更好的进行供电,在core内会有纵横交错的straps(如上图)。其作用是为了将电源输送到芯片内部各个macro上,减小IR drop
    ICC 图文学习——LAB0:ICC图形界面_第6张图片
      图中紫色的方框是标准单元,其放置在row上。蓝色的金属线条是power rail,主要给标准单元供电。
    注:row是由site组成的,一般是site的整数倍,它对std cell的摆放起着限制作用。site定义的是最小的布局单位,如下图:
    ICC 图文学习——LAB0:ICC图形界面_第7张图片


2. Layout视图导航

  1. 首先熟悉一下Layout窗口的缩放 (zoom)和平移(shift+p)按钮。在平移和缩放时,注意Overview Window窗口中黄色矩形的变化。
    ICC 图文学习——LAB0:ICC图形界面_第8张图片
    注:点击“Selection Tool”(白色箭头图标)或按[Esc]键,退出缩放和平移模式,此时光标变成“箭头”形状。
    在这里插入图片描述
    问题2:带有 " 2 " 的放大镜图标和带有 " + "的图标有什么区别?
    回答:“2”表示放大两倍,“+”表示普通放大。
  2. 当Layout窗口被打开时,快捷键和热键均可使用。小写字母 [ f ] 或 [ Ctrl+F ] 对应于 " zoom fit all " 功能(全视图)。[ Z ] 表示 " zoom in " (放大)功能。
  3. 其他热键的定义,可以通过下面两种方式来了解:
    a. 将鼠标悬停在按钮上,将出现一个 " 帮助气泡 ",显示该按钮的功能名称和键盘快捷键。
    b. 通过Help—Report Hotkey Bindings路径,将会打开一个新窗口,列出热键的定义。可以通过该窗口右上角的 " X " 或 [ Ctrl+w ] 来关闭这个窗口。
  4. 少数人喜欢用鼠标进行 " 平移 " 和 " 缩放 " ,而不是快捷键或按钮。
    具体使用方法:按住鼠标中键(约3秒),会出现功能菜单,然后移动鼠标进行选择即可,如下图:
    ICC 图文学习——LAB0:ICC图形界面_第9张图片
  5. 键盘方向键也可以用来进行平移操作。
  6. 鼠标滚轮也可以用来进行缩放操作(每滑一次,都进行放大/缩小两倍)

3. 控制图层的可见性

在view setting面板,可控制对象的是可视性/可选择性,如下图:
ICC 图文学习——LAB0:ICC图形界面_第10张图片
接下来,我们将一次打开一些关键对象的可视性,以便清楚的看到它们所代表的内容。首先,在 " 设置 " 的下拉菜单中,选择 " Auto apply"(确保选择立刻生效)。
ICC 图文学习——LAB0:ICC图形界面_第11张图片
 a. 在Vis栏(可视化),取消所有选项,保留cell(只显示std cell、macro、IO PAD),如下图:
ICC 图文学习——LAB0:ICC图形界面_第12张图片
 b. 再选择Pin,可以发现输入、输出和电源连接引脚被显示出来,如下图:
ICC 图文学习——LAB0:ICC图形界面_第13张图片
 c. 检查route,所有的金属线都可见,如下图。(因为设计还未布线,目前只能看到电源地的 " 预布线 ",如power ring、power straps、power rail)
ICC 图文学习——LAB0:ICC图形界面_第14张图片
 d. 检查标签。(单元和实例的名字变得可见,通过点击左边的 " + "图标展开标签。检查Pin,利用 [ Z ] 查看标准单元,会发现它的Pin名字变得可见,按 [ F ] 键将视图适合于窗口)
 e. 选择Layers选项卡,可以在图层的基础上进一步微调可见性。(在METAL(14)行和 " shape "列的交叉处,点击带有对角线的蓝色正方形,蓝色水平的金属线消失了)
ICC 图文学习——LAB0:ICC图形界面_第15张图片
 f. 在点击一次,使得metal1再次可见。
 g. 选择Objects选项卡,并重新应用初始的设置。
问题3:可视性Vis和可选择Sel栏有什么区别?
回答:“Vis”表示可视,显示对象。“Sel”表示可选择,只有可视的才可选中。
 h. 选择Layer选项卡,使用颜色和填充模式回答一下问题:
问题4:红色水平power straps在哪一层?写出名称和编号
回答:METAL3(22)
问题5:绿色的垂直power straps在哪一层1?写出名称和编号
回答:METAL4(26)
 可以通过将鼠标悬停在straps上,在左下角会出现一个query窗口,它会显示关于对象的详细信息。(tip:也可通过小写的[q]键,查询详细信息

4. 选择和查询对象

  1. 选择对象:想要选择对象,鼠标光标必须是箭头,表示 " 选择模式 "。若光标不是箭头形式,可通过点击 " 箭头 " 按钮或 [ Esc ] 键获得。
  2. 用鼠标左键点击不同的单个对象,选中的对象将以白色高亮显示,直到取消选中或选中其他对象。
  3. 下面将介绍3种方法来取消所有选中的对象:
     a. 单击Layout中的任意空白区域(简单高效)
     b. 使用菜单 " Select "— " clear "
     c. 输入 [ Ctrl+D ]
  4. 用鼠标左键绘制一个矩形,来选择同一区域内的多个对象。
  5. 按住 Ctrl 键,用鼠标左键选择其他对象,可保留当前选中的对象,并选择其他对象。
  6. 当多个对象叠加时,可通过多次单击鼠标左键,直到所有对象被高亮显示。也可点击红色水平straps和绿色垂直straps的交叉处。
  7. 放大Layer到蓝色的核心区域,可通过拖到选择框来选择一些std cells。
  8. 若被高亮显示(选中)的单元很难被显示,可通过降低未选中单元的亮度,来增加对比度,突出选中单元。如下图:
    ICC 图文学习——LAB0:ICC图形界面_第16张图片
  9. 查询对象,有两种方法如下:
     a. 一般情况下,当鼠标悬停在对象上时,对象会微亮显示,左下角会出现一个窗口,显示对象的一些关键信息。
     b. 若要获得完整查询,先选中对象,然后输入小写字母 [ q ] 或使用菜单 " Select—Query Select ",进行查询。
  10. 通过点击右上角的 "— "(隐藏)按钮来关闭查询窗口。
  11. 关闭Layout窗口。从主窗口或Layout窗口点击 " File—Close design ",来关闭当前的Layout。若出现 " 关闭设计 " 窗口,单击 " Discad All " 来关闭设计且不保存。
  12. 关闭GUI命令。(ICC工具还处于打开状态)
stop_gui 
#或 
gui_stop

5. 获取命令和变量的信息

  1. ICC可通过 [ Tab ] 键来补全命令名、变量名、文件名和命令选项。在ICC shell命令行中尝试以下操作:
h[TAB]e[TAB]-v[TAB] help[Ennter]

ICC 图文学习——LAB0:ICC图形界面_第17张图片

  1. 若要查看命令或变量的手册页,需要输入完整的命令或变量名称。在不确定准确的名称是什么时,可以使用help命令结合通配符 " * ",来查找命令,变量用printvar进行查找。
    如:若想寻找关于某个优化命令的更多信息,但不记得具体的命令名,只记得它包含字符串 " syn "(synthesis)。可以使用下面命令列出所有包含此字符串的命令:
help *syn*

ICC 图文学习——LAB0:ICC图形界面_第18张图片
从显示的命令列表中,选取你想要的命令即可。

  1. 若要列出psynopt的option,使用verbose选项。
help -verbose psynopt  
#或
help -v psynopt
  1. 使用man命令,获得完整的命令及其所有选项的详细描述
man psynopt  
#或
man psyno[Tab]
  1. 查找变量:printvar。(从列表中找到目标library)
printvar *library*
  1. 用man获得变量的完整帮助手册。
man target_library  
#或
man target_l[Tab]
  1. man还可以查询错误信息。(输入报错编号即可)
man PSYN-025
  1. 最后,退出ICC工具。
exit  
#或
quit

LAB 0B

1. 配置窗口

  1. 将当前目录改为lab0_gui,并调用ICC GUI
cd lab0_gui
icc_shell -gui
  1. 从risc_chip.mw设计库中加载被放置的单元。(File—Open Design)
    ICC中有多个窗口,如Main Window和Layout Window(还有更多)。这些顶层窗口可以有多个 " 视图 " 或子窗口。默认情况下。Layout Window包含一个 " 视图窗口 " (微型单元格视图)窗口和一个 " 视图设置 " 面板。这些子窗口和视图可以按照自己喜欢的方式任意摆放,可以通过以下方法来实现。
  2. 右击View Setting面板的顶部边缘(两条水平线)来取消视图设置面板的固定,并选择 " 浮动 ",此时面板可以移动到任何位置。
    ICC 图文学习——LAB0:ICC图形界面_第19张图片
  3. 右键面板顶部边缘,选择Dock再次停靠面板。
  4. 关闭View Setting面板的方法:单击面板右上角的 " Hide "图标,或右键单击顶部边缘并选择 " Hide "。
  5. 重新打开View Setting窗口的方法,单击 [ F8 ] 键。
  6. 在一个布局窗口中显示多个 " 布局视图 “。” View—New Layout View " 打开新的布局视图。通过 " Window—Tile Views " 或 " Cascade Views " 实现级联或平铺。如下图
    ICC 图文学习——LAB0:ICC图形界面_第20张图片
  7. 关闭其中一个布局视图。点击一个视图右上角的 " X " 即可。

2. 平移和缩放的历史记录

  1. 若工具栏中没有 " history buttons ",右键单击工具栏,选择 " Zoom and Pan History " ,则会添加到工具栏中。
    在这里插入图片描述
  2. 更改工具栏的默认位置。用鼠标左键点击 " 双垂直栏 " 进行拖动。在这里插入图片描述

3. 选择列表、高亮显示和查询

  1. 选择列表:
    放大到布局的蓝色核心区域,并选择4或5个std cells。
  2. 把亮度降到50%。
  3. 将选择单元以列表形式显示出来:路径:Select—Select List。
  4. 使用 " Select/Deselect " 从列表中删除所选择的单元。可以使用 " Shift/Ctrl " 选择多个单元。
    ICC 图文学习——LAB0:ICC图形界面_第21张图片
  5. 高亮对象:
    找到工具栏中的 " 黄色矩形 " 图标,点击下拉菜单并选择红色,然后点击 " 笔状 " 图标,来高亮的选择单元。输入 [ Ctrl+L ] 键调出列表。若想看到单元高亮的颜色,只能取消选择单元或单击空白区域。
    ICC 图文学习——LAB0:ICC图形界面_第22张图片
    问题1:选择列表窗口中是否包含高亮显示的对象?
    回答:这个列表只跟踪被选中的对象,而不包含高亮显示对象。
    通过单击 " 清除高亮显示 " 按钮或 [ Ctrl+M ] 来清除高亮对象。
  6. 查询对象:
     a. 默认情况下,光标悬停在单元上,左下角会出现一个窗口,显示该对象的一些关键属性。
     b. 获得完整信息,输入小写字母 [ q ] 或Select—Query Selection路径。
  7. 关闭查询窗口,单击右上角的 " Hide " 按钮。
  8. 若想查询多个对象,点击工具栏中 " i " 图标,或 [ Ctrl+Q ],光标变成 " i " 形状,按 [ Esc ] 退出查询工具。
  9. 最后一种查找对象信息方法:" Edit—Properties " 或 [ Ctrl+R ] ,该方法也可以更改对象的属性。(标准单元)
    ICC 图文学习——LAB0:ICC图形界面_第23张图片
  10. 点击向左向右蓝色箭头,依次选择每个项目,再选择 " All " 框,查看所有选择项的相同属性。
  11. 取消属性对话框去, [ Ctrl+D ] ,并输入 [ f ] ,亮度调至100%。

4. 分析时序路径

  1. 高亮显示关键路径:选择下图中的Path Slack。
    ICC 图文学习——LAB0:ICC图形界面_第24张图片
  2. 单击弹出对话框中的 " Reload " 。
  3. 单击警告框中的 " 确定 " 按钮。
  4. 单击Paths Slack中的 " OK " 按钮。可以看到多条彩色的线条,其中最关键路径(最不松弛)用粉色高亮显示,在命名为IO PAD_0处结束。
    ICC 图文学习——LAB0:ICC图形界面_第25张图片
  5. 在布局图和原理图之间显示:选择上面提到的IO PAD_0。
  6. 输入 [ Ctrl+` ] ,将Main Window前置并最大化。
  7. 选择Schematic—New Path Schematic View—Of Selected Logic。可以看到一个IO pad缓冲器。
    ICC 图文学习——LAB0:ICC图形界面_第26张图片
  8. 双击原理图窗口实现最大化,并输入[F]键。选中显示的门,然后右键选择 " Next Fanin/Fanpot Level " 可以看到门单元(双击门好像也可以实现)。
  9. 取消原理图中选中的对象(白色高亮显示):单击背景区域或输入 [ Ctrl+D ] 。
    ICC 图文学习——LAB0:ICC图形界面_第27张图片
  10. 在原理图中,点击右边的缓冲器(IO pad_0),Layout中的IO PAD_0也高亮显示。ICC 图文学习——LAB0:ICC图形界面_第28张图片
  11. 在原理图中,使用 Crtl 或者鼠标左键的矩形,选中不同的对象,在Layout中也将高亮显示。
  12. 观看整个路径。右击初始逻辑门,选择 " Add Logic—Paths ",在弹出的对话框中,点击OK,就会显示最关键(最坏)路径。
    ICC 图文学习——LAB0:ICC图形界面_第29张图片
  13. 生成整个设计的原理图:首先按 [ Ctrl+D ] 清除Main Window中选中的对象,再选择菜单栏中的Schematic—New Design Schematic View。将打开显示顶层原理图的窗口。
    ICC 图文学习——LAB0:ICC图形界面_第30张图片
  14. 这个原理图包含了一个顶层实例I_RISC_CORE,及一些逻辑门。点击该instance(原理图左侧矩形),检查右下角 " Cell " 的名称以确认该实例被选中(如上图)。双击I_RISC_CORE内部,可向下遍历层次结构并查看其原理图。
  15. 返回顶层原理图级别,单击 " 向上 " 图标。
  16. 使用Timing Window进行时序分析:用于显示分析Paths Slack列表来检查设计的时间质量。
    在Main Window窗口中选择Window—New Timing Analysis Window,然后点击 " OK " ,打开Timing Window对话框。
  17. 使新窗口最大化。拖到松弛列表,将其向右展开,可以调整列宽和排序。
  18. 左键单击列表中Slack最小的路径,蓝色高亮显示。在Layout窗口和Main窗口,关键路径均高亮显示(白色)。
  19. 在Timing窗口可生成直方图、原理图和定时分析器。
    ICC 图文学习——LAB0:ICC图形界面_第31张图片
    单击Schematic按钮,高亮显示路径的示意图将在出现在新窗口(右上角)或新选项卡中。单击Histogram按钮,将出现一组直方图对话框。 [ Ctrl+D ] 清除高亮显示路径。
    ICC 图文学习——LAB0:ICC图形界面_第32张图片

5. 窗口管理

  1. 可以同时打开多个Main 窗口、Layout窗口和Timing窗口,也可以打开多个设计,并进行切换。(使用 [ Ctrl+` ] 进行切换)
  2. 在Main窗口或Layout窗口中使用File—Exit—Discard All退出ICC工具。
    ICC 图文学习——LAB0:ICC图形界面_第33张图片

    总结:
     1. 熟悉ICC图形界面的简单操作:
      a. ICC的启动与退出(启动:icc_shell/icc_shell -gui;退出:exit)
      b. 学会如何去加载设计(若出现打开设计失败,查看是否解压环境有问题)
      c. 熟悉Layout窗口的缩放和平移操作(多种方法,如滚动滑轮、命令 Z 或 f、及对应的图标)
      d. 学会使用View Setting面板,控制对象的可视性
      e. 学会选择和查询对象(选择:鼠标左键单击,或右键拉出矩形框选;查询:悬停在对象上或输入 q 键)
      f. 学会获取命令和变量的信息(Tab补全命令, helpman 可获取命令与变量的详细信息,这两个会经常用到)
     2. 深入了解ICC 图形界面的附加特性:
      a. 学会配置GUI 的窗口(拖动面板进行位置摆放,打开多个Layout窗口)
      b. 学会将选中对象以列表形式显示出来,并进行高亮显示和信息查询
      c. 学会如何去分析时序路径(个人认为这一块比较重要,应着重关注)

不积硅步,无以至千里;不积小流,无以成江海

你可能感兴趣的:(ICC,图文学习,asic,芯片)