[고급 디지털 제조 2강] 컴퓨팅 언어와 하드웨어 모델링
1강 복습:
- 이번 학기중 학습하게 될 내용은 다음과 같다.
1. 컴퓨팅 언어로 하드웨어를 모델링 하고 시뮬레이션(simulation)을 실시한다. 이 컴퓨팅 언어에는 하드웨어를 기술(HDL, Hardware Description Language)할 목적의 Verilog 는 물론 알고리즘의 기술에 최고 추상화 수준의 C++를 포함한다.
2. 시뮬레이션 뿐만 아니라 FPGA 에뮬레이션(emulation)을 통해 검증한다. 검증된 설계물은 합성(synthesis)과 자동 배치배선(Auto-Placement & Routing) 그리고 반도체 제조도면(GDS layout)을 생성하여 "내 칩" 제작을 의뢰하는 과정을 배울 것이다. 합성은 HDL의 RTL(Register Transfer Level)뿐만 아니라 고위합성(High-Level Synthesis)을 포함한다.
3. 반도체 설계에 필요한 도구(하드웨어 및 소프트웨어)들은 오픈-소스 또는 무료 라이센스 FPGA 도구들이다.
1강 과제:
모든 수강생은 각자의 책상위에 반도체 설계실을 꾸며야 한다. 아래의 문서에 따라 리눅스 운영체제와 오픈-소스 반도체 설계도구들을 설치해야한다.
1. "가상머신 리눅스 설치"[바로가기] 또는 "다시 WSL!"[바로가기]
윈도우즈 PC에 가상 리눅스 설치 방법은 VMware, VirtualBox, WSL 이 있다. 위의 문서는 세가지 방법을 모두 설명한다. 어느 방법도 좋다. 랩탑에 설치하는 경우 가장 가벼운 WSL을 추천한다.
2. "오픈-소스 반도체 설계 도구 설치"[바로가기]
베릴로그 합성과 시뮬레이션, SystemC/C++ 시스템 모델링, 표준 셀 자동 배치배선(Placement & Routing), 레이아웃(GDS) 생성, 사인-오프(LVS, DRC, Via Check)등 반도체 설계에 필요한 모든 도구들을 설치하는 방법을 설명한다.
* 도구 설치에 어려운이 있다면 이번 주 수업중 논의 할수 있도록 질문지를 작성해 온다.
2강: 컴퓨팅 언어와 하드웨어 모델링
학습할 내용:
1. 반도체 설계자로서 컴퓨팅 언어를 이해해본다. 하드웨어 언어 베릴로그와 소프트웨어 언어 C++의 차이를 비교한다.
2. 하드웨어를 모형화를 위해 컴퓨팅 언어의 요건이 무엇인지 이해한다.
3. 컴퓨팅 언어로 하드웨어의 병렬성 실행을 모의하는 방법을 이해한다.
4. C++ 언어의 크래스(class)의 개념, 사건과 콜-백 그리고 변수와 채널의 개념을 이해한다.
5. make 유틸리티의 Makefile 작성법 기초를 배운다.
예습해올 사항:
1. "하드웨어 언어의 코딩 스타일"[바로가기]
2. "C++언어의 크래스와 템플릿의 최소한 이해"[바로가기]
3. "Standard Co-Emulation Modeling Interface (1~4장까지)"[바로가기]
* 위문서를 읽어보자. 어지간한 전공자도 처음 듣는 용어들이 있을 것이다. 최선을 다해 끝까지 읽어보자. 그리고 질문할 내용을 "연구노트"에 적어보자. 수업 시간에 논의하도록 한다.
준비물:
1. 모든 수강생은 각자 "연구노트"를 준비하여야 한다.
A4 크기의 공책을 준비한다. 이 공책에 학습 한 내용과 질문 사항을 메모한다. 필사로 작성하며 정서할 필요 없다. 이 "연구노트"는 학습 진도를 파악하고 학기말 성적에 반영될 것이다.
2. 랩-탑 컴퓨터를 소지하여도 좋다.
수업시간 중에는 토론과 의문을 해소하는 시간이다. 랩-탑이 반드시 필요한 것은 아니다.
--------------------------