DC(5) : Synthesis Optimization Techniques

han·2024년 7월 7일
0

High-level Synthesis Flow

  • Load design & technolgy data
  • Apply timing constraints
  • Synthesize the design (current stage)
  • Analyze results
  • Write out design data

이번 5장에서는 Timing, Area, Run time 결과에 영향을 미치는 최적화 기법을 알아보고 commands 또는 options를 통해 적용해보고자 한다.


Synthesis Optimization Techniques

Objectives

  • Synthesize RTL to gates (top-down)
  • Achieve timing golas with good post-layout correlation using applicable techniques :
    • Some examples of default compileultracompile_-ultra optimizations
      • Critical Path re-synthsis
      • Arithmetic optimizations
      • Load splitting and logic duplication
      • Library analysis
    • User controllable compileultracompile_-ultra optimizations
      • Auto ungrouping
      • Boundary optimization
      • Test-ready synthesis
      • Register replication
      • Adaptive retiming
      • High effort timing
      • Prioritizing setup timing over DRCs
      • Disabling DRC fixing on clock network
      • User-defined path groups
      • Pipeline or register retiming
      • Multi-core optimization
      • Disabling runtime intensive settings
    • Post-compile analysis and incremental compile
    • Final Area Recovery

Auto ungrouping

  • By default
    • Synthesis must preserve pin definitions on sub-block hierarchies
    • Auto-ungrouping is ON with compileultracompile_-ultra
    • 타이밍을 위반하는 경로를 가진 잘못 분할된 하위 설계의 계층을 자동 제거
      • Poorly Partitioned(잘못 분할된)
        → 모든 데이터 입력이 레지스터 출력으로 연결되지 않거나(Q<=D), 모든 데이터의 출력이 레지스터로 등록되지 않은 경우(reg Q) 하위 설계는 poorly partitioned로 간주
    • Also automatically removes hierarchies of DesignWare
      • set_app_var compile_ultra_ungroup_dw false
        → DesignWare의 Auto-ungrouping을 해제하는 command
  • Options
    • To disable auto-ungrouping altogether:
      compile_ultra -no_autoungroup
    • To disable auto-ungrouping on selective sub-designs
      compile_ultra <references_or_cells> false
  • Conclusion
    • Auto-ungrouping을 통해 조합/순차회로의 최적화를 향상
    • But, 합성시 pin 정의를 유지해야하기 때문에 부분적으로 Auto-ungrouping을 해제해야함
      • 즉 pin 정의 유지와 최적화 향상은 Tradeoff 관계
    • 추가적으로 합성시, default.svf라는 파일이 생성된다. 이는 FomalityToolFomality_-Tool로 읽을 수 있으며, svf의 정보를 이용하여 최적화 전,후의 동등성을 검사하는데 도움된다.
      (이는 RTL read전에 set_svf <My_name.svf>로 파일명을 set하면, set한 파일명대로 svf파일이 생성될 것임)

Boundry optimization

Test-ready synthesis

Register replication

Adaptive Retiming

High effor timiing


ETC

profile
Electronics Engineering

0개의 댓글