2023년 12월 30일 토요일

ETRI 0.5um CMOS Std-Cell DK 예제: ALU8 [7]/표준 셀 병합(Migration)

ETRI 0.5um CMOS Std-Cell DK 예제: ALU8 [7]

VII. 표준셀 병합(Migration)
    VII-1. Magic: 레이아웃 변환도구
    VII-2. 레이아웃 생성 티클 스크립트

----------------------------------------------

VII. 표준 셀 병합(Migration)

공정에서 제공하는 표준 셀의 내부 모습은 노출되지 않는다. 자동 배치와 배선을 위해 외형만 제공된다. 공정마다 디자인 킷의 저작권 이기도 하지만 사실 설계자로서 입출력의 물리적 특성을 알면 되지 굳이 속 모습까지 알아야할 필요도 없다. 물론 높은 호기심을 가졌거나 편집과 복제를 하고싶은 경우는 다를 것이다.

마이그레이션은 자동 배치와 배선을 마친 DEF를 가지고 레이아웃(평면 세부 도면)을 생성하는 과정이다. QFlow의 표준 셀 병합 명령은 아래와 같다.

    % qflow migrate ALU_wrapper
    ============================
    ./layout/ALU_wrapper.def
      |
+-----V-------------------------+
|Magic: Migration            <-------- [Std-Cell Layout(Mag/GDS)]
|                               |
|    -> SPICE Netlist for LVS -------> ./layout/ALU_wrapper.spice
|    -> Merged Layout         -------> ./layout/ALU_wrapper.mag
+--------------+----------------+
               |
               V
              LVS (Layout-Vs.-Schematic)

배선을 마친 DEF 는 셀의 배치와 배선의 무수한 좌표들이 기록되어있을 뿐이다. 공정에서 마스크를 제작하려면 실제 평면위에 그려진 도면이 있어야 한다. QFlow는 도면을 그리고 편집하는 레이아웃 도구로 Magic 을 사용한다.

VII-1. Magic: 레이아웃 변환도구

셀 병합을 위해 사용되는 도구는 Magic 이다. Magic[link]은 80년대 초부터 컴퓨터 그래픽 기능을 이용하여 반도체 설계를 시작하던 시절부터 개발되고 공개된 레이아웃 편집 및 공정 변환 소프트웨어다. 2023년 말 현재(최신 안정화 버젼은 8.3)까지 꾸준히 발전하고 있다. 편집 뿐만 아니라 기술파일(Tech. File)을 수정하여 여러 반도체 공정에 맞는 레이아웃 파일 형식으로 변환 할 수 있다.

위의 QFlow 명령은 자동 배선을 마친 DEF를 입력하여 Magic의 레이아웃 파일로 변환한다. 로그 파일을 보면 아래와 같은 작업을 수행한다. 레이아웃 편집 없이 공정에서 제공된 셀을 채워 넣고 배선된 메탈을 그려 넣는다. 굳이 그래픽 화면을 띄울 필요 없이 Magic을 명령 줄로 실행 한다.

    Magic 8.3 revision 453
    Starting magic under Tcl interpreter
    Using the terminal as the console.
    Using NULL graphics device.

    Processing system .magicrc file
    Input style lambda=0.30(p): scaleFactor=30, multiplier=1
    Contact size value ignored (using GDS generation rules).

    Loading "migrate_ALU_wrapper.tcl" from command line.
    Reading LEF data from file .../etri050_stdcells.lef.
    Reading DEF data from file ALU_wrapper.def.
    ......
    Generating LEF output ALU_wrapper.lef for cell ALU_wrapper:
    ......
    Extracting NAND2X1 into NAND2X1.ext:
    Extracting OAI21X1 into OAI21X1.ext:
    ......
    Extracting DFFPOSX1 into DFFPOSX1.ext:
    Extracting MUX2X1 into MUX2X1.ext:
    Extracting ALU_wrapper into ALU_wrapper.ext:
    exttospice finished.

VII-2. 레이아웃 생성 티클 스크립트

QFlow가 레이아웃을 생성하면서 Magic을 실행 시킬 때 티클 Tcl 스크립트를 사용한다. 상용 도구들도 대부분 티클의 명령줄 처리(Command-line interpreter)를 활용하여 사용자 인터페이스를 구축한다. 티클은 문법이 단순하며 이식이 쉬워서 여러 도구들의 명령줄 사용자 인터페이스에 접목되어 사용되었고 프로시져(함수)등 컴퓨팅 언어로서 손색없는 강력한 기능을 제공한다[link].

레이아웃 편집 없이 공정에서 제공된 셀을 채워 넣고 배선된 메탈을 그려 넣는다. 굳이 그래픽 화면을 띄울 필요 없이 Magic을 명령 줄로 실행 한다.

    [QFlow]Running magic 8.3.453
    magic -dnull -noconsole  migrate_ALU_wrapper.tcl

레이아웃 생성을 위한 티클 스크립트는 아래와 같다. 대부분 Magic의 명령들만 보인다. 티클의 명령줄 처리를 이식해서 사용하고 있어서 스크립트를 읽어보면 티클의 문법적 특성이 잘 드러나지 않는다.

    box 0 0 0 0
    drc off
    snap int
    lef read /usr/local/share/qflow/tech/etri050/etri050_stdcells.lef
    def read ALU_wrapper
    load ALU_wrapper
    select top cell
    <......>
    writeall force ALU_wrapper
    lef write ALU_wrapper 
    expand
    extract all
    <......>
    ext2spice
    quit

스크립트의 내용은 단순하다. LEF와 DEF를 읽어들여 Magic의 레이아웃 형식의 파일로 저장한다. 끝으로 레이아웃 도면에서 LVS를 위해 SPICE 네트리스트를 추출한다.

----------------------------------------------

[목차][이전][다음]


댓글 없음:

댓글 쓰기