SoC란?
SoC는 System On Chip. 프로세서, 메모리, 주변장치 등을 한 칩에 올린 것이다.
SoC의 장점
빠르고, 싸고, 효율적이고, 작게 만들기가 기존 칩보다 좋기 때문이다.
SoC는 어떻게 만들까? SoC 과정
간단히 5단계로 나누면, “계획 -> 설계 -> 검증 -> 배치 -> 공정” 과정이다.
설계를 어떻게 하나요?
HDL(Hardware Discription Language)를 바탕으로 코드를 작성합니다.
Tool - Verilog HDL, VHDL, 최근에는 HLS로 넘어가고 있습니다.
RTL Synthesis란? (합성)
레지스터들과 그 사이의 조합논리들을 알 수 있도록 정의하는 것입니다. 합성은 시뮬레이션 검증 다음 수행됩니다.
HLS란?
C/C++/System C로 High Level Synthesis를 하는 것입니다.
HLS의 장점
코딩, 디버깅, 검증을 기존 Verilog보다 빠르게 할 수 있습니다.
(1) 기존 Veilog에서 필요한 코드의 수를 HLS에선 많이 줄일 수 있습니다.
(2) Verilog coding이 끝나면 Function 검증을 System Verilog에서 하는데, HLS는 사용한 언어로 검증을 하는데, 더 빠르다는 장점이 있습니다.
SoC를 만들려면 뭐가 필요한가요?
EDA Tool이 필요한데, Digital에서는 Synopsys, Analog에선 Cadence가 대표적이고, 이외에 Siemens 등이 있습니다.
합성이란?
HDL로 작성된 RTL code를 실제 gate로 Tanslation하고, .sdc의 design rule constraints를 바탕으로 gate optimization과 mapping하는 것.
RTL, Disign Kit, Constraint file를 통해 Gate Level Netlist(Logic gate 수준의 회로도)를 만듭니다.
(1) Design KIT - 공정사인 SAMSUNG, tsmc에서는 제한 사항을 설계 회사에 미리 알려줍니다.
가. Standard cell - 공정사가 갖고있는 셀들의 크기, 동작속도 같은 스펙의 정보가 들어있습니다.
(A) Filler cell - 한 회로 안에도 어떤 부분은 집적도가 높고, 어떤 부분은 낮다. Filler Cell은 이름처럼 빈 부분에 삽입되어 wall의 연속성을 맞처준다.
(B) Endcap - Dopant가 wall에 부딪혀 튕겨나가면, 원치 않는 부분이 Doping된다. 그것을 완충역할을 하도록 wall의 양 edge에 Endcap 넣어준다.
(C) Antennnas - 공정 중에 회로의 분리된 마디에서 전하 과축적이 일어나 Gate가 파괴되는 경우가 있다. 이것을 Antenna effect라 하고, 이것을 보호하는 것이 Antennas이다.
(D) PMK(Power Management Kit) - 유효 전력과 누설 전력을 줄이기 위해 쓰입니다.
(E) Retention - Power Shutdown동안 data를 유지시키기 위해 필요합니다.
(F) Tie Cells - 1 혹은 0으로 고정되게 하는 cell이다. 전압원에 직접 연결되어 전압원의 값이 변하지 않게 하기위해 필요하다.
나. IP cell
다. PDK - Metal width, well width 등 공정사가 설계사에게 주는 Design Rule입니다.
라. IO PAD
마. MEMORY
(2) Constraints file
‘계획’단계에서 만든 Spec을 이용합니다. 이 Spec을 통해 실제적으로 회로가 구동될 때는, ‘A에서 B로직 가는데 1초 필요하고.. 최종 크기는 100으로 제한된다.’라는 예상 제한값을 만들어서 합성 Tool에 넣으면 거기에 맞는 Gate level netlist가 나옵니다.
과정은, read_verilog -> analyze(오류 확인) -> elaborate (부울식인 Gtech으로 변환) -> LinK (library 연결) -> source(constraints 적용.)
Synopsys - Design Compiler
검증이란?
시뮬레이션 검증, 기능 검증, 타이밍 검증 등 다양한 검증이 있습니다.
(1) Simulation Verification. 시뮬레이션 검증 - RTL을 통한 입력값에 대한 출력 값을 검증합니다. 어떤 입력을 하는지 알려주는 Testbench가 필요합니다.
Synopsys - VCS, Cadence - ncsim, Siemens - modelsim
(2) Physical Defect Verification. 논리의 물리적 결함에 대해 찾는 검증 - 이 방법에는 검증테스트회로를 삽입하는 DFT, 입력값들 만들어서 검사 후 검사율을 알려주는 ATPG가 쓰입니다.
Synopsys - DFT Compiler, TetraMAX ATPG, TestMAX ATPG
(3) Timing Verification - 안정적인 데이터 전달을 위한 최소시간인 setup/hold time을 만족하여 회로가 동작하는지 검증. 배치전엔 Pre-STA라 불리며 Wire Load Model(회로의 크기에 따라 RC값을 정한다.)을 사용해서 네트딜레이를 어림잡아 딜레이 검증을 하고, 배치 후엔 Post-STA라 불리며, .spef파일을 사용해 정확한 타이밍 검증을 다시한다. 문제가 생기면 ECO(engineering change order)를 해서 수정을 요청합니다.
Synopsys - Prime Time
배치 및 연결이란?
입출력 핀, 파워, 셀을 배치 및 연결하는 것입니다.
(1) Floor Plan - 블락 베치를 어떻게 할지 계획을 수립합니다.
(2) P&R(Place & Route) - 배치 배선합니다.
(3) CTS(Clock Tree Synthesis) - 한 클럭에서 나가더라도, 각 핀에 들어가면 각기 다른 시간이 생기는데, 이를 Latency라 하고, 이 Latency의 차를 Skew라고 한다. 이 Skew를 지연기를 이용해서 맞춰주는데, Skew balacning이라고도 한다.
SoC의 동작조건을 어떻게 정할까?
PVT라고한다. Processs는 적을 수록, Voltage는 높을 수록, Temperature는 낮을 수록 원활하게 동작한다. (고전적으로, 온도가 증가할수록 비저항이 증가하여 이동성이 감소하게됩니다. 허나, 극초전압영역에서는 온도가 높을 수록 이동성이 높아집니다. 자세한 것은 TEI에 대한 논문 참고.)
그러므로, Process가 많고, Voltage가 낮고, Temperature가 높은(저전력에선 낮고)환경에서 동작하는 회로가 많은 곳에서 쓰일 수 있는 좋은 회로이다.(군사용)