Menu

Icarus Verilog 설치하기 (Windows, macOS, Linux 2026 가이드)

Icarus Verilog과 GTKWave를 설치해 로컬에서 Verilog을 컴파일하고 시뮬레이션하는 방법. 설치를 건너뛰고 브라우저 에디터를 써도 이 문서를 따라가기에 충분합니다.

먼저, 현실 체크

Verilog을 배우는 데 아무것도 설치할 필요가 없습니다. 이 문서의 모든 인터랙티브 에디터는 실제 Verilog을 Icarus Verilog 샌드박스에서 실행하고, 파형 뷰어도 포함되어 있습니다. 언어를 배우러 왔다면 이 페이지는 건너뛰고, 나중에 로컬에서 더 긴 프로젝트를 작업하고 싶을 때 다시 오면 됩니다.

그래도 로컬 설치를 원한다면 계속 읽어 보세요.

"Verilog 설치"가 실제로 의미하는 것

Verilog은 프로그램이 아니라 언어입니다. 실행하려면 다음이 필요합니다.

  1. 시뮬레이터 - .v 파일을 컴파일하고 실행해 주는 도구입니다. 대부분의 학습자에게는 Icarus Verilog이 그것이며, iverilog 컴파일러와 vvp 런타임이 제공됩니다.
  2. 파형 뷰어 - 보통 GTKWave - testbench가 생성하는 .vcd 파일을 읽어 줍니다.
  3. 텍스트 에디터 - Verilog 확장이 설치된 VS Code가 일반적인 선택이지만, 무엇이든 됩니다.

벤더 toolchain(Xilinx Vivado, Intel Quartus, Synopsys VCS, Cadence Xcelium)은 FPGA 프로그래밍과 ASIC 작업용으로 존재합니다. 크고, 라이선스가 필요하며, 학습용으로는 과합니다. Icarus를 쓰세요.

macOS에 설치하기

가장 빠른 길은 Homebrew입니다.

brew install icarus-verilog gtkwave

컴파일러와 파형 뷰어가 모두 설치됩니다. 확인.

iverilog -V
gtkwave --version

두 도구 모두 버전 번호가 보여야 합니다. iverilog은 자동으로 PATH에 들어갑니다. GTKWave는 /Applications 아래에 앱 번들을 설치하면서 터미널에서 실행할 수 있는 gtkwave 명령어도 제공합니다.

Homebrew가 설치되어 있지 않다면 먼저 brew.sh의 안내를 따라 설치하고 - curl 한 번이면 됩니다 - 다시 돌아오세요.

Linux에 설치하기

Debian 기반 배포판(Ubuntu, Mint, Pop!_OS)에서는

sudo apt update
sudo apt install iverilog gtkwave

Fedora / RHEL 계열에서는

sudo dnf install iverilog gtkwave

Arch에서는

sudo pacman -S iverilog gtkwave

그리고 같은 방식으로 확인합니다.

iverilog -V
gtkwave --version

패키지된 버전이 업스트림보다 한두 릴리스 늦을 때가 있습니다. 학습용으로는 보통 괜찮습니다. 최신 릴리스가 필요하다면 소스에서 빌드하면 됩니다 - 프로젝트의 GitHub 저장소에 지침이 있고 ./configure && make && sudo make install 정도면 끝납니다.

Windows에 설치하기

가장 쉬운 경로는 iverilog 커뮤니티가 bleyer.org에서 유지하는 미리 빌드된 설치 프로그램입니다("iverilog Windows"로 검색). Icarus Verilog, GTKWave, 그리고 Icarus가 내부적으로 필요로 하는 GCC toolchain이 함께 들어 있습니다.

  1. 최신 설치 프로그램을 받습니다(보통 iverilog-vXX-setup.exe).
  2. 실행합니다. 특별한 이유가 없다면 기본값을 그대로 두세요.
  3. 설치 프로그램이 물어보면 "Add to PATH"를 체크된 채로 두세요.
  4. 새 PowerShell이나 Command Prompt 창을 열고 확인합니다.
iverilog -V
gtkwave --version

PATH 추가를 빠뜨렸다면 바이너리는 보통 C:\iverilog\bin\iverilog.exe 같은 경로에 있습니다. 시스템 속성에서 사용자 PATH에 C:\iverilog\bin을 추가하거나, 설치 프로그램을 다시 실행하고 박스에 체크하세요.

Windows에서는 WSL2도 좋은 선택지입니다 - Microsoft Store에서 Ubuntu를 설치하고 그 안에서 Linux 지침을 따르세요. 좀 더 익숙한 Unix 워크플로를 얻을 수 있습니다.

첫 파일 컴파일과 실행

설치가 끝났다면 워크플로는 이렇습니다. 파일을 hello.v로 저장합니다.

module hello;
    initial begin
        $display("hello from verilog");
        $finish;
    end
endmodule

시뮬레이션 바이너리로 컴파일합니다.

iverilog -o hello hello.v

iverilog은 컴파일러입니다. -o hello는 출력 이름이고, hello.v는 소스입니다.

시뮬레이션을 실행합니다.

vvp hello

다음이 보여야 합니다.

hello from verilog

이게 로컬 워크플로의 전부입니다. 여기서부터 설계를 여러 파일로 나누거나(iverilog -o sim *.v), -g2012 플래그로 SystemVerilog-2012 기능을 활성화하거나, 출력을 자신의 스크립트에 파이프할 수 있습니다.

파형 만들고 보기

testbench에 $dumpfile$dumpvars를 추가하고 실행한 뒤, 결과 VCD를 GTKWave로 엽니다.

initial begin
    $dumpfile("dump.vcd");
    $dumpvars(0, test);
    // ...
end

vvp sim이 끝나면 소스 옆에 dump.vcd가 생깁니다. 엽니다.

gtkwave dump.vcd

GTKWave는 파일을 불러와 왼쪽에 signal tree를 보여 줍니다. 관심 있는 신호를 오른쪽 wave 영역으로 끌어다 놓으면 됩니다. 자세한 내용은 Dumpfile and VCD에서 다룹니다.

흔한 오류

iverilog: command not found - 바이너리가 PATH에 없습니다. Windows에서는 보통 설치 프로그램에서 PATH 업데이트를 켜지 않은 경우이고, macOS/Linux에서는 Homebrew/apt가 완료되지 않았거나 PATH가 재로딩되지 않은 셸에 있는 경우입니다(터미널을 닫았다가 다시 여세요).

올바른 줄에서 syntax error가 발생 - 일반 Verilog 모드에서 SystemVerilog 기능을 쓰고 있지 않은지 확인하세요. iverilog-g2012를 전달해 SystemVerilog-2012를 활성화하세요.

iverilog -g2012 -o sim main.v

컴파일 중 Unknown module - 모듈의 소스 파일이 iverilog에 전달되지 않았거나, 인스턴스화에서 사용한 모듈 이름이 module 선언과 정확히 일치하지 않는 경우입니다. Verilog은 대소문자를 구분합니다.

GTKWave에서 빈 파형 - testbench에서 $dumpfile$dumpvars를 호출하지 않았거나, 신호가 변하기 전에 $finish로 시뮬레이션이 끝난 경우입니다. 최소 한 번은 $dumpvars(0, top)을 호출하고, 전이가 일어날 만큼 시뮬레이션을 충분히 길게 돌리세요.

다음에 볼 내용

로컬에 설치했든 브라우저로 가든, 다음 문서는 처음부터 완전한 모듈을 작성하는 과정을 안내합니다 - 모듈 선언, 포트, 작은 조합 논리, 그리고 그 주위를 감싸는 testbench까지.

자주 묻는 질문

Verilog은 어떻게 설치하나요?

'Verilog'이라는 단일 프로그램은 없습니다 - 언어이므로 컴파일러/시뮬레이터를 설치해야 합니다. 학습용으로 표준 선택은 Icarus Verilog(iverilogvvp 명령)이고, 파형 보기에는 GTKWave를 짝지어 씁니다. macOS에서는 brew install icarus-verilog gtkwave, Debian/Ubuntu에서는 apt install iverilog gtkwave, Windows에서는 Bleyer 사이트의 미리 빌드된 설치 프로그램을 받아 쓰면 됩니다.

Verilog을 배우려면 뭔가 설치해야 하나요?

아니요. 이 페이지의 에디터는 클라우드에서 iverilogvvp로 코드를 실행하고 VCD 파형을 인라인으로 보여 줍니다. 설치 없이 이 튜토리얼의 모든 문서를 끝낼 수 있습니다. 로컬 설치는 파일을 저장하고 싶을 때, 프로젝트를 버전 관리하고 싶을 때, 또는 브라우저 에디터로 다루기에 큰 설계를 작업할 때 유용합니다.

iverilog과 vvp의 차이는 무엇인가요?

iverilog은 컴파일러입니다 - .v 소스 파일을 시뮬레이션 바이너리로 변환합니다. vvp는 그 바이너리를 실행하는 런타임입니다. 일반적인 명령 시퀀스는 iverilog -o sim main.v test.v 다음에 vvp sim입니다. 대부분의 워크플로 스크립트가 둘을 함께 감쌉니다.

Icarus Verilog은 무료인가요?

네. Icarus Verilog은 GPL/LGPL 오픈소스입니다. 라이선스 서버나 평가판 기간이 없고, 학습과 상업적 사용 모두 가능합니다. 상용 대안(ModelSim, VCS, Xcelium)은 유료입니다. 이 문서에서 다루는 모든 내용은 Icarus만으로 충분합니다.

iverilog 버전은 어떻게 확인하나요?

터미널을 열고 iverilog -V를 실행하세요. Icarus Verilog version 12.0 같은 버전 번호가 보여야 합니다. 'command not found'가 뜬다면 바이너리가 PATH에 없는 것입니다 - 설치 프로그램을 다시 실행하거나 bin 디렉터리를 셸 설정에 추가하세요.

Coddy programming languages illustration

Coddy로 코딩 배우기

시작하기