Knowledge/Basic

SoC ASIC Flow(디지털 반도체 설계)

VIR&US 2023. 7. 20. 20:01
반응형

목차


    Front End Flow

    Design Specification, RTL Design

    디자인의 스펙을 정하고, IP를 선정 및 구매하고 필요에 따라 logic를 설계하고 Integration 하는 과정입니다. 현재는 주로 Verilog HDL를 사용합니다.

     

    Design Verification

    Coverege 100%를 목표로 보통 UVM환경에서 Simulation를 통해  디자인의 오류가 없는지 점검하고, 모든 코드들을 검증합니다. 기능적인 측면을 중점으로 검증이 이뤄집니다. Soft IP가 주 대상이며, Hard IP의 경우 model를 물립니다. VCS, Xcelium 같은 Tool를 주로 사용합니다.

     

    Loigc Synthesis

    SDC(Synopsys Design Constraint)를 작성하고 공정에 따른 Standcell과 Memory, GPIO&PAD와 같은 Hard IP들의 Liberty file를. db형태로 물려 합성을 진행합니다. 상황에 따라 Memory는 BlockBox로 두는 경우도 많습니다. 합성 이후 RTL 디자인은 Gate level netlist로 바뀌게 됩니다. 여기서 나온 netlist를 pre-netlist라고 부릅니다. Design Compiler를 주로 사용합니다.

     

    Equivalence Check

    RTL과 pre-netlist가 같은지, 기능상 차이가 없는지 같은 input를 넣어 output를 비교함으로써 체크합니다. formality를 주로 사용합니다.

     

    Pre STA

    "in to out", "in to reg", "reg to reg", "reg to out" 4 Path에서 timing 문제가 없는지 check 하고 timing문제가 있다면 디자인을 수정하거나 추가하여 잡습니다. Pre단계에서는 net(wire) delay가 없기 때문에 setup를 보게 됩니다. PrimeTime를 주로 사용합니다.

     

    Pre Simulation

    Design Verification 단계에서 사용했던 Simualtion 환경을 re-use 하여 DUT(Design under test)만 netlist로 교체하여 시뮬레이션을 돌립니다. 이 과정에서 Pre에 사용할 SDF가 있다면 추가하거나, 아니면 VCS, Xcelium의 옵션인 "delay_mode_path", "delay_mode_unit"을 넣어 시뮬레이션을 돌리게 됩니다. VCS, Xceliunm를 주로 사용합니다.

     

    GLS관련 Cadence사의 자료입니다. 

    Gate-Level Simulation Methodology

    Back End Flow

    Floor Planning, Place & Routing

    여기서부터는 실제 Chip의 배치를 관장합니다. SRAM, PLL, AP, IP 등 실제 연결과 배치를 하는 과정입니다.

    이후 물리적인 도면(Physical Layout)으로 변환됩니다. P&R은 넷리스트 상의 단위 소자인 라이브러리(Library)를 배치(Placement)하고 핀(Pin)들이 연결되도록 배선 (Route) 하는데 이때 주어진 디자인 제약조건(Design Constraint)을 충족하는 배치 하여야 합니다. P&R 과정을 거치면 물리적인 도면이 생성됩니다. 이는 GDS(Graphics Design System) 형식의 파일로 저장되는데 이 과정을 물리 합성(Physical Synthesis)이라고 합니다. GDS는 SDF(Standard Delay format), Post-netlist로 변환하여 Post STA, Sim를 진행합니다. ICC2, Innovus를 주로 사용합니다.

     

    Equivalence Check

    RTL과 Post-netlist가 같은지, Pre-netlist과 Post-netlist가 같은지 기능상 차이가 없는지 같은 input를 넣어 output를 비교함으로써 체크합니다. formality를 주로 사용합니다.

     

    RC EXTRACTION(Parasitic extraction)

    지연을 계산하기 위해 R(저항), C(커패시턴스)를 추출하는 과정입니다. StartRC과 같은 Tool를 사용합니다.

     

    Post STA

    Post-netlist와 net-delay정보인 SDF(Standard Delay format)에 대하여 setup과 hold timing 문제가 없는지 체크하고 문제가 있다면 디자인을 추가하거나 수정합니다. 만약 간단한 수정으로 해결할 수 없다면, 맨 처음 RTL Design까지 다시 올라가 수정을 진행하고 아래 과정을 반복해야 합니다. 이과정을 ECO(Engineering Change Order)라 흔히 말하며 FECO(Function Engineering Change Order), MECO(Metal-mask(post) Engineering Change Order)가 있습니다. FECO(Function Engineering Change Order)는 흔히 Chip를 생산하기 이전에 기능적인 측면을 수정하는 것을 말하며, MECO(Metal-mask(post) Engineering Change Order)는 Chip 생산 이후 간단한 회로의 수정이 필요한 경우 반도체의 빈 공간에 있는 and, or, nand, xor 게이트들을 활용하여 수정하는 것을 말합니다. PrimeTime를 주로 사용합니다.

     

    Post Simulation

    GLS라 흔히 말하는 단계이며, Simualtion 환경을 re-use 하여 DUT(Design under test)를 post-netlist로 교체하고 SDF를 추가하여 시뮬레이션을 돌립니다. Post Simulation은 정말 오랜 시간이 소요되기에, 보통 wst(최악), typ(보통), bst(최고)의 상황정도만 돌립니다. VCS, Xceliunm를 주로 사용합니다.

     

    결론

    해당 과정은 큰 맥락에서 작성한 ASIC Flow입니다. 자세하게 들어가면 내용이 방대합니다. 실제 Chip생산에 있어서는 해당과정 중에 CDC(Clock Domain Crossing), Power Check (ex. VCLP Tool), Lint(ex. SpyGlass Tool)등 여러 Sanity check 거친 후 생산됩니다. 생산된 반도체는 여러분들의 사용하는 핸드폰이나 컴퓨터에 들어가게 됩니다. 이후에도 initialize를 위해 ROM, SD Card 등의 데이터를 미리 설정해주어야 하고 펌웨어(응용 소프트웨어) 엔지니어가 Chip를 사용할 수 있게 설정하고 OS를 올리고 소프트웨어등을 올려 실제 사용할 수 있게 됩니다.

     

    728x90
    반응형