DC(6) : Timing Analysis

han·2024년 7월 7일
1

High-level Synthesis Flow

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

3, 4장에서 Constraints를 적용시키는 법을 알아보았고, 5장에서 최적화 기법을 알아보았다. 이번 6장에서는 timing reports를 보는 방법과 report_timing의 옵션 등에 대해 알아볼 예정이다


Timing Analysis

Objectives

  • Generate timing reports, with addtional command options as needed, to diagnose(진단) timing constraint violations

Timing Reports

  • The report_timing command invokes DC's Static Timing Analyzer, which :
    • Breaks the design down into individual timing paths
    • Analyzes each timing path at least twice for single-cycle max-delay timing
    • Generates a default, four-section report which includes :
      • One path, the worst violator, per path group
      • Maximum delay or setup timing only
        - No hold timing
        - No DRC
        - No area
	******************************
	Report : timing 
	        -path full
            -delay max
         	-max_paths 1
	Design : MY_DESIGN
	Version : K-2015.06-SP4
	Date : Wed Jan 6 12:51:43 2016
	******************************
    생략
    startpoint : 
	endpoinrt : 
	path group : clk
	path type : max
    -----------------------------------------------------
	Piont									Incr	Path
	clock clk 								0.00	0.00 
 	clock network delay						0.50	0.50 
 	input external delay(source latency)	1.00	1.50 f
 	data_1(in)								0.04	1.54 f
 	u2/Y									0.12*	1.66 r
 	u12/Y									0.26*	1.92 r
 	u23/Y									0.23*	2.15 r
 	XYZ_reg[14]/D							0.00*	2.15 r 
 	data arrival time(DAT)							2.15 r
 	
 	
 	clock clk								2.00	2.00
 	clock network delay						0.50	2.50
 	clock uncertainty					   -0.27	2.23
 	XYZ_reg[14]/CK							0.00	2.23 r
 	library setup time					   -0.06	2.17
 	data required time(DRT)							2.17
 	-----------------------------------------------------
 	data required time 								2.17
 	data arrival time							   -2.15
 	-----------------------------------------------------
 	slack(MET)									    0.02
  • Reports
    • Data arrival time
      • 데이터의 도착시간이며, DRT보다 늦게 도착하면 violation이 일어남!
    • Data required time
      • Data 수신 : Tcap+Tsrclatency+Tnetlatency(Tu+Tsetup)Tcap + Tsrc_-latency + Tnet_-latency - (Tu + Tsetup)

        → Latency 증가시, 받는 입장에서는 데이터가 늦게 도착하니까 여유 시간이 늘어남

    • etc
      • 숫자 옆의 *표시는 RC값이 계산된 즉, net이 깔린 상태를 뜻한다. 따라서 u2/Y 0.12는 net delay와 cell delay를 합친 것이다.
  • report_-timing -options
    • -delay -min/max
      • min : hold time
      • max : setup time
    • -to
      • -to mul_reg[31]/D로 설정시, mul_reg[31]의 D핀을 endpoint로 삼는 path를 report
    • -from
    • -through
    • -group
    • -input_pins
      • By default, Net delay와 Cell delay가 합쳐서 나옴
      • Net delay, Cell delay를 나눠서 보는 방법
    • -max_paths
      • By default, max_paths = nworst
      • report할 최대 path 수 결정
    • -nworst
      • By default, nworst = 1
      • endpoint당 report할 path 수 결정
    • -nets
    • -capacitance
    • -significant_digits
      • 소수점 이하 자릿수를 결정
    • etc
      • clk 주기 수정 및 constraint를 수정하는 것은 critical path timing을 향상하는 해결방안이 아님
  • etc
    • report_path_group
      → 설정한 path group을 알려주는 command
    • group_path -name INPUTS -to coeff_reg*/D
      group_path -name clk -critical 0.33 -weight 5
      report_path_group
      → critical : critical slack에서 0.33 만큼 범위의 path를 더 보겠다는 말
      또한 일반적으로 주기의 10%로 설정함
      → weight : 5일 경우, critical한 경우 설정?
    • copmile_ultra -scan -spg -retime -incremental
      report_constraint -all_violators
      → scan :
      → spg :
      → retime :
      → report_constraint -all_violators : endpoint 당 하나의 critical path를 report
profile
Electronics Engineering

1개의 댓글

comment-user-thumbnail
2024년 7월 9일

〜( ̄▽ ̄〜)(〜 ̄▽ ̄)〜

답글 달기