Skip to content

Latest commit

 

History

History
264 lines (195 loc) · 8.29 KB

File metadata and controls

264 lines (195 loc) · 8.29 KB

DC_LAB 반도체 설계 교육자료 분석 보고서

작성일: 2026-03-23 분석 대상: /DATA/home/edu118/DC_LAB

1. 전체 개요

DC_LAB은 디지털 반도체 설계의 Front-End 전 과정을 실습형으로 학습하도록 구성된 교육 워크스페이스이다. 흐름은 다음과 같이 연결된다.

  • 0_Language: 기초 스크립트 언어(TCL/Perl/텍스트 처리) 학습
  • 1_Verilog_VCS_Verdi: RTL 작성/시뮬레이션/파형 디버깅
  • 2_Synthesis: RTL -> 게이트 레벨 넷리스트 합성
  • 3_DFT: 스캔 체인 삽입 및 DFT 구성
  • 4_ATPG: 결함 모델 기반 테스트 패턴 생성
  • 5_FM: 합성/DFT 전후 논리 등가성 검증
  • 6_STA: 타이밍 분석(Pre/Post, Corner/Mode) 및 sign-off 리포트
  • SAED32_EDK, SAED32nm_PDK_04152022: 32nm 표준셀/IO/SRAM/PDK 참조 라이브러리

즉, RTL부터 테스트/검증/타이밍까지 ASIC FE 플로우를 단계별로 재현하는 구조이다.

2. 폴더 중심 분석

2.1 0_Language

역할:

  • 실무 자동화에 필요한 기본 언어 역량 확보
  • TCL(루프, 변수, 연산자), Perl(배열/해시/문자열) 학습

기능:

  • 이후 DC/TMAX/PT/Formality 스크립트 이해를 위한 선행 학습

결과:

  • 단일 예제 실행 중심으로, 본격적인 설계 산출물보다는 스크립팅 역량 축적이 목적

2.2 1_Verilog_VCS_Verdi

구성:

  • 0_Script: compile/sim/verdi 실행 스크립트
  • 1_Input/RTL, 1_Input/TB: RTL 및 테스트벤치
  • 3_Log: 시뮬레이션 로그
  • DEMO, simv.daidir, csrc: 실행 산출/중간 빌드 데이터

역할:

  • 기능 검증의 출발점
  • 기본 게이트(AND, DFF)부터 예제 설계를 시뮬레이션

기능:

  • VCS 2-step 컴파일/시뮬레이션
  • Verdi로 FSDB 파형 분석

결과:

  • compile.log, sim.log 등 생성
  • FSDB/VCD 파형 생성(DFF.fsdb 등)
  • 설계 동작 검증 완료 후 합성 단계 입력 준비

2.3 2_Synthesis

구성:

  • 0_Script: 합성 단계별 스크립트(설정, 읽기, 링크, 제약, 컴파일, 리포트, 출력)
  • 1_Input: RTL, VHDL, 제약(Constraint.con)
  • 2_Output: mapped/unmapped 넷리스트
  • 3_Log, 4_Report: 합성 로그/리포트

역할:

  • RTL을 공정 라이브러리 기반 게이트 넷리스트로 변환

핵심 기능 확인:

  • 제약 로드(source 1_Input/Constraint/Constraint.con)
  • set_dont_use / set_dont_touch 지정
  • scan/gate_clock 옵션 포함 compile 수행
  • 최종 넷리스트 품질 개선을 위한 incremental compile 사용

결과(파일 수):

  • 1_Input: 63개
  • 2_Output: 6개
  • 3_Log: 1개
  • 4_Report: 17개

의미:

  • ORCA급 다모듈 RTL의 합성 산출물이 안정적으로 생성된 상태

2.4 3_DFT

구성:

  • 0_Script: scan setup -> read netlist -> dft setup -> signal/config -> insert -> write -> report
  • 1_Input/netlist: 합성 넷리스트 입력
  • 2_Output, 3_Log, 4_Report: 버전별 실행 결과 보관

역할:

  • 테스트 가능성 향상을 위한 스캔 구조 삽입

핵심 기능 확인:

  • main_scan.tcl에서 단계별 source 호출로 플로우 표준화
  • DFT 신호/설정 정의 후 삽입 및 결과 리포트 자동 생성

결과(파일 수):

  • 1_Input: 1개
  • 2_Output: 30개
  • 3_Log: 8개
  • 4_Report: 112개

의미:

  • DFT 이후 분석용 리포트가 매우 풍부하며, 교육용 비교/리뷰에 적합

2.5 4_ATPG

구성:

  • 0_Script/main.tcl: setup -> read -> build -> drc -> tmax2pt -> atpg -> pattern write -> reports
  • 1_Input/netlist, 1_Input/spf
  • 2_Output, 3_Log, 4_Report 버전 관리

역할:

  • 제조 테스트 패턴 생성 및 커버리지 평가

핵심 기능 확인:

  • ATPG 모델 생성 및 DRC 수행
  • shift/capture 제약 추출(tmax2pt)
  • 패턴/테스트벤치/요약 리포트 생성

결과(파일 수):

  • 1_Input: 3개
  • 2_Output: 38개
  • 3_Log: 12개
  • 4_Report: 40개

의미:

  • 실제 테스트 적용을 위한 패턴 데이터가 구축된 상태

2.6 5_FM

구성:

  • 0_Script: n2n, r2n 흐름 분리(main_n2n.tcl, main_r2n.tcl)
  • 1_Input: RTL/넷리스트
  • 2_Output, 3_Log, 4_Report
  • formality*_svf, FM_WORK

역할:

  • 논리 등가성 검증(Functional correctness 보증)

핵심 기능 확인:

  • main_r2n.tcl에서 set_svf ../2_Synthesis/default.svf 사용
  • 라이브러리 읽기, 매칭, verify, report 단계 분리

결과(파일 수):

  • 1_Input: 33개
  • 2_Output: 3개
  • 3_Log: 3개
  • 4_Report: 24개

의미:

  • 합성/DFT 전후 설계 일치성 검증 근거를 리포트로 확보

2.7 6_STA

구성:

  • 1_pre: 사전 STA
  • 1_pre_dmsa, 1_pre_dmsa_dir: 다중 시나리오/분산 분석 확장
  • 2_post: 배선/기생 반영 후 STA
  • 각 경로에 0_Script, 1_Input, 2_Output, 3_Log, 4_Report 존재

역할:

  • setup/hold/전이/제약 위반을 corner/mode 관점에서 sign-off

핵심 기능 확인:

  • 01_link_lib.tcl: corner별 라이브러리(HVT/LVT/RVT/IO/SRAM/PLL) 선택
  • 02_read_design.tcl: netlist read/link, post 모드 parasitic 읽기, mode(func/shift/capture)별 SDC/derate 설정
  • 03_sta_option.tcl: SI/crosstalk, CRPR, time borrowing 등 분석 옵션 제어
  • 04_report.single.tcl: update_timing, check/report, setup/hold 및 violation 리포트 생성

결과(파일 수):

  • 1_pre/1_Input: 53개
  • 2_post/1_Input: 5개
  • 2_post/2_Output: 5169개
  • 2_post/3_Log: 2개
  • 2_post/4_Report: 212개

의미:

  • post-STA 결과가 대량 축적되어 실제 sign-off 훈련 데이터로 활용 가능

2.8 공정/라이브러리 폴더

  • SAED32_EDK: 표준셀/IO/SRAM/문서/레퍼런스
  • SAED32nm_PDK_04152022: PDK, techfile, 문서, extraction/검증 관련 데이터

역할:

  • 합성, DFT, ATPG, STA 모두의 공통 기술 기반 제공

3. 기능 중심 분석 (Flow 관점)

3.1 설계 작성 및 기능 검증

  • 입력: RTL + TB
  • 처리: VCS 컴파일/시뮬레이션 + Verdi 파형 디버깅
  • 출력: 로그, FSDB/VCD
  • 교육 포인트: 설계 동작 이해, 디버깅 방법 습득

3.2 논리 합성

  • 입력: RTL/VHDL + SDC/제약
  • 처리: 라이브러리 링크, compile -scan -gate_clock, incremental compile
  • 출력: mapped/unmapped netlist, 합성 리포트
  • 교육 포인트: 제약 기반 최적화와 합성 품질 트레이드오프

3.3 DFT 삽입

  • 입력: gate-level netlist
  • 처리: 스캔 신호/정책 정의, DFT DRC, scan 삽입
  • 출력: scan netlist/DDC/SPF, scan 리포트
  • 교육 포인트: 테스트 구조 삽입이 타이밍/면적에 미치는 영향

3.4 ATPG

  • 입력: scan netlist + SPF
  • 처리: 모델 생성, DRC, 패턴 생성
  • 출력: 패턴 파일, 테스트벤치, 커버리지/진단 리포트
  • 교육 포인트: fault coverage와 패턴 수의 균형

3.5 Formality

  • 입력: RTL vs netlist(또는 netlist vs netlist) + SVF
  • 처리: 매칭/검증
  • 출력: equivalence report
  • 교육 포인트: 논리 보존성 확인과 debug flow

3.6 STA

  • 입력: netlist + SDC + (post의 경우 SPEF)
  • 처리: OCV/derate, SI/CRPR 반영 timing 분석
  • 출력: setup/hold/transition/constraint 위반 리포트
  • 교육 포인트: mode/corner 기반 sign-off 접근법

4. 역할 분담 관점 요약

  • 학습자 관점:
    • 0~1단계에서 HDL/시뮬레이션 기초 습득
    • 2~6단계에서 산업 표준 FE sign-off 흐름 습득
  • 스크립트 관점:
    • 각 단계가 main Tcl에서 모듈형 source 구조로 분리되어 재사용성 높음
  • 데이터 관점:
    • 2_Output/3_Log/4_Report 버전 폴더를 통해 실습 이력 추적 가능
  • 검증 관점:
    • Simulation -> FM -> STA로 기능/논리/타이밍 검증이 계층적으로 연결됨

5. 교육자료 품질 평가

장점:

  • 실제 Synopsys 중심 플로우를 단계별로 체험 가능
  • 버전별 산출물 및 리포트가 충분히 축적되어 비교 학습에 유리
  • DFT/ATPG/FM/STA까지 포함된 확장형 커리큘럼

보완 포인트:

  • 일부 디렉토리에 임시 파일(.swp, csrc 중간산출물) 혼재
  • 5_FM의 netlsit 오탈자 등 경로 명명 규칙 일관성 개선 여지
  • 단계 간 입력/출력 연계도(artifact map) 문서가 있으면 인수인계가 더 쉬움

6. 결론

DC_LAB은 반도체 디지털 Front-End 교육자료로서, 단순 RTL 실습 수준을 넘어 합성-DFT-ATPG-정합성-STA까지 포함한 실무형 End-to-End 학습 환경으로 분석된다.

특히 폴더 구조가 "입력(1_Input) -> 산출(2_Output) -> 로그(3_Log) -> 리포트(4_Report)" 패턴으로 정형화되어 있어, 학습자가 단계별 역할과 결과를 체계적으로 추적하기에 적합하다.