칩설계 _ Back-end Design
3. Physical Design단계 (Back-end Design)
Physical Design과정은 다른 말로 Layout과정이라고 합니다.
Back-end Design이라는 용어도 사용합니다.
Fabless회사에서 합성된 netlist를 디자인하우스에 release 하면 backend 업체는 DFT 즉 Design for Testability 작업으로 BIRA, BIST, SCAN 등의 test logic을 넣게 됩니다.
이러한 test logic은 chip이 생산된 후에 chip이 올바로 동작하는지 검증하기 위한 가장 기본적인 것으로, 원래의 netlist의 동작은 그대로 유지하면서 test mode에서만 동작하는 logic입니다.
이와 같은 logic을 넣은 후에 그 logic의 chip Test vector를 만들게 됩니다. chip이 나오면 chip의 특정 pin에 test 장비를 물려서 data를 넣고, 다른 pin에서 출력 data를 뽑아서 원하는 결과가 나왔는지 검사를 하게 되는데, 이를 위해 입력 data와 올바른 출력 data를 만들어 두어야 합니다.
Test logic 관련 일이 끝나면 이제는 P&R 즉 Placement & Routing 작업을 진행합니다.
Netlist는 단지 gate들이 어떻게 연결되었는지를 나타내 주는 것이라 그것을 반도체 die 위에 어떻게 배치(Place)할지와 gate 간의 연결을 해 주는 wire을 어떻게 놓을지(Route)를 결정하는 과정이 바로 P&R 과정입니다.
당연히 사람이 손으로 할 수는 없고 tool을 이용하게 되는데 그래서 P&R을 APR 즉 Automatic Placement & Routing 이라고도 합니다. 레이아웃에는 주로 Cadence사 Tool을 사용합니다.
Physical Design과정을 좀 더 자세히 설명하면 다음과 같습니다.
먼저 Partitioning 과정을 통해서 전체 Netlist를 쪼개게 됩니다.
Netlist를 한 번에 Place&Route 하게 되면 너무 복잡도가 높아서 CAD Tool이 핸들링할 수 있는 정도로 나눠서 진행을 하는 것을 Partitioning이라고 합니다.
그리고 나눠진, Partitioning 된 영역들을 어디에 배치할 것인지 Floorplanning 과정을 통해서 진행하고, Hardmacro, Standard Cells 등을 배치시키는 Placement Optimization과정을 진행합니다.
Place Optimization 결과를 이용하여 최소의 clock buffer가 삽입될 수 있도록 CTS 즉 Clock Tree Synthesis 최적화를 진행합니다.
Place Optimization과 CTS Optimization 결과를 이용하여 최종적으로 배선(Routing)을 시도하면서 Routing 최적화를 진행합니다.
그 과정 모두 끝나고 나면, 이게 타이밍적으로 잘 동작하는지, Timing constraint를 만족하는지를 확인하는 과정인 Timing Closure 과정을 거치면 최종적으로 Physical Design이 완성됩니다.
[ Routing Pattern 예시 ] 레이아웃이 끝나면 레이아웃이 잘되었는지를 검증해야 합니다.
검증하는 항목은
레이아웃이 디자인 룰에 맞게 제대로 되었는지 검증하는 DRC, Design Rule Check ,
내부에서 전기적으로 끊어짐 없이 제대로 되었는지 검증하는 ERC, Electrical Rule Check,
레이아웃이 Gate level netlist와 Schematic과 일치하는지 확인하는 LVS, Layout vs Schematic
등이 있습니다.
그런데 제대로 된 레이아웃에서 의도한 소자들 외에도 기생 소자(Parasitic device)가 나타납니다.
이런 기생 소자는 실제 Cell들이 연결되는 두께와 길이에 따라 부수적으로 어쩔 수 없이 나타난 것입니다.
이런 기생 소자들은 딜레이를 유발하는데 잘못하면 반도체 칩이 오작동을 하게 됩니다.
그래서 기생 소자들의 저항값들을 추출해서 그런 기생 소자들이 존재하는 상태에서도 반도체 칩이 제대로 동작하는지 게이트 수준에서 다시 한번 시뮬레이션으로 검증합니다.
이를 보통 Post- Simulation이라고 합니다.
이 과정 중에 bug가 발견되면 재설계를 진행해야 합니다.
bug을 netlist에서 수정이 가능하다고 하면 netlist에 약간의 gate를 넣고 빼어 수정을 하는데 이것을 ECO(Engineering Change Order)라고 부릅니다.
그러나 Netlist level에서 수정이 불가능하면 다시 RTL 수정 등으로 돌아가서 모든 과정을 다시 거치게 됩니다. 이런 일이 발생하면 설계 엔지니어는 멘붕에 빠지곤 합니다. ^^
이후 모든 검증이 끝나면 레이아웃 데이터인 GDS file을 Mask제작회사에 넘겨 MASK를 제작하게 됩니다. 이런 과정을 PG OUT이라고 하고 이 과정까지 마치면 칩 설계는 마무리됩니다.
PG OUT을 Tape Out 이라고도 하는데 예전에는 GDS file을 카트리지 테이프에 담아서 전달했기 때문입니다.
PG OUT이 무사히 완료되면 대개 설계 엔지니어들은 술집으로 달려가 술을 진탕 마시며 자신들의 수고를 위로하곤 합니다.
[ Back-end design ]
[ 출처: 코아시아세미 홈페이지 ]