2026년 10월 3일 토요일

[내칩강의2026/3주] 3-1. 지난주 학습 토론

[내칩강의2026/3주] 3-1. 지난주 학습 토론

이 강의[안내 링크]를 수강 중인 학생들은 매주 과제를 수행하고 학습 노트를 제출합니다. 2주차 주요 학습은,

    [내칩강의2026/2주] 2-2. 바이브 코딩으로 '우주 침략자' 게임 만들기 [학습 페이지 바로가기]

수강 학생 모두 과제를 수행하고 학습 노트를 아래와 같이 보내 왔습니다. 학습 동료들의 학습 진도와 관점을 참조하시기 바랍니다. 내가 미쳐 가지지 못했던 의문을 살펴보시고 서로 토론하며 안목을 넓히십시요.

1. 권효재의 학습노트 바로가기
2. 김예원의 학습노트 바로가기
3. 김희창의 학습노트 바로가기
4. 안준영의 학습노트 바로가기
5. 안휘준의 학습노트 바로가기
6. 염재민의 학습노트 바로가기
7. 이수빈의 학습노트 바로가기
8. 이현서의 학습노트 바로가기

과제 총평:

- 수강생들 모두 과제를 수행하고 실습 하는데 필요한 소프트웨어(리눅스와 오픈 소스 반도체 설계 도구)를 설치하였습니다.
- 컴파일 한 바이너리 코드를 아듀이노 보드로 업로딩 하는 방법을 실습 하였습니다.
- 간단한 비디오 게임기 코드를 살펴봤습니다. 소프트웨어 언어와 하드웨어 언어의 차이의 이해가 깊어졌을 것입니다. 우리가 실습을 해보는 중요한 이유는 이론은 구체화 할 수 있기 때문입니다. 수학에서 연습문제를 푸는 이유와 같습니다.
- 자신만의 문장으로 이 둘(소프트웨어 언어와 하드웨어 언어)을 비교할 수 있도록 정리하시기 바랍니다. 정리에 아래와 같은 관점을 포함 시키도록 하십시요.
    * 하드웨어 언어로 알고리즘을 기술 하였을 때 합성이 가능 하려면 RTL(Register-Transfer Level)이어야 한다.
    * 소프트웨어 언어로 하드웨어를 기술하기 위해 다음과 같은 개념을 갖춰야 한다.
        a. 비트 단위의 객체 묘사
        b. 다중치 논리(Multi-Valued Logic: 1, 0, X, Z)
        c. 병렬성을 다루기 위해 시간 관리
        d. 상태와 더블어 사건의 관리(edge 또는 event)
- 인공지능과 대화하며 합성 가능한 베릴로그 코드를 작성해 봤고 이를 시뮬레이션 했습니다.
    * Q1에서 처음 만들어준 베릴로그 코드와 Q4에서 만들어준 코드에는 커다란 차이가 있는데 이를 학습노트에 반영하지 못했습니다. 학습 페이지에 설명을 추가 하였으니 다시 살펴보시기 바랍니다.
        - 그래픽 평면위의 좌표를 나타내는 vga_x, vga_y 와 lcd_x, lcd_y의 입출력 방향이 다릅니다. 이는 그래픽을 취급하는 방식이 완전히 상이 하다는 것을 의미합니다.
    * SystemC에 대한 이해를 높이도록 하십시요. 인공지능이 알려준 장점을 나름대로 정리하십시요. SystemC는 C++ 언어로 하드웨어를 묘사하기 위해 앞서 언급한 하드웨어 개념을 갖춘 크래스 라이브러리이며 이를 시뮬레이션 하는 병렬 시뮬레이션 엔진을 포함하고 있습니다.
    * 과제 1,2가 Q.9에 있다고 실습을 멈춘 것은 너무나 아쉽습니다. 적극적인 학습 자세가 요구 됩니다.
    * Q.10을 실습 하십시요. 그리고 오류를 찾아내시기 바랍니다.

온-라인 수업 예고:

- 10월 중 추석과 공휴일이 많아서 온-라인 수업을 2차례(또는 3차례) 가질 예정입니다.
- 1차 온-라인 수업일은 10월 8일(목요일) 입니다. 온라인 교실 링크는 추후 공지하겠습니다.
- 2차 줌 미팅 때 FPGA 검증 키트 사용법을 설명합니다. 검증 키트가 모두 배포된 이후 날짜를 잡겠습니다.