Library Data Preparation for ICC---1

来源:互联网 发布:费米估算法怎么用? 编辑:程序博客网 时间:2024/05/17 02:04

Library Data Preparation for ICC

   本片笔记来源: Library Data Preparation for IC Compiler User Guide ,主要介绍如何   使用ICC和Milkway工具准备用于物理实现芯片设计的库。分为三个部分:
- Milkway库
- 来自GDSII和OASIS的数据库准备
- LEF / DEF的数据库准备,
- 单元库准备
- 库检查

Library Data Preparation

   在使用ICC工具之前,必须创建逻辑库和物理库,以准确反映可用技术和将用于制造芯片的单元格的特性。 物理库由外部源提供的布局数据准备。

ICC中使用到的库

   ICC完成物理实现,包括布局,时钟树合成,布线和芯片设计优化。 要完成这些任务,它需要读入设计网表(netlist)和物理库(phyical library)和逻辑库(logical library)。 这些库包含有关设计网表中使用的单元Cell的信息。
   物理库包含库单元几何信息,这些信息主要是单元设计中放置并与电源地,时钟和信号线连接。 该库信息包括单元格尺寸,边框,引脚位置和掩模层,以及技术信息,如线轨,天线规则和电迁移数据。
   逻辑库包含关于这些单元的功能信息,包括逻辑功能,时序特性和功率特性。ICC工具根据物理特性和时序,功率,噪声和信号完整性要求对设计进行分析和优化。

Physical Library

   在典型的ICC流程中,物理库信息包含在Milkyway数据库中,即Synopsys Galax实施平台的统一设计存储格式。 Galaxy工具如Design Compiler,IC Compiler和Formality可以访问数据库中包含的设计和库信息。 数据库不仅包含叶级物理单元信息和技术信息,还包含设计特定的物理信息,如设计的布局和布线。

   当ICC处于后端设计阶段,执行操作如布线,引脚分配和层次平展等;在Milkyway数据库中创建额外的临时视图。 在完成每个任务后,它会清空或删除这些视图。 在执行任务期间,您可以在Milkyway库的目录结构中看到这些视图。 但是,除了任务异常终止的情况外,您不应尝试修改或使用ICC工具以外的这些视图。 可以安全地删除名为ROUTE,PINASSIGN和SMASH的视图,以便从头开始重新启动相应的进程。

Logical Library

   逻辑单元,时序和功耗信息通常包含在一组由Library Compiler生成的Synopsys数据库(.db)文件中。 库的创建者通过使用诸如Liberty NCX之类的基于模拟的表征工具与诸如HSPICE的电路仿真器结合来确定叶级单元的电气行为。 表征工具以Liberty(.lib)格式生成一组文件。

在ICC工具中,通过设置来指定要用于设计的.db文件search_path,target_library和link_library变量:
  - search_path: search_path变量指定可以找到工具所需的.db文件和其他文件的目录路径。
  - target_library: target_library变量指定包含可用于优化的逻辑单元的.db库文件,例如具有各种面积,驱动强度,延迟和功率使用的不同NAND门。
  - link_library:link_library变量指定包含在执行链接命令期间可用于解析设计中的分层引用的所有逻辑单元的.db库。

 local_link_library的设计属性(非变量)可用于指定可用于设计链接的其他库。 可以使用set_local_link_library命令进行设置.
   逻辑库中单元格的名称必须与Milkyway数据库中物理库中相应单元格的名称相匹配。 您可以使用check_library命令来验证逻辑和物理库是否正确匹配。

Milkyway Environment Tool

注:关于Milkway更加详细的知识笔记见 Milkway DataBase。
  Milkyway环境工具完成将外部源提供的布局数据整理成物理库的独立后端工具。

Milkway的启动命令:% Milkway -galaxy -tcl

GUI菜单命令条目

  通常,会话中采取的第一个操作是打开现有的Milkyway库。 为此,选择 Library > Open,显示打开库对话框,如图Figure 1所示:
@Figure 1 Library > Open Dialog Box

  你可以在提供的文本框中输入Milkyway库名称和库中的目录路径,也可以从目录树中浏览并选择Milkyway库。 单击“Browse ”按钮将打开“Browse Library”对话框,如图Figure 2所示:
@Figure 2 Browse Library Dialog Box

  您可以浏览目录树找到所需的Milkyway库。 每个Milkyway库都显示为标有“L.”的棕色文件夹。选择所需的Milkyway库,单击“Hide”以关闭“Browse Library”对话框,然后在“Open Library”对话框中单击“OK”打开库。

  下一个动作可能是打开单元Cell。 为此,请选择Cell > Open,显示Open Cell 对话框。 然后单击 “Browse”按钮打开 “Browse Cell”对话框,其中列出了开放的Milkyway库和其他引用的Milkyway库,如图Figure 3所示:
@Figure 3 Cell > Open and Browse Cell Dialog Boxes

  从右侧的库列表中,选择所需的Milkyway库。 该库中包含的单元显示在单元列表中。 选择所需的单元,单元名称将显示在“ Open Cell ”对话框中。 单击”Hide”以关闭“Browse Cell”对话框,然后单击“OK”打开单元格。

  打开单元格,Milkyway环境工具会在新窗口中以图形方式显示单元布局,如图所示:
Figure 4 Cell View Window

  窗口顶部的标题栏显示单元的全名,访问类型(只读或写入)以及包含单元格的Milkyway库的名称。
system_controller_clock.CEL;1 [ write ] Lib: system_controller_mw

  在此示例中,Milkyway库名称为system_controller_mw,单元名称为system_controller_clock.CEL;1。 单元格视图类型为CEL,单元格版本号为1。

  要关闭当前打开的单元格,请转到主要的Milkyway环境窗口,然后选择Cell > Close。 这将打开关闭窗口对话框,如图Figure 5显示的对话框
Figure 5  Cell > Close Dialog Box

Creating New Milkway Library

  Milkway库准备的第一步就是创建一个新库。您必须拥有一个技术(.tf)文件来指定库的基本参数,之后添加到库的单元必须与该技术文件(tech file)保持一致。
  首先, 创建一个新的Milkway库需要使用Milkway工具完成,启动Milkway工具,在菜单栏选择Library—>Create,将会打开Create Library对话框。如图Figure 6所示:
Figure 6 Library > Create Dialog Box

  输入新的库名称,关联技术的名称(.tf)文件和层次结构分隔符。 然后单击确定创建库。
  库名必须以字母字符开头。 其余字符可以是字母,数字或下划线字符。
  层次分隔符必须是以下之一:/。| #@ ^

Library Preparation Using GDSII and OASIS

要从物理单元数据准备一个Milkyway参考库,您可以将数据作为GDSII或OASIS数据流导入到Milkyway环境工具中,并将该数据转换为Milkyway数据库格式。

GDSII to Milkyway

  GDSII流格式是集成电路布局信息的行业标准数据交换格式。 GDSII文件包含有关单元或芯片布局的layers,wire paths,boundaries,structures, arrays, and text labels 。

  当外部源提供GDSII格式的库单元信息时,需要将数据文件读入Milkyway环境工具,并将数据流转换为Milkyway数据库中的单元库。除了GDSII文件,通常还提供单元类型的定义文件图层映射文件,以指定如何翻译数据。

  您可以使用GUI或read_gds Tcl命令,将GDSII文件读入Milkyway环境工具。 要使用GUI,请选择 Cell Library > Stream In。 这将打开“Stream In Data File”对话框,其中显示了读取GDSII数据并将数据转换为Milkyway数据库格式的选项,如图所示:
Figure 7 Cell Library > Stream In Dialog Box

  至少需要指定”Stream File Name”,该文件名是要读取的GDSII文件的名称。以及“ Library Name”,它是存储翻译数据的Milkyway参考库的名称。 您可能还需要提供以下附加信息:

  • A cell-type definition file
    用于标识单元格类型:标准单元格,填充单元格,填充单元格,宏类等。Cell功能影响物理数据到Milkyway格式的转换。 如果未提供此文件,则假定所有单元格为标准单元。
  • A layer mapping file
    用于标识GDSII和Milkyway数据库格式中相应的层名称。 如果未提供此文件,则GDSII数据流中定义的图层名称将保留在Milkyway数据库中。

  一些对话框选项指定如何处理已经存在于Milkyway库中的单元。 其他人决定如何处理层映射文件中未定义的单元格边界层和图层。 有关每个选项的详细说明,请参阅计划命令auStreamIn的Milkyway Environment在线帮助。

  在设置完成对话框的选项之后,单击OK。Milkway工具将会读入GDSII数据流,并对每一个单元创建CEL View,将这些Cell存储到指定的Milkway库中。

Cell-Type Definition File

  GDSII或OASIS流文件包含有关库单元的物理信息,但不指定单元类型。 Milkyway数据库需要单元类型信息,以便它可以正确处理单元供IC Compiler工具使用。

  您可以在文本文件中指定单元格类型。 该文件包含单元格类型列表和与该类型匹配的GDSII或OASIS数据流中的单元格名称。 例如,考虑以下简单的单元格类型定义文件:

gdsMacroCell BLOCK1 BLOCK2gdsOtherCell TEST VIA1 RCAP FEED2gdsStandardCell *

  该文件将单元BLOCK1和BLOCK2识别为宏单元格,单元TEST,VIA1,RCAP和FEED2以及“其他”类型的单元,所有其他单元作为标准单元。在之后的数据库准备流程中,每种类型的单元接收不同类型的处理。 “其他”类别中的单元将转换为Milkyway格式,但不会进一步处理。
  未列在单元格类型定义文件中的GDSII或OASIS数据流中的任何单元都将被视为标准单元。 在没有单元类型定义文件的情况下,所有单元格都被视为标准单元。

通常,单元格类型定义文件包含以下格式的语句:

cellType cellNameListcellType cellNameListcellType cellNameList...

Table 3-1 Cell-Type String in Cell-Type Definition File

Cell-type string Description of cell type gdsStandardCell Standard cells gdsMacroCell Macro cells gdsCornerCell Corner cells gdsPadCell or gdsIOCell Pad cells gdsStdFillerCell Standard filler cells gdsPadFillerCell Pad filler cells gdsFCDriverCell Flip-chip drivers gdsFCPadCell Flip-chip pads (bumps) gdsTapCell or tapCell Tap cells, which are physical-only cells that have only power and ground pins and no signal pins gdsOtherCell Other cells such as feedthrough cells, vias, transistors, and top-level cells, which are not processed further

Milkway GUI界面,你可以定义或重定义已经存在的Cell Type File通过选择: “Cell Library—> Mark Cell Type

Layer Mapping File

  布局数据库中的每个几何对象都具有相关联的层号和数据类型编号。 在GDSII和OASIS格式中,层号和数据类型为0到32767之间的整数。Milkyway数据库支持较窄的数字范围:

  • 默认层模式:层1到255,数据类型0到4095
  • 扩展层模式:层1到4000,数据类型0到4095

  默认情况下,在从GDSII或OASIS到Milkyway格式的物理数据转换期间,Milkyway数据库已支持的较低层数字保持不变。 当Milkaway数据库中的任何GDSII和OASIS图层或数据类型编号不受支持时,必须将其转换为支持的数字。

  默认层模式下的Milkyway数据库仅支持最多布线层187。 如果GDSII或OASIS数据库使用更高的布线层号码,则这些层必须映射到不高于187的数字。该限制不适用于Milkyway扩展层模式。

  通过在文件中指定所需的图层到层次映射,更改图层编号或数据类型,并在“Cell Library > Stream In”对话框中,Milkyway环境工具中read_gds或read_oasis命令调用该文件 ,或ICC工具中的set_read_stream_options命令。

Layer Mapped file格式:

MilkywayObjType[MilkywayNetType][PinCode]    MilkywayLayer[:MilkywayDataType] GDSIILayer [:GDSIIDataType]

  此格式的图层映射文件可用于导入和导出操作。MilkywayLayer可以是图层名称或编号。
还有一些只针对导出的语法:

MilkwayObjTypeMilkwayNetTypePinCode

  为向后兼容,还支持以下映射文件语法,仅用于流入(不是流出)。语法如下:
MilkywayLayer[:MilkywayDataType] GDSIILayer[:GDSIIDataType]

例如:
A 12:3 35:4
在导入Milkway过程中,会忽略字符A,将层数35,类型4的GDSII数据转换为Milkway层号12,数据类型3.

向后兼容语法例子:

44 36:3 45:3 36:6  

将层数36,类型3的GDSII数据转换为Milkway层号44
将层数36,类型6的GDSII数据转换为Milkway层号45,类型3

  在每行中,第一个数字是Milkyway层号,它应该是与目标Milkyway库相关联的技术文件中定义的层号。 如果层号后跟冒号和另一个数字,冒号后面的数字是Milkyway数据类型号,它必须是0到4095之间的整数。

  下一个数字是GDSII或OASIS层号,它必须是0到32767之间的整数。如果层号后跟冒号和另一个数字,冒号后的数字是GDSII或OASIS数据类型,必须是 0到32767之间的整数。

OASIS to Milkyway

  您可以使用GUI或read_oasis Tcl命令,将OASIS文件读入Milkyway环境工具。 要使用GUI,请将命令输入模式设置为Scheme,并输入Scheme命令read_oasis。打开“Oasis In Data File”对话框,其中显示了读取OASIS数据并将数据转换为Milkyway数据库格式的选项。需要的文件和GDSII一样的。

原创粉丝点击