STA(Static Timing Analysis) (2) - Before Timing Analysis
STA를 통해 Timing에 어떤 violation이 났는지 분석하기 전에, 먼저 준비해야 할 것이 있습니다.
(1) GCA(galaxy constraint analyer)와 같은 tool을 통해 SDC(synopsys design constraint)가 clean한지 확인합니다.
GCA란 다음과 같습니다.
The Galaxy Constraint Analyzer is an intuitive tool that enables designers to quickly assess the correctness and consistency of timing constraints. Correctness and consistency lead to more efficient runtimes in Synopsys' Design Compiler® synthesis and IC Compiler physical implementation tools – synopsys
여기서 SDC가 옳은지를 검증하는 이유는 결과적으로 timing이란 design constraint로부터 주어지는 것이기 때문입니다. 만약 SDC가 잘못되어있다면(가령 create_clock이 잘못 설정된 경우라던가, async로 선언되어야 할 두개의 clk이 sync로 처리되어 있다던가), tool로 분석을 아무리 잘하더라도 원하는 결과를 얻을 수 없습니다.
(2) check_timing을 통해 timing과 constraint를 분석하기 전에 가능한 문제점들을 확인합니다.

lab을 통해 진행하니 2개의 endpoint에 max delay에 대한 제약사항이 없다는 주의가 떴습니다.
(3) report_analysis_coverage를 통해 대략 어느 정도의 violation이 있는지 파악합니다.

lab에서는 23개의 setup violation, 53개의 hold violation이 존재하였습니다. 또한 untested된 것에 대하여 왜 untested가 되었는지 확인한 후, 합당한 이유라면 넘어갑니다.
가령 lab에서 진행했을 때, untested의 이유는 다음과 같이 나왔습니다.
untested된 이유는 constant_disabled. 즉 불변성 상수이기 때문에 untested가 되었다고 합니다.
(4) parasitic 값이 제대로 물렸는지를 확인합니다.
특정 pin에 대한 정보를 reference 디자인에서 찾을 수 없어서 30개의 error가 떴습니다. 그것 외에는 spef 파일 형식으로 기생성분들이 잘 물려진 것을 확인할 수 있었습니다.
※ spef 파일이란? - SPEF allows the representation of parasitic information of a design(R, L, and C) in an ASCII, 즉 아스키 코드 형식으로 R,L,C에 대한 기생성분 정보들을 표시해놓은 파일을 뜻합니다.
다음과 같이 R, C값들이 정렬되어있는 것을 확인할 수 있었습니다.
※ lumped model, RC pi model 과 같은 RC delay model은 다음의 사이트에서 참조하면 좋을 것 같습니다. http://www.vlsi-expert.com/search?q=pi+model