EDA/Open Source Circuit Design Tutorial

#6 Netgen을 이용한 LVS Test

돌머리 돌돌 2026. 2. 4. 19:56

설계가 완료된 경우 먼저 DRC Test를 해야 합니다.

DRC(Design Rule Check)란 제조 공정사에서 요구하는 제한 사항에 위반되지 않는지 확인하는 것입니다.
Magic에서는 drc on을 한 경우 자동으로 drc 검사를 해줍니다.

만약 drc error가 난 경우 명령어로 drc why라고 입력하시면 이유를 알려줍니다.

 

그 다음으로 하는 Test는 설계한 SchematicLayout이 동일한지 Netlist를 비교하는 LVS(Layout Versus Schematic)작업입니다.
저희는 이 LVS 작업을 Netgen이라는 툴을 이용하여 할 계획입니다.

SchematicNetlist가 없으시면

cd /home/Tutorial_Inverter/1-1_Inverter_Xschem
xschem inverter.sch

들어가셔서 Netlist를 눌러주세요
그러면 이제 Layout에서 Netlist를 추출해보겠습니다.

 

Magic 명령어를 입력하는 창에 다음 코드를 입력해주세요.

inv_flat이라는 파일 이름으로 Flatten 하는 과정

flatten inv_flat
load inv_flat
save

LVS spice 파일을 추출하는 과정

extract all
ext2spice lvs
ext2spice

이제 해당 디렉토리에 spice 파일이 추가됐을 것입니다.

이제 Netgen에 접속해봅시다.
netgen 그대로 입력하면 새로운 창이 나옵니다.

Schematic에서 생성된 spice 파일은
기본적으로 root/.xschem/simulations 폴더 안에 저장되어 있습니다.

netgen에서 LVS를 실행하기 위한 기본 문법은
% lvs <spice_file1.spice> <spice_file2.spice> <tcl_file> 입니다.

맞춰서 해봅시다.

lvs “/home/Tutorial_inverter/1-2_Inverter_Magic/inv_flat.spice /root/.xschem/simulations/inverter.spice /home/pdk/ETRI050_DesignKit/tech/etri050_setup.tcl comp.out

입력하니 Layout 파일을 netgen에서 제대로 인식하지 못하고 있습니다.

한번 생성된 spice 파일에 들어가봅시다.

cd inv_flat.spice

확인해보면 서브 회로로 묶여있습니다.
반면에 Schematic에서 생성된 회로는 주석처리 되어있습니다.
똑같이 주석처리 해줍시다.


해당 파일들은 :q 로 수정 후 저장하고 나가려고 하면 붙잡습니다.
:wq  확실하게 나가주세요.

다시 netgen에 들어가 LVS를 돌려보겠습니다.
이제는 Circuits match uniquely.라고 뜨는 것을 확인할 수 있습니다.

이는 Xschem으로 설계한 인버터와 Magic으로 설계한 인버터가 일치하다는 것을 의미합니다.
다음 장에서는 마지막으로 포스트 시뮬레이션을 돌려보겠습니다.