-
Synopsis Design Constraints 파일(.sdc)의 의미전공/Design Compiler 2021. 3. 30. 23:18
[일단 이 글을 읽기 전에, 사전 지식이 부족한 사람이라면 여기에서 세번째 단계를 읽어보도록 하자.]
우리가 RTL code를 Gate-level-netlist로 Synthesis 해주기 위해서는 그 역할을 담당하는 Tool을 사용해야 한다.
대표적으로 Synopsis 사의 Design Compiler가 있으며, 이번 게시글에서 소개하는 .sdc 파일도 이 tool의 사용에 필요한 파일이다.
일단 간단히 Design Compiler에 들어가야 하는 입력 파일들을 열거하면,
1. 합성하고자 하는 Module의 RTL Code(.v)
2. Wire Load Model(.sdf)
3. Synopsis Design Constaints(.sdc)
4. Technology library(.db 혹은 .lib)
등으로 구분될 수 있다.
이 게시글에서는 3번째 입력 파일인 Synopsis Design Constraints(이하 sdc)에 대해서 다뤄본다.
우리는 RTL code를 먼저 구현한 뒤에, 이를 검증하기 위해서 Modelsim등의 검증 Tool을 이용한다.
이때, 검증에서는 논리적으로 RTL이 잘 동작하는지만 확인한다. (Delay등은 무시하고 정말 이상적인 경우만 가정한다.)
하지만, Design Compiler를 이용하여 Gate-level로 합성하면, 합성된 게이트들의 delay, wire delay등을 알 수 있으므로 대략 전체 회로의 delay를 계산할 수 있게 된다.
(이상적인 상황이 아니라, 실제 chip을 구현했을 때의 delay를 어느정도 예측할 수 있다는 의미이다.)
따라서, 우리는 이 Module을 처음 설계할 때의 조건들을 같이 넣어서, 단순히 Gate-level로의 합성이 아니라 여러 제약 조건을 만족하는 Gate-level인 netlist를 얻고자 하는 것이다.
(ex. 3.5GHz Clock frequency를 가지는 CPU 를 설계하고 싶다면, .sdc 파일에 해당 제약 조건을 넣어준다. 그러면 Design Compiler가 Gate-level로 변환된 여러 경우의 수를 확인하며 해당 조건에 맞는 netlist만 추출해준다.)
'전공 > Design Compiler' 카테고리의 다른 글
[Design Compiler 작업 흐름] (0) 2021.04.28 Path 명령어 및 예제 정리(.sdc) (0) 2021.04.01 get_ports/get_pins/get_nets의 차이점(.sdc) (0) 2021.03.31 Timing 명령어 및 예제 정리(.sdc) (0) 2021.03.31 Clock 명령어 및 예제 정리(.sdc) (0) 2021.03.31