天天看点

IC设计逻辑综合2——综合库介绍Library Types

Library Types

Logic  Libraries(综合过程中,设置时序库)

  • Link  library      (Design Compiler中的关键字,link_library,set link library为多少)
  • Target  library(Design Compiler中的关键字,target_library,set target_library为多少)

Symbol  Libraries(表示图形的库,不用这个库,GUI打开电路图,cell都是用方块表示,不能通过形状判断与门或者或门)

DesignWare  Libraries(工具把常用的单元做成标准的库,让工具分析代码自动选择)

Physical Libraries(物理信息。例如一个cell长什么样子,pin在哪里,位置在哪。依赖floorplan信息做综合是必不可少。还有其他信息,如,technology route要求,金属层多少,走线方向,线宽等等)

Logic library  (时序库)

Logic libraries

        由foundry厂维护和提供,依赖自身生产工艺,做出参数提取,抽取时序信息,给用户提供库文件。foundry 厂把cell的布局布线信息给用户,用户可以自己抽取库中的时序信息,自己创建library。

Logic libraries内容:

时序库包含两个主要内容:timing table和function信息。

logic libraries包含有关每个cell的特征和功能的信息,例如:

  • cell names, pin names(每个foundry厂对cell、pin的叫法不一样)
  • area, power 信息
  • delay arcs(即timing arc,描述延时信息,描述延时检查检查类型)
  • pin loading(例如input pin 和output pin load是多少)
  • Constraints (logic DRC:max_transition / max_fanout / max_cap。库里面最大的transition不能超过某个值,如果cell超过这个值,说明这个库不适合用了。工具会依据库中定义的和人为定义的信息,进行检查,选择最悲观的,计算)

logic libraries实现设计功能(AND、OR、NAND、DFF…)(功能描述)

logic libraries计算时序值和路径延迟、功率(依据timing table计算)

logic libraries Resolving cell reference

logic libraries中不同type:

  • NLDM
  • CCS

Symbol Library

        Symbol Library(( 由半导体供应商维护和提供))包含在设计原理图中表示库单元的图形符号的定义。

        Design Compiler 使用Symbol Library来生成原理图。

        使用 Design Vision 查看原理图。

        Design Compiler 安装包括一个默认Symbol Library文件 generic.sdb,位于 $SYNOPSYS_ROOT/libraries/syn 目录中。

        使用 symbol_library 变量指定

DesignWare Library  

 DesignWare定义: 

        DesignWare Library是一组可重复使用的电路设计构建块(组件),它们紧密集成到 Synopsys 综合环境中。 【Synopsys 针对常用的逻辑电路,做出模块,coding中有使用到匹配的逻辑电路,依据人为加的constraint做替换。工具依赖这些constraint 做选择。】

        在综合期间,Design Compiler 从 DesignWare Library中选择具有最佳速度和面积优化的组件。(工具依赖加的constraint文件,自动做选择,匹配面积还是速度优先的模块。也可以人为定义变量,人为去选择designware。比如一些时序要求很高的模块,CPU,选择全部速度优先的,可能面积大一些,但是时序好收敛)

        使用 DesignWare Library有很多DW_开头的module定义。(工具自动选择的一些Designware去替代设计中出现的运算器。)

 DesignWare运算操作

         DesignWare主要解决一些运算操作。在数字后端设计中,数字运算操作称为datapath。

        实现许多由 Synopsys 提供的内置 HDL 运算符。这些运算符包括+,  -,  *,  <,  >,  <=,  >=, 以及由 if 和 case 语句定义的操作。 

为什么关注这些运算符?

  • 一般,运算类时序路径不太好收敛【操作复杂,路径长】
  • 有比较多的datapath,等价性验证有时会很难比。【等价性验证通过算法遍历所有情况,看功能是否一致,如果逻辑锥上有很多datapath,而且datapath实现方式有很多,工具没有办法判断实现方式时,会通过大量运算去判断这部分功能是否发生变化。因为这部分运算十分复杂,会导致工具有可能算不出来,这在等价性验证中称为abort。】

综合过程中用什么变量定义 DesignWare: synthetic_library

        DesignWare  组件使用变量synthetic_library设置:

  • 您无需指定实现内置 HDL 运算符的标准综合库 standard.sldb。
  • dw_foundation.sldb library会自动添加到synthetic library列表中。

        不定义这个变量,工具没有办法使用 DesignWare 构建操作运算。

Physical Library

DCT和DCG这两代DC工具使用 Milkyway(这是Synopsys家的一个数据类型)

最新一代DCNXT ,支持 Milkyway、NDM类型。

用来存储physical信息的类型。

Milkyway reference library

         Milkyway reference library包含 standard cells 和macros的物理信息【物理形状,memory多大,pin位置,同时包含做布局布线的基本信息。(综合过程中读入floorplan信息做综合,引入后端在布局过程中的一个引擎coarse placement,粗略的摆放)】。

在综合过程中,出现什么问题,导致physical库有问题?

  • 做带floorplan信息的综合时,报出warning或error:有一个logic cell,但是找不到对应的physical cell信息。——有可能只读入logic libraries的.db文件没有引入physical libraries。
  • 没有net上的resistance或capacitance一些信息——row文件引入有问题。做net延时预估就没有依据。有可能physical libraries定义有问题。

        在topographical mode下,    Milkyway reference library使用 FRAM 抽象视图来存储信息。    Milkyway reference library还定义了放置单元平铺(可放置 instance的最小宽度和高度以及布线方向)。

Logic Library  -- Link library

        用于解决mapping、  references(映射,参考)问题。

        例如,在设计中去实例化某个cell,这个cell对应的库文件是什么,把这些东西全部定义到link library的变量里面。

IC设计逻辑综合2——综合库介绍Library Types

        link库中提供两输入与非门 ,如果设计中使用与非门,就要对NAND cell分别进行实例化,实例化名字U1 U2 U3。

 Link library分类: 

  • standcell library
  • IO library
  • Hard macro library
  • Block hierarchical implementation(采用bottom up方式,小模块做好,顶层通过link library引入小模块)

Link library – Hard macro library

Hard macro library: 

  • Memory
  • Hard digital IP 
  • Hard mixed signal IP(模拟数字混合)

Link library – Memory

Memory library: 

  • SRAM(静态易失性存储区)
  • DRAM(动态易失性存储区)
  • ROM(非易失性存储区)
  • Register File

Link library – Hard digital library

成熟的第三方IP 

Hard digital library: 

  • CPU core
  • DSP core
  • Etc.

Link library – Mixed signal library

Mixed signal library: 

  • PLL
  • OSC
  • USB PHY
  • PCIE PHY
  • DDR PHY
  • DigRF
  • Etc.

Logic Library  -- Target library 

        在综合过程中,涉及优化。不单解决mapping和reference问题,主要任务解决优化。

优化分为不同阶段:

  • 构架上优化
  • 映射到标准库单元上之后,依然会做优化【包括cell驱动能力够不够(选大还是小),对于选择器max既可以单独去选一个max,还可以通过与门加inverter搭建一个max。对于一个布尔运算,用不同的方式实现。为了满足时序要求,选择不同的logic cell进行优化。】

Target library: 

  • 实现设计功能。
  • 在优化过程中映射到。
  • 包含用于生成网表和设计操作条件定义的单元。
  • 用于compile 或 translate设计的 link libraries 的子集。
  • 包括performance library 和low power library
IC设计逻辑综合2——综合库介绍Library Types

Target library  -- Performance library

不同阈值电压的library:

  • HVT:高阈值电压的库。(high)mos管导通需要更高的电压,延时更大,leakage更小
  • SVT:标准阈值电压的库。(standard)(还有的foundry厂叫RVT,regular VT)
  • LVT :低阈值电压的库。(low)
  • ULVT:阈值电压更低,cell更快,leakage更大。(ultra)(一些foundry厂提供)

工艺为什么要提提供不同阈值电压的库?

        涉及时序和功耗平衡问题。

        在某一些高速运行的路径或设计中,只有满足低阈值电压库才会满足时序要求。

        对于design,只有很小的一部分时序很严格,大部分不严格,当foundry厂提供不同阈值电压的library,用户或工具可以去选择。例如,对于高速端口,可以使用一小部分ULVT来解决时序问题,大部分逻辑,使用HVT,既满足要求又降低功耗,在时序和功耗之间得到平衡。这取决于芯片的种类和应用类型的不同,针对不同阈值电压的cell占比会有要求。

Performance library:

  • 包含高速单元
  • 具有低阈值电压
  • 具有高泄漏电流
  • 以关键时序路径为目标

Target library  -- Low power library 

Low power library :

  • 具有高阈值电压
  • 具有低泄漏电流
  • 针对非关键时序路径以节省功耗

一个库是放在link library还是target library?

        逻辑需要做优化的时候,这个标准库单元需要定义到target library里面。

        通常,所有的hard marco、memory、第三方IP等等只有一个选择。只能放在link library里面去做映射、解决参考实例化。

        standard cell有不同类型。数字逻辑部分通过布尔运算用不同的cell去搭建。定义到target library中。

        不同阈值电压、不同沟道长度的standard cell,在时序和功耗上面做平衡。如果做综合过程中,希望工具依据时序要求选用不同阈值电压、不同沟道的库,就将这些库定义到target library里。

        为了给后面的布局布线留更多的余量,在综合过程中,只使用高阈值电压的库,长沟道lib cell,就把高阈值电压的库定义到target library中,其他低阈值电压的库定义到link library中。

继续阅读