DC(1) : Design & Technology Data

han·2024년 7월 4일
0

High-level Synthesis Flow

  • Load design & technolgy data (current stage)
    • create .tcl or set_app_var & search_path
      • set_app_var target_library libs/20nm_wc.db
      • set_app_var link_library "* $target_library"
    • read_verilog my_design.v
      • load gtech, link_library
      • read RTL, translate into unmapped ddc
      • load design in DC memory
      • Set one of the designs in memory to the current design
    • link
  • Apply timing constraints
    • (create my_desing.con)
    • source my_design.con
    • check_timing / report_constraints
  • Synthesize the design
    • comipile_ultra -...
  • Analyze results
    • d
  • Write out design
    • write_file -f v -output my_desing.v
    • write_file -f ddc -output my_desing.ddc

1장에서 design을 load하는 방법과 technolgy data에 대해 알아보려 한다.


Loading Logical Library & a Flat Design

  • read_verilog rtl/MY_DESIGN.v

    1. Load gtech_libary & link_library
    2. Read RTL files & translate into unmapped ddc
    3. Load design in DC memory
    4. Set one of the designs in memory to the current design
    • Flat design & Hier design
      : 현재 디자인은 flat한 디자인임. 즉 하나의 모듈을 infer하는 것

      • Flat design
        : 하나의 모듈만 있는 디자인
      • Hierarychical design
        : 탑 모듈 밑에 여러 모듈이 있는 디자인
      • Inference
        : RTL function을 인식하여 회로화. 즉 rtl-level에서 funcion인식
      • Instantiation
        : module을 불러와서 gate-level에서 cell을 불러옴
    • Warning : Can't read link_lirary file 'your_library.db'
      : link_libary가 없는 위치에서 Design Compiler를 실행했기에 뜨는 경고

  • source cons/MY_DESIGN.con
    : Compile 이전에 constraint를 적용

  • check_timing
    : Constraint를 적용한 이후 타이밍 체크 (??)☎☎☎☎☎☎☎☎☎☎

  • report_constraints -all_violators
    : 타이밍이 위반된 모든 경로를 출력

  • compile_ultra
    : dc_shell -topo의 합성 명령어

    • Error : Could not read the following target libraries : 'your_libary.db'
      : target_library가 없는 위치에서 compile했기에 뜨는 에러
  • About .tcl

    • target_libary
      : 현재 디자인에서 사용할 technology library를 target library라 함
      : 컴파일 과정에서 target_libary를 기반으로 mapping을 통하여, 기술-특화된 게이트 수준 넷리스트를 생성하는데 사용됨
      : 이는 공정회사에서 제공해주는 파일임
      • printvar target_library
        : 현재 적용된 타겟 라이브러리를 출력해서 알려줌
      • set_app_var target_libary libs/20nm_wc.db
        : 타겟 라이브러리 설정
    • link_libary
      : technoloy library를 모아둔 라이브러리를 link_library라 함
      : netlist or RTL에서 인스턴스화된 reference를 찾는데 사용 for mapping
      1. 먼저 DC memory에서 my_design.v에 해당하는 모듈을 찾음
        → 하지만, 이는 사용자 정의 모듈이므로 메모리에 없음
      2. 다음으로 link_library에 나열된 여러 tech_library에서 my_design.v 모듈에 필요한 셀을 찾음
        → 즉, 먼저 내부 DC 메모리에서 해당 모듈를 찾고, 찾지 못하면 link_library에 나열된 여러 tech_library에서 모듈에 필요한 셀을 찾음
      • 설계 과정 with link_library
        1. Load netlist or RTL
        2. Parsing design
        3. Referencing link_library for mapping
          • DC 메모리
          • Tech_library in link_library
        4. Mapping technology_library
        5. Logic optimization for performance, power, area, ...
        6. Write out design data (ex : netlist, GDSll, ...)
      • reference
        : any gate, block or sub-design that is instantiated
      • printvar link_library
        : 현재 적용된 링크 라이브러리를 출력해서 알려줌
      • set_app_var link_libary "* $target_library"
        : 링크 라이브러리 설정
        : " * "은 DC memory에 있는 designs을 나타냄
      • link
    • search_path
      • ㅇㄹ
      • set_app_var search_path "$search_path rtl unmapped mapped libs cons"
        : 링크 라이브러리 설정
        : " * "은 DC memory에 있는 designs을 나타냄
  • write_file

    • write_file -f verilog -output mapped/MY_DESIGN.v
      : mapping된 verilog 형식으로 netlist를 저장
      : 이는 오직 target_library의 cell로 mapping한 verilog 코드임
    • write_file -f ddc -output mapped/MY_DESING.ddc
      : ddc 형식으로 netlist를 저장
      : 이는 gate-level netlist + constraints + SCAN-DEF 정보를 모두 포함하고 있음
  • 다른 설계자로부터 netlist를 받았을 때

    • ㅇㄹ
  • ETC

    • Libary file
      • .db
        : 사람이 읽을 수 없는 2진 코드
      • .lib
        : 사람이 읽을 수 있는 코드 (lib = liberty)
    • About Cell
      • cell (OR2_4x)
        -OR2 : 입력이 2개
        -4x : Driving strength가 4

Loading Hierarchical Designs

Loading Physical Data


ETC

profile
Electronics Engineering

0개의 댓글