우리가 알고있는, 설계한 verilog 코드(RTL)들이 실제 레이아웃으로 변환 되기 위해서는 Gate level로 netlist를 변환해야하며 이 과정을 synthesis(합성)라 하고 이런 과정을 수행하는 synopsys의 EDA tool이 Design Compiler, Cadence의 Genus 이다.
설계한 RTL이 NAND, NOR, DFF와 같은 Gate level로 변환하기 위해서는 해당 공정의 standard cell이 필요하고 이외에도 여러 공정 정보들이 필요하다.
대부분의 파일들은 공정사에서 제공받을 수 있다.
결국 스크립트를 잘 만들어놓고 RTL파일만 바꿔가며 Script를 실행만 하는게 대부분이긴 하지만 많은 시행 착오를 해보는게 좋고 메뉴얼을 보면서 명령어 하나 하나 옵션을 적용해보기도 하면서 공부하는게 좋다.
정답은 없지만 내가 하는 방법대로 한번 기술하여보려 한다.
나는 스크립트의 진행순서를
1) 환경 설정
2) RTL 분석 및 평가
3) 타이밍 제약 조건 설정
4) 합성
5) 리포트 작성
위와같이 진행한다.
1. 환경 설정은 Reference 파일을 보통 EDA Tool에서 제공해준다. Design comiper는 .synopsys_dc.setup 이라는 파일로 주며 이 안에 있는 내용을 공정사에서 제공받은 PDK정보로 하나하나 바꿔주는게 비교적 간단한 방법이긴 한데 그 양이 2000줄이 넘는다. 보통 tool 설치 위치 안에 admin/setup/.synopsys_dc.setup 에서 확인 할 수 있다.
필요한 설정파일만 쓰기 위해 저 파일을 참조하진 않았다.
asic/projectname/0_setup/dc_setup.tcl 을 만들자.
제일 위에 위와같이 rvt, hvt, lvt등 standard library의 db파일이 위치한 경로를 변수로 잡아주었다.
또한 RTL_path를 잡아주어 verilog파일이 위치한곳을 변수로 설정해주었다
verilog 파일은 asic/projectname/1_rtl/안에 넣을 예정이다.
이곳에 io, pll, sram 등 여러가지를 추가해도 되지만 아직 다른 cell을 사용해본 경험이 없어서 추후에 사용하게 되면 추가할예정.
그리고 위에 설정한 std cell의 경로를 search_path 경로로 할당한다.
이제 search path에 있는 db파일을 target_library와 link_library에 추가한다. 지금 나는 1개만 설정했지만 여러 전압 환경에 따라 다른 device들을 추가해 줄 수도 있다.
이것도 기능은 알지만 사용해본적이 없어서 추후 추가할예정임.
link library와 target library는 특별히 다른 IP같은걸 사용하지 않는다면 그냥 동일하게 작성하면 된다고 알고있음.
마지막에는 추가 옵션같은걸 작성해준다. define_design_lib work -path "./work" 는 작업 결과를 저장해놓는곳이고 나머지 두줄은 빠른 verilog 분석을 위한 기능으로 기본적으로 켜주는걸 추천한다고함.
'아날로그 연구실 > 디지털 설계' 카테고리의 다른 글
(4) Auto Place & Routing을 해보자 - project_setup & read design (0) | 2025.05.27 |
---|---|
virtuoso layout to schematic (0) | 2025.04.08 |
cadence virtuoso layout에서 schematic 추출하기 (2) | 2025.03.18 |
(2.1) Auto Place & Routing을 해보자 - Binary encoder Verilog 설계 (0) | 2024.03.06 |
(1) Auto Place & Routing을 해보자 - Introduction (0) | 2024.03.06 |