Setup With Library

Notes

在DC 优化过程被用来映射的logic library被称作target library,target library包含生成netlist的cells 以及操作环境(PVT)的定义。

target library 是link library的子集,而Link library 被用作计算时序和路径延时,常被用在DC 中的compiler和translate

在DC Ultra中,用户可以自己创建伪库,ALIB,用来将设计中的布尔等式映射成gate cell

库文件要求

target library
包含cell的功能与特征,也可能存在必须满足的要求,DRC、PVT

常用库的模型

1
2
NLDM: nonlinear delay models-非线性延时模型
CCS: Composite Current Source-fu电流源
使用Logic library的场景
  1. 实现设计功能——target library
  2. 解析cell reference——Link library
  3. 计算时序和路径延时——Link library
  4. 计算功耗——Power Compiler

在link library中找到的第一个库文件会被认为是main library,而这个库中的物理信息,PVT等会被用于设计,以及时序和路径延时计算

Target Library被用于Mapping 设计功能,并找出对应的gate cell,因此在指定target library中的内容时,library应该是在DC Mapping 阶段使用到了standard cell library,对于其他种类的library不应该被应用在target library中。

Link library 实在compile阶段,将设计实例化成库单元,这个过程可以称作link library或者resolving design

在DC综合过程中相关变量如下;

link_library

local_link_library,这个变量会被添加在link_library中的library文件,DC会首先在这些文件路径resolve design

DesignWare Library

这个库是一个可重用电路设计模块,被集成在Synopsys综合环境中,可以用来对算术运算符,if,case等语法进行转换,获得最好的速度和面积优化。

可以通过指定变量synthetci_libraray,指定使用用户自定义的DesignWare Library

此外,DC会自动连接软件中默认的DesignWare Library,一般用户可以不设置该变量,当用户自行添加DesignWare lib时,则需要定义变量,并在link library列表中添加变量

Physical Library-Milkyway

在DC topographical 模式下,需要指定physical library,在综合阶段使用的是Milkyway design library

输入需要创建Milkyway library: Milkyway referece library, Synopsys technology library

其中MikywayReference Library 主要用在物理实现的standard cell 和 Macro的信息。

Synopsys technology library : 主要是设计的布线信息

几个库文件定义的技巧

需要定义target librarylink library 等变量,一般link library以* 开头,表示link 内存中存在的库文件

TLU+ Fiile : 更加准确的RC参数预估

Milkyway Library = Milkyway reference library + Synopsys technology file

在操作中创建Milyway命令

1
2
3
create_mw_lib -technology $my_technology -mw_reference_lib $my_reference $my_design_library  # 创建Milkyway,并赋给变量$my_design_library

open_mw_lib $my_design_library # 创建Milkyway Lib

TLU+ File 只能在拓扑模式下运行,文件包含电阻电容值查找表以及超深亚微米工艺影响模型,提供了更加精确的RC 参数模型,改善综合对后端的影响,提高设计质量。此外,也可以使用 nxgrd file 来替代 TLU+ file 。

Working with Library

加载库文件

1
2
read_file my_lib.db # 加载标准单元库
read_file my_slib.sdb # 加载用于symbol的library

库文件中.db 文件用在logic library,.sdb 用在symbol library

显示库文件信息

1
list_libs  # 用来显示在内存中库文件信息

不使用库文件中某些单元

1
set_dont_use my_lib/INV_HD  # 在库单元INV_HD上设置 dont_use,DC识别此变量之后不在使用该单元

验证库文件一致性

1
2
3
4
5
6
7
check_library # 检查库文件一致性
# 检查事项
# logic library的一致性
# logic 和 physical 的一致性
# physical 和 technology 的一致性

# 实际上DC工具检查的对象是link library 和 Milkyway之间的一致性

Target Library Subset3

1
set_target_library_subset  #可以用来指定特定模块使用的target library,这个ibrary被称作子库

在层次结构指定子库,会默认重写所有更低层级的cells, 但在 指定target library的模块设计,不能够被打散

1
2
3
4
check_target_library_subset # 检查子库设计需求
report_target_library_subset # 报告设计中已经应用子库的信息

remove_target_library_subset # 移除设计中应用的子库设置

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!