yuanpin318的个人空间 http://blog.eetop.cn/13812 [收藏] [复制] [分享] [RSS]

日志

ICC基础

热度 5已有 612 次阅读2019-7-3 00:04 |个人分类:physical design|系统分类:芯片设计

1. 基本介绍
   1.1 data setup: 为design plan创建基本设计单元
       a. 载入必须的综合的数据: logic library, 约束, 门级网表
       b. 载入必须的physical design数据: physical library, technology file, RC寄生参数模型文件
       c. ICC1: 创建Milkway设计库和一个后端设计
       d. 使用对时序和优化的控制
       e. 对libraries, RC寄生参数模型, 约束和时序进行检查
   1.2 后端设计: floorplan, placement, CTS, routing
   1.3 在后端设计中, ICC只提供referece script.
       事实上,没有完美的golden script
   1.4 简单的ICC流程
       Data setup -> Design Planning -> Placement -> CTS -> Routing -> Chip Finishing
       a. design plan:
          直接影响到整个后端的收敛性
          对整个design进行设计规划,确定芯片的大小,形状,hard macro的摆放,
                  power,ground的走向,规划,走哪些层,使用多大的线宽才能满足power的设计指标
                  power的设计指标: IR drop, EM
                  hard macro的planning
         会有一个分叉点
              如果design非常大,需要用到hierarchical design,把一个design切成小块,每个小块发给后端进行设计
             如果design比较小,直接采用flattern design
       b.  placement
            把所有的standard cell全部放在design grid上。牵涉到setup的优化,congestion, cell site
                cell site是placement的最小设计单位,所有的standard cell必须全部放在cell site上,placement才可以算完成
       c.  CTS
           设计指标:insertion_delay, skew
            使得clock source到每个DFF的值尽可能一样,这个delay的值尽可能小
       d.  routing
            CTS后的design的cell之间只有逻辑上的连接,没有物理上的连接
            routing一定要满足工艺厂商的DRC的检查规则
       e. chip finishing
           天线的fix, metal fill
           完全是为tapeout服务的
    1.5 Data setup
        a. ICC需要读入的综合数据: (没有physical信息
               logic/timing library files: standard cell.db, macro cell.db, pad cell.db
                       db包含: 逻辑功能,时序库(setup的要求, cell的delay)
               constrAInts file: constraint.sdc (和STA相关)
              gate level netlist: prelayout-gate-level-netlist.v
        b. ICC需要读入的physical data
              physical library directories: standcellls MW, macro cell MW, pad cell MW(IO)
              Milkway:工艺厂直接提供Milkway数据库,有的工艺厂只提供LEF或GDS
                  如果只有LEF, GDS, 就需要用library compiler直接转换成Milkway的库,ICC才能使用
                  Milkway包含了物理信息:多少层metal, pin的位置,size,形状。提供给placement用
                  ICC1使用Milkway数据库
                  ICC2使用NLIB数据库
             technology file: abc_66m.tf,工艺厂商提供给design house的工艺文件。其中包含了每一层metal的线宽,线间距,via的DRC规则...
                 大部分DRC规则是针对routing的
            RC model files: TLU+,包含了RC寄生参数
            做完placement,有一个setup的优化,需要这个文件才可以更精确地计算setup
2. logic library
    为所有的标准单元(and, or, DFF, ...)提供了时序和逻辑功能的信息
    为hard macro(IP, ROM, RAM, ...)提供时序信息
    定义的驱动和负载的logical DRC: max_fanout, max_transition, max/min_capacitance
         影响到cell的delay,从而影响到后面的timing的计算
    和DC使用的logical library是一样的
         DC和ICC用"target_library"和"link_library"这两个变量来定义
    target_library: placement, clock和routing的优化所要使用的cell全部来自target_lirary
    link_library: 其他的就使用link library
   
3. Physical Reference Library
     Reference Library: 是Milkway数据库
            记录了标准单元,macro和pad的physical信息,是placement和routing所必须的
            记录了cell的pin的方向,layer和形状,dimension(bounding box), blockage, symentry(X, Y or 90 degree), reference point(通常是0, 0)
           
     placement的unit tile,在floorplan时就需要使用
            placement row的高度: 就是cell的高度
            最小宽度的resolution:每个cell的宽度都是unit tile的宽度的整数倍,才能保证每个cell可以放在grid上,否则会有mismatch
                       有一种最小的cell -- filler cell,宽度和cell site的宽度是一样的,filler cell可以保证将placement填满
            推荐的布线方向
            routing track的pitch
                      所有的走线(metal)都必须在track上走。track的是根据technology file生成的,是工艺厂商的一些要求
          

    
 4. physical libraries的Milkyway的结构
      view: sub-directory,存储着每个physical/reference library的信息
      FRAM: abstract view -- 在P&R中使用
      LM(可选的):logic model view, 包含了logical library(db格式),可能有timing和power的信息
      CEL: full layout view
   
5. 指定logical library, 使用.synopsys_dc.setup, ICC调用时会自动读入
    也可以在ICC中重新设置
       lappend_search_path [glob ./libs/*/LM]      #glob是tcl命令,她会返回和pattern相匹配的文件和目录
       set_app_var target_library "sc_max.db"
       set_app_var link_library "* sc_max.db io_max.db macros_max.db"
       set_min_library sc_max.db -min_version sc_min.db
       set_min_library io_max.db -min_version io_min.db
       set_min_library macros_max.db -min_version macros_min.db
       set_app_var symbol_libbrary "sc.sdb io.sdb macros.sdbb"
    ICC所使用的初始化文件
        首先载入$SYNOPSYS/admin/setup下的.synopsys_dc.setup
        其次载入用户home目录下的.synopsys_dc.setup
        最后载入ICC启动目录下的.synopsys_dc.setup

6. create a "container": design library
              6.1 创建design library
              6.2 指定tech file和reference library
              6.3 命令举例
              create_mw_lib design_lib_orca -open \
                          -technology ./libs/abc_6m.tf  \
                          -mw_reference_library "./libs/sc ./libs/macros ./libs/io"
                         结果是在当前目录下创建两个子目录: design_lib_orca和libs, 在libs下面还有三个子目录: sc, macros和io
       
7. 读入netlist并创建Design CEL
         read_verilog ./netlist/orca.v
         current_design ORCA
         uniquify      #原始网表里同一个module可能会实例化多次,
                          #unique之后会copy module,给每一个module一个新名字,配给每一个instance, 以便ICC分别优化
         link
         save_mw_cel -as ORCA    #在design_lib_orca/CEL下保存为ORCA:1
    在ICC中,可以用“import_design ./netlis/orca. -format verilog -top ORCA"替换以上四句命令
         -format的值可以是verilog, db或ddc

7. technolgy file的介绍,记录金属层的,供routing使用
   工艺厂商的每种工艺都有唯一的technology file,其中包含了
         metal layer的工艺参数:
               每一个layer/via使用的数目和名字,physical和电学特性,DRC(最小线宽,线距...),单位,显示的颜色和pattern
               DRC随着工艺的进步越来越复杂,例如多层mask会牵涉到double pattern,DRC就会非常复杂
                    有时候P&R工具没有检查到,但第三方DRC检查工具report,就要回去technology file搞明白这个DRC到底是什么样的
         
   
  

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐上一条 /3 下一条

小黑屋|关于我们|联系我们|ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-11-17 22:13 , Processed in 0.073611 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部