This blog is about VLSI design using Open-Source EDA Tools, including SystemC, iVerilog, Yosys, Auto-P&R, NetGen and Magic.
If you're about to begin IC design, Start here;
베릴로그 RTL에서 레이아웃 GDS-II까지 생성하는 전과정을 6502 CPU의 예제를 통해 살펴본다. 대상 반도체 공정은 ETRI 0.5um CMOS 2P3M이다[PDK Download]. 국가 나노인프라 협의체 KION[바로가기]에서는 이 공정을 이용해 연중 MPW를 진행하여 학생들이 설계한 칩을 무료로 제작해 주고 있다[바로가기]. 이 MPW는 풀-커스텀(Full-Custom) 아날로그 레이아웃 설계를 받고 있으나 경희대학교 반도체 전공 트랙 사업단에서 개발한 표준-셀 디자인 킷, ETRI 0.5um CMOS Std-Cell DK[바로가기]을 활용하여 디지털 설계 응모도 가능하다. 이 디자인 킷은 베릴로그 RTL의 합성(synthesis), 배치 및 배선(Auto Placement & Route) 그리고 레이아웃(Layout) 편집까지 전과정에서 무료로 사용할 수 있는 오픈-소스(Open-Source) 반도체 설계 도구들을 채택 하였다. 본 예제는 ETRI 0.5um CMOS Std-Cell DK를 활용하여 MPW에 제출 가능한 GDS-II의 생성까지 전과정을 설명한다.
6502 CPU[바로가기]는 오늘날 개인 컴퓨터 시대를 연 역사적인 모스 테크놀로지(MOS Technology Inc.[바로가기])사의 8-비트 마이크로 컨트롤러다[바로가기]. 이 CPU를 사용한 대화형 컴퓨터 시스템 Apple-1은 애호가들에 의해 복제되었고 판매되는 제품도 있다[바로가기][바로가기]. 넥슨 컴퓨터 박물관[바로가기]에 Apple-1의 원형이 전시되어 있으며 실제로 작동 시키는 모습이 공개됐다[바로가기].
예제에 사용된 베릴로그 RTL 소스는 애호가(취미가)에 의해 재현된 것으로 공개되어있다[바로가기]. 칩 레이아웃을 생성하기 전에 베릴로그 RTL을 검증 하기 위해 이 CPU를 사용한 개인 컴퓨터 Apple-1을 SystemC/C++[바로가기]로 시스템 수준에서 모형화 하고 워즈니악[바로가기]의 모니터 롬(Monitor ROM)을 적재하여 구동 시켜본다. 40년전의 CPU와 컴퓨터 시스템 이지만 오늘날 활용 가능한 오픈 소스 도구들을 써서 높은 추상화 수준(시스템 수준)에서 검증해 본다.
베릴로그 RTL의 검증에 SystemC/C++[바로가기]를 사용한 시스템 수준 테스트 벤치를 제작하였다. 오픈-소스 베릴로그 시뮬레이터 Icarus Verilog[바로가기]가 상당한 수준에 이르러 여러 교육용 목적으로 사용되고 있다[바로가기][바로가기]. 시뮬레이션 실행을 빠르게 수행하기 위해 실행형 컴파일러[주1]외에 언어 변환기[주2]가 사용되기도 하는데 오픈 소스 변환기 베릴레이터 VERILATOR[바로가기]가 있다.
주1] 컴퓨팅 언어로 기술된 구문을 컴파일하여 특정 운영체제 상에서 실행할 수 있는 바이너리 실행 파일을 생성한다. 케이던스 Verilog-XL, Icarus Verilog 가 이에 해당한다.
주2] 컴퓨팅 언어로 기술된 구문은 다른 언어로 변환한다. VERILATOR는 베릴로그 언어를 C/C++ 언어의 구문으로 변환 시켜준다. 하드웨어의 병렬성을 모사하기 위해 쓰레딩 라이브러리(POSIX Thread[바로가기] 또는 SystemC[바로가기])를 활용한다.
본 예제에서는 베릴로그 RTL의 검증에 두가지 방법을 사용한다. 첫번째 방법은 언어 변환기다. 베릴레이터로 변환된 SystemC 모델을 시스템 수준 SystemC/C++ 테스트 벤치에 결합하여 베릴로그 RTL을 검증 한다. 두번째 방법은 상이한 시뮬레이터를 유기적으로 묶는 병행 시뮬레이션(Co-Simulation[바로가기][바로가기])이다. 하드웨어 언어는 물론 SystemC/C++ 까지 모두 수용하는 시뮬레이터 QuestaSim을 사용한다. 상용 도구와 비교해 봄으로써 오픈 소스 툴의 기능적 유효함을 알아본다. 오픈 소스 설계 도구를 활용한 6502 CPU의 검증과 레이아웃을 생성하는 흐름은 다음과 같다.
베릴로그 RTL에서 시작하여 반도체 제작용 레이아웃 도면 GDS을 생성하기까지 여러번에 걸쳐 추상화 수준 낮추기(Abstraction Level Lowering)가 발생 한다. 이 때마다 기능과 전기적 특성의 검증이 이뤄져야 한다. 설계 흐름(Design Flow)와 검증 흐름(Verification Flow)가 병행 되고 있는 것을 볼 수 있다.
댓글 없음:
댓글 쓰기