반응형

 


반도체 설계 과정에 필요한 다양한 Data File들.

출처 : Xilinx Training Material fpga-vs-asic design flow, Synthesis Flow (Left), PnR Flow (Right)

① .v file (Verilog File)

PDK에서 '.v' file은 주로 Verilog 파일을 의미합니다. 디지털 회로 설계에서 Hardware Description Language (HDL)인 Verilog로 작성된 Code File입니다. Verilog는 하드웨어 설계자들이 디지털 시스템을 Modeling 하고 Simulation할 수 있도록 도와주는 언어입니다. '.v' file은 Logic Gate, Flip Flop, Multiplexer와 같은 기본적인 Digital Device로 구성된 Module이죠. Verilog File은 여러 모듈로 구성되어 있으며, 각 모듈은 입출력 Port를 가지며, 다른 모듈과의 연결을 통해 복잡한 설계를 구성할 수 있습니다. 그리고 설계자가 Simulation Software를 사용하여 Verilog Code를 실행하면 설계의 정확성과 원하는 동작을 검증할 수 있습니다. 

이후 Verilog Code로부터 실제 Hardware로 변환할 수 있는 Synthesis 합성 설계를 할 수 있습니다. 설계 엔지니어가 HDL을 사용하여 추상적인 Level에서 Hardware를 정의하고, 실제 칩으로제작할 수 있죠.  

.v 파일은 종종 테스트벤치(testbench) 코드도 포함하여 설계한 모듈을 테스트하고 시뮬레이션 환경을 설정합니다. 테스트벤치는 설계가 다양한 입력 조건하에서 올바르게 동작하는지를 자동으로 확인합니다.

Verilog는 하드웨어 설계의 대표적인 언어 중 하나로, 설계자들이 복잡한 디지털 시스템을 효과적으로 개발하고 검증하는 데 널리 사용됩니다. .v 파일은 이 과정에서 중심적인 역할을 하며, 특히 디지털 부분의 검증과 합성에서 중요하게 사용됩니다.
  • File Format : Verilog File은 일반적으로 표준 Verilog Code에 대해서 '.v' 확장자를 사용.
  • Verilog의 Hardware Description Language(HDL) 언어로 작성된 Source Code 파일임.
  • Design Compiler, Genus 등과 같은 Synthesis Tool의 입력과 출력 파일임. 
  • RTL Code (.v file)의 합성 후에 Gate Level Netlist가 생성되고, 이는 PnR Tool의 입력임.
  • RTL Code와 Gate Level Netlist를 구분하기와 위해 '.vg' 확장자를 사용하기도 함.

② .vdh file (Verilog Design Hierarchy 파일)

'.vdh' File은 Verilog Design Hierarchy로 말 그대로 Digital Circuit의 계층 구조를 정의하고 기술정보를 제공하는 파일입니다. '.vdh' 파일은 Module, Sub-module, Instance 간의 관계를 정의하여 전체 설계의 구조를 명확하게 하고, node Size, Voltage, Tech 정보를 기반으로 한 Impdance, Power와 같은 기술적인 특정정보가 포함되어 있어, 회로 설계와 Simulation시 필요한 중요한 Database 역할을 합니다. 특히 회로의 계층 구조를 이해하기 위한 DRC, LVS와 같은 검증과정에서도 해당 파일의 정보가 반드시 필요합니다. 
  • VHDL File Format이며 문법 자체는 Verilog와 다르지만, 유사한 정보와 용도를 가지고 있음 
  • PDK에서 '.vdh' 파일은 Digital 설계의 계층 구조와 기술정보를 포괄적으로 표현하여 설계 검증 및 자동화 도구와의 유기적인 연결을 하는데 필요한 Data File 임.

③ .lib file (라이브러리 파일)

'.lib file'은 라이브러리 파일입니다. Cell의 전기적 특성 및 Timing 정보를 포함하고 있죠. 역시 Digital 설계에서 매우 중요한 Data File입니다. Logic Gate, Filp Flop 등 다양한 Cell들의 전기적 특성이 정의되어 있습니다. 이는 소자의 전압, 전류, 입 / 출력 임피던스 등의 정보가 모두 포함되어 있습니다. 그리고 이러한 각각의 Cell들의 Timing 정보를 포함합니다. 설계에서 신호간 지연 및 Setup / Hold Time 같은 특성의 이해가 필요할 때 도움이 되죠. .lib 파일을 기반으로 성능 최적화를 위한 타이밍 분석이 가능하게 됩니다.

이러한 라이브러리 파일은 Synopsys Design Complier, Cadence Genus 등과 같은 Synthesis Tool에서 주로 사용되며 타이밍 정보 뿐만 아니라 설계의 전력 최적화를 위한 전력 소모 분석에도 사용되는 파일입니다. 
  • '.lib file' 라이브러리 파일은 Liberty Timing 파일을 의미하며 Liberty Syntax을 따라 작성됨.
  • '.lib file'은 특정 Tech node의 Cell과 관련된 Timing 및 Power 관련 파라미터의 ASCII 표현임.
  • 기본적으로 Cell Delay, Cell Transtion, Setup & Hold time의 요구사항을 포함하고 있는 Timing Model 파일임.
  • '.lib  file'은 Gate or Macro Library의 Timing 및 Electrical Characteristics을 포함함.
  • '.lib file'은 Gate Library  Vendor나 Foundry에서 제공함. 
  • '.lib file'은 대표적으로 아래 정보를 포함함.
    (1) General Infomration & Common for all Cells.
    -. Library name, Technology.
    -. Units (Time, Power, Voltage, Current, Resistance, Capacitance)
    -. Process, Voltage and Temperature의 max., min., typical의 3가지 type이 있으며, 각기 별도 파일로 제공.
    (2) Cell Specific Information
    -. Cell name / pg pin (Ground 전원 핀) / Leakage Power / Area.
    (3) Pins
    -. pin name / pin 방향 / power/ capacitance / fanout load / rise capacitance / fall capacitance / function (in case of output) 

CSS (Composite Current Source) vs. NLDM (Non-Linear Delay Model)

CSS와 NLDM 모두 디지털 회로의 Cell 특성화를 위한 방법으로, 각각 Timing, Power Parameter를 모델링하기 위한 방법입니다. 

CSS (Composite Current Source) : Cell의 전류를 기반으로 Modeling 하기 때문에 Composite Current Source, 전류원을 사용하는 기법입니다. 전압에 따라 변하는 다양한 Current Source를 조합하여 Cell의 동작을 보다 정밀하게 재현할 수 있습니다. CSS는 Cell의 입력 전압과 출력 전류 간의 관계를 더욱 세밀하게 Modeling 할 수 있습니다. 결과적으로 전력소모와 동작속도에 대한 Model 인자들을 더 정확하게 제공할 수 있죠. 특히 여러 Parameter를 사용하여 다양한 조건에서 Cell의 특성들을 Modeling 하기에 더욱 정교하게 특성을 추출할 수 있습니다. 이 방법은 복잡한 회로를 효과적으로 Modeling 할 수 있으며, 일반적으로 Timing 분석 및 전력 예측에 아주 유용하게 쓰이는 방법이죠. 하지만 역시 보다 많은 계산 Resource가 요구되며, Simulation 시간이 상대적으로 깁니다. 그리고 '.lib' File의 크기 또한 크죠. 
NLDM (Non-Linear Delay Model) : NLDM은 시간 지연을 비선형적으로 Modeling 하는 기법입니다. 회로의 동작에서 전파 지연 및 Timing 분석을 수행할 때 사용됩니다. 반도체 소자의 특성에 따라 Delay가 Non-linear하게 발생할 수 있고, 이를 반영하여 일반적으로 입력 신호의 전압 수준이나 온도 등 다양한 조건에 따라 Modeling을 합니다. 

NLDM은 다양한 전압 조건에서 Delay를 정확하게 Modeling 할 수 있어 Cell의 동작을 예측하는데 매우 강력합니다. Non-Linear Modeling 기법이지만, 정밀한 Current Source Modeling이 필요하지 않기 때문에, CSS 대비 상대적으로 간단한 Modeling 방법이죠. 그래서 대체로 더 빠르게 Simulation이 가능하고, '.lib' File 용량이 작습니다. 
  • Cell Characterization
    (1) Cell의 Timing & Power parameter는 다양한 조건에서 Cell Simulation을 통해 얻고, 이 Data는 '.lib' File에 기록됨.
    (2) Cell을 특성화하고, '.lib' 파일을 생성하는 기술 2가지 : CSS & NLDM
    (3) CSS은 Current Source를 사용하지만, NLDM은 Voltage Source를 사용하여 '.lib' parameter를 추출함.
    (4) CSS가 NLDM 대비 더 많은 제어 변수를 가지므로, 더 정밀하고 복잡한 Simulation이 요구되며 '.lib' File 또한 더 큼.

  • 요약 : CSS과 NLDM 모두 Cell을 Characterization 하기 위한 기법이며, CSS를 할 것인지, NLDM을 할 것인지는 특정 Design Requirement나 조건에 따라 검토 후 선택되죠. CSS는 보통 보다 정밀한 특성화가 필요한 경우 사용되며, 더 많은 시간과 개발 Resource를 필요로 합니다. 반대로 NLDM은 빠르고 간단한 Modeling이 가능합니다. 하지만, 복잡한 특성을 모두 반영하기에는 Modeling의 한계를 가지기에 엔지니어가 어떤 방법을 사용할 지 심도있는 검토가 필요하죠.

④ .db file (Database 파일)

'.db' file은 Cell의 Time Delay, Setup & Hold Timing 과 같은 Timing 분석에 필요한 정보가 포함되어 있습니다. 어? '.lib' file도 Timing 정보가 포함되어 있다고 하지 않았는가?. 맞습니다. 사실상 '.db' file과 '.lib' file은 동일한 File이라고 보시면 됩니다. 두 Data 파일 모두 Cell의 Timing 정보 및 전력 예측을 위한 특성 (Switching Power, Leakage Power 등)에 대한 정보를 모두 포함하고 있죠. 그러면 무슨 차이가 있는가. 바로 Compiler Tool의 차이가 있습니다. Synopsys Tool (Design Compiler, IC Compiler)에는 '.db' File Format을 요구하는 반면, Cadence Tools (Genus, Innovus)는 '.lib' File Format을 요구한답니다.
  • '.db' file은 '.lib' file의 compiled version임.
  • 즉, '.db' file은 '.lib' file이 가진 Timing 정보 및 전력 예측에 필요한 동일한 Data를 포함하고 있음.
  • '.lib' file이 있으면, '.db' file을 쉽게 생성할 수 있음.
  • Synopsys Library Compiler는 '.lib' file에서 '.db' file로 conversion 할 수 있는 기능을 제공함.
    '.db' file은 Synopysys Tool에서 빠르게 처리됨 (Synopsys의 Native Format임.)
  • Synopsys Tool (Design Compiler, IC Compiler) → '.db' File Format
    Cadence Tools (Genus, Innovus) → '.lib' File Format
  • '.db' file은 Binary Format이기에 직접적으로 읽을 수 없지만, '.lib' file은 ASCII 형식이기에 읽기 가능함.

여러분들 오늘은 반도체 설계를 위한 PDK 내 다양한 Data File 중 Library File에 대해서 다루어보았습니다.
지금은 Data File이 생소할 수 있지만, 간단한 개념이라도 이해하고 계신다면 실무 하실 때, 많은 도움이 될 거에요ㅎ
와드만 박아두십쇼!

 

반응형
그리드형(광고전용)
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기