본문으로 건너뛰기
code0.HDL

학습 언어 선택

각 언어의 교재를 첫 장부터 읽거나 필요한 절부터 읽을 수 있습니다. 공통 기초는 세 언어에 모두 적용됩니다.

BSV

규칙으로 설계하는 동시 회로

규칙과 인터페이스로 동시 동작을 설계합니다.

만드는 것
  • 갱신이 원자적 rule로 표현되는 카운터와 상태 기계
  • 인터페이스의 method로 동작을 드러내고 서로 결합하는 모듈
  • 준비 조건을 컴파일러가 스케줄하는 FIFO 파이프라인
준비 개념
레지스터, 클록 에지, 조합 회로가 무엇인지 알면 충분합니다. 다른 HDL 경험은 필요하지 않습니다.
  1. 모듈과 인터페이스
  2. Bool·Bit와 순수 함수
  3. 타입·폭·명시적 변환
  4. 선택·case·don't-care 값

Verilog

신호와 클록으로 배우는 RTL 설계

신호와 RTL로 조합 회로와 순차 회로를 설계합니다.

만드는 것
  • 연속 대입과 벡터로 만드는 조합 논리 블록
  • 리셋이 있는 클록 레지스터와 상태 기계
  • 입력을 인가하고 결과를 출력하며 파형을 남기는 테스트벤치
준비 개념
이진수와 클록의 개념을 알면 충분합니다. 다른 HDL 경험은 필요하지 않습니다.
  1. 모듈·포트·assign
  2. 벡터·비트 선택·연산자
  3. 리터럴·signed·식의 폭
  4. net·변수·조합 always

Chisel

하나의 회로에서 하드웨어 생성기까지

Scala 기반 생성기로 매개변수화한 회로를 설계합니다.

만드는 것
  • Chisel 하드웨어 타입으로 포트와 논리를 구성한 모듈
  • 레지스터, Bundle, Vec을 연결한 순차 설계
  • 매개변수화한 클래스 하나로 여러 회로를 만드는 생성기
준비 개념
레지스터와 클록 에지를 알면 충분합니다. Scala 문법은 각 장에서 필요한 지점에 설명합니다. 다른 HDL 경험은 필요하지 않습니다.
  1. Module과 IO, 그리고 := 연결
  2. Bool·UInt와 연산자
  3. 폭·SInt·산술
  4. Mux·when·Wire와 모든 경로의 기본값

공통 기초

하드웨어 기초

비트·논리·상태·시간을 페이지 안에서 직접 조작하는 실험과 함께 익힙니다. 아직 HDL은 필요하지 않으며, 각 언어 과정이 어느 장을 전제로 하는지 밝힙니다.

과정 보기