0. ASIC 설계 과정

ASIC은 Application Specific Integrated Circuit의 준말로, 특정한 목적과 기능을 위해 맞춰진 집적회로(IC)를 말한다.

즉, 주문형 반도체는 고객의 목적을 위해 필요한 기능을 수행하도록 제작되는 것을 말한다. 이러한 반도체를 만들기 위해서는 일반적인 설계 과정이 존재할 수 밖에 없는데 다음과 같다.

 

1. Application : 어떠한 목적을 가진 칩을 만들것인가?

 

2. Specifiaction : 요구되는 목적과 성능을 위해 칩을 어떻게 구성할 것인가?

- 비단 반도체 업계에서만 그러는 것이 아닌, 공학 분야에 적용되는 단계이다. 최종 결과를 뽑아내기 위해서는 그에 알맞은 스펙을 명확하게는 아니여도 추상적으로는 머릿속으로 그려볼 수 있어야 한다. 이 단계에서는 추상적으로나 구체적으로나 그려진 블록 다이어그램(Block Diagram)을 보며, 실제로 디자인을 해야하는지, 외부 IP를 사용하는지 결정한다.

- 고려해야 할 요소 : [Chip의 기능과 성능 : 전력, CPU Performance], [동작하는 디바이스], [직접 개발과 외부 IP를 결정하며 개발에 필요한 인력과 기간, 자본을 고려]

 

3. Design : 고객이 요구하는 기능을 오류 없이 정상 작동할 수 있도록 해야하는데 이를 RTL로 어떻게 구현할 것인가?

- 설계자는 요구되는 성능에 맞춰 디지털 회로를 구현할 필요가 있으며, 이는 RTL(Resister Transfer Level) 표현을 통해 구현이 될 것이다. 위 과정에서 그려낸 블록을 HDL로 기술하는 과정이다.

 

4. Verification : 3단계에서 진행된 설계 디자인이 완벽하게 의도대로 작동하는가?

- 설계 단계에서 중요한 비중을 차지하는 검증(Verification) 단계이다. 우리는 소프트웨어를 만드는 것이 아닌 하드웨어를 만드는 개발자이다. 이 말은, 내가 오류를 잡지 못하고 이 칩이 그대로 고객사에 전달되어 최종 반도체로 양산이 됐을 때 이를 전혀 수정할 수가 없다는 것이다. 따.라.서 검증을 통해 어떠한 오류도 없게 해야 한다.

- 이 검증을 하기 위해 우리는 Simulation을 하게 된다. 시뮬레이션을 하기 위한 프로그램 중 대표적으로 Cadence(케이던스)의 ncVerilog / Synopsys(시놉시스)의 VCS / Mentor Graphics의 Modelsim 등이 존재한다. 이 프로그램을 사용하여 테스트 벤치(Test Bench)를 작성해서 설계자가 만든 블록이 대부분의 상황에서 정상 작동을 하는지 확인을 하게 된다.

 

5. Synthesis : 검증된 디자인을 어떻게 Gate Level로 합성할 것인가?

- 이제 RTL을 직접적으로 Hardware로 변환을 하게 되는데, 이를 우리는 합성(Synthesis) 과정이라고 부른다. Intel의 Quartus와 같은 프로그램에서 합성 과정을 진행할 수 있는데, 여기서 우리는 칩의 딜레이, 클락 스피드 등을 확인할 수가 있다. 이를 통해, 우리가 원하는 스펙에 최적화를 할 수 있도록 수정을 하고 이 단계에서 맞출 수가 없다면 다시 RTL을 만드는 Design 단계로 돌아가게 된다.

 

6. Back-End : 합성된 Gate Level 회로를 실제 칩에 적용될 GDS로 어떻게 만들것인가?

- 우선적으로 앞선 과정은 Front-End로 칭할 수 있다. 그렇기 때문에, Back-End 과정은 다른 엔지니어가 맡게 된다.

- GDS(Graphic Database System)는 설계자가 만들어낸 최종 결과물이다. 공정에서는 이를 받아들여 ASIC를 제작하게 되고, GDS를 넘기는 과정을 우리는 'Tape Out'라고 한다. (GDS와 Tape Out은 아는게 좋겠다고 생각한다. 필자가 많은 기업에서 면접을 보고 시험을 치룬 것은 아니지만, 가끔 전공 용어에 대한 질문이 나온다. 이게 그리 어려운 것도 아니고 10번 정도 머리에서 되뇌이면 각인을 할 수 있기 때문에 해두는 걸 추천한다.)  전달받은 Backend 엔지니어는 'Test Logic'이라는 과정을 통해 칩이 생산된 후에도 정상 작동하는지를 검증을 하게 됩니다.  이 단계에서 정상적으로 끝나면 P&R(Place and Route) 단계를 진행하게 된다. P&R은 Die 위에 어떻게 배치하고, Gate를 연결하는 Wire를 어떻게 배선해야하는지를 결정하는 과정이다.

 

7. Test : 실제 칩에 Bug가 없다고 확신할 수 있는가?