macOS 환경에서의 Verilog 시뮬레이션: Icarus Verilog부터 VS Code VCD 뷰어까지 완벽 가이드
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
🖥️ macOS Verilog 개발환경 완벽 구축 가이드 (2026)
Icarus Verilog · Verilator · VS Code 파형 분석까지, 맥북에서 바로 시작하는 하드웨어 설계
macOS는 유닉스 기반의 강력한 개발 환경을 제공하지만, EDA(Electronic Design Automation) 툴 시장에서는 윈도우나 리눅스보다 선택지가 좁습니다. 하지만 오픈소스 생태계를 활용하면 Icarus Verilog, Verilator 같은 강력한 시뮬레이션 환경을 별도의 복잡한 설정 없이 완벽하게 구축할 수 있습니다. 이 가이드에서는 Apple Silicon(M1/M2/M3/M4) 맥북에서 네이티브로 동작하는 하드웨어 설계 환경을 단계별로 소개합니다.
⚡ 1. Icarus Verilog — macOS 표준 Verilog 시뮬레이터
Icarus Verilog(iverilog)는 가장 널리 사용되는 오픈소스 Verilog 시뮬레이터입니다. IEEE 1364 규격을 준수하며, SystemVerilog의 일부 기능도 지원합니다. 학계와 개인 프로젝트에서 사실상 표준으로 자리잡은 툴이며, Homebrew를 통해 명령 한 줄이면 설치가 끝납니다.
📦 설치 방법
Xcode Command Line Tools가 설치되어 있다면, 터미널에서 아래 명령어 하나로 완료됩니다.
$ brew install icarus-verilog
🔄 컴파일 → 실행 2단계 흐름
iverilog는 컴파일 단계와 시뮬레이션 실행 단계가 분리되어 있습니다. 이 구조 덕분에 한 번 컴파일한 결과물을 여러 번 반복 실행할 수 있어 디버깅이 편리합니다.
STEP 1 — 컴파일
iverilog -o dsgn test_bench.v design.v
STEP 2 — 실행
vvp dsgn
🛠️ 자주 쓰는 옵션 정리
| 옵션 | 설명 |
|---|---|
| -o [파일명] | 컴파일 결과물의 출력 이름 지정 |
| -g2012 | SystemVerilog 기능 활성화 (최신 문법 필수) |
| -Wall | 모든 경고 표시 — 잠재적 버그 사전 방지 |
| -I [경로] | include 파일 디렉토리 경로 지정 |
| -s [모듈명] | 최상위(Top-level) 모듈 명시적 지정 |
🔧 2. macOS 무료 시뮬레이션 툴 — 2026년 추천 조합
과거에는 GTKWave가 파형 뷰어의 표준이었지만, 최신 macOS(Apple Silicon)에서는 XQuartz 의존성 때문에 설치가 번거롭고 UI가 불안정합니다. 2026년 현재, 별도의 튜닝 없이 가장 안정적으로 동작하는 조합을 소개합니다.
🚀 Verilator
C++ 기반 고속 시뮬레이터
대규모 설계에서 iverilog보다 수십 배 빠른 속도를 자랑합니다. Linting(코드 정적 분석) 기능이 뛰어나 팀 협업 시 코드 품질 관리에도 유용합니다.
brew install verilator
🌊 Surfer
Rust 기반 현대적 파형 뷰어
최근 각광받는 독립 실행형 VCD 뷰어입니다. XQuartz 설치 불필요, macOS 네이티브로 매끄러운 UI를 제공하며 GTKWave의 완벽한 대체재로 자리잡고 있습니다.
brew install surfer
💡 iverilog vs Verilator, 언제 뭘 쓸까?
| 비교 항목 | Icarus Verilog | Verilator |
|---|---|---|
| 속도 | 보통 | 매우 빠름 ⚡ |
| 학습 난이도 | 쉬움 ✓ | 중간 |
| Testbench 작성 | Verilog 그대로 | C++ Wrapper 필요 |
| 추천 용도 | 학습, 소규모 설계 | 대규모, 성능 중시 |
📊 3. VS Code Extension으로 파형 분석하기
별도 프로그램 없이 VS Code 안에서 바로 VCD 파형을 확인하는 것이 가장 효율적인 워크플로우입니다. 코드 수정과 파형 확인을 하나의 에디터에서 할 수 있어 컨텍스트 스위칭 비용이 사라집니다.
✅ 추천 확장: WaveTrace / TerosHDL
→ VS Code 마켓플레이스에서 WaveTrace 또는 TerosHDL 검색 후 설치
→ .vcd 파일을 에디터에서 클릭하면 즉시 파형 렌더링
→ TerosHDL은 파형 외에도 문서 자동 생성, FSM 시각화 등 부가 기능 제공
⚠️ 참고: GB 단위의 대용량 VCD 파일에서는 로딩이 느려질 수 있으며, 일부 무료 버전에서는 아날로그 파형 표시 등 고급 기능에 제한이 있을 수 있습니다.
📝 4. VCD 파형 덤프를 위한 Testbench 코드 작성법
시뮬레이션 결과를 파형으로 확인하려면 Testbench의 initial 블록 안에 파형 추출용 시스템 태스크를 삽입해야 합니다. 이 부분을 빠뜨리면 시뮬레이션은 돌아가지만 파형 파일이 생성되지 않으니 꼭 확인하세요.
initial begin $dumpfile("test_out.vcd"); // 생성될 VCD 파일 이름 $dumpvars(0, tb_top); // 덤프 범위 지정 end
🔍 $dumpvars 파라미터 이해하기
| 인자 | 값 | 의미 |
|---|---|---|
| 첫 번째 (Level) | 0 | 해당 모듈 + 모든 하위 계층 신호 기록 (가장 많이 사용) |
| 1 | 해당 모듈의 신호만 기록, 하위 계층 무시 | |
| 두 번째 (Scope) | tb_top | 덤프 시작점이 될 최상위 인스턴스 이름 |
💡 팁: 디버깅할 때는 Level을 0으로 설정해서 전체 신호를 먼저 확인하고, 파일 크기가 너무 커지면 필요한 모듈만 선택적으로 덤프하는 전략이 효율적입니다.
🏢 5. Synopsys · Cadence 상용 EDA 툴의 macOS 지원 현황
결론부터 말하면, Synopsys(VCS, Design Compiler)나 Cadence(Xcelium, Genus) 같은 상용 EDA 툴은 macOS를 공식 지원하지 않습니다. 이 툴들은 매우 엄격한 하드웨어 인증 환경을 요구하며, Red Hat Enterprise Linux(RHEL) 기반 서버 환경에서만 동작하도록 빌드됩니다.
macOS에서 상용 툴을 사용해야 한다면?
→ Docker로 리눅스 컨테이너 환경 구축
→ 클라우드 서버(AWS, GCP 등)에 SSH/X11 포워딩으로 원격 접속
→ 단, 이 방법들은 추가 설정이 필요하므로 개인 학습용에는 오픈소스 조합이 훨씬 효율적입니다.
🎯 최종 추천 워크플로우
Apple Silicon 맥북에서 설치부터 시뮬레이션, 파형 확인까지 가장 깔끔하게 동작하는 조합입니다.
IDE
VS Code
→
Compiler
iverilog
→
Simulate
vvp
→
Waveform
WaveTrace
# 1. 전체 설치 (최초 1회) $ brew install icarus-verilog verilator # 2. 컴파일 & 실행 $ iverilog -o sim -g2012 -Wall tb.v design.v $ vvp sim # 3. VS Code에서 생성된 .vcd 파일 클릭 → 파형 확인
이 환경은 M1/M2/M3/M4 칩셋을 탑재한 최신 맥북에서 네이티브 속도로 동작하며, 오픈소스의 유연함과 macOS의 편의성을 동시에 활용할 수 있는 가장 실용적인 세팅입니다. 별도의 가상머신이나 복잡한 환경 설정 없이, Homebrew 명령어 몇 줄이면 프로 수준의 하드웨어 설계 환경이 완성됩니다.
본 글은 정보 제공 목적으로 작성되었으며, 소프트웨어 버전 및 기능은 업데이트에 따라 변경될 수 있습니다.
📄 Raw Data
macOS는 유닉스 기반의 시스템으로서 강력한 개발 환경을 제공하지만, EDA(Electronic Design Automation) 툴 시장에서는 윈도우나 리눅스에 비해 선택지가 좁은 것이 사실입니다. 하지만 오픈소스 생태계를 활용하면 **Icarus Verilog**와 같은 강력한 시뮬레이션 환경을 완벽하게 구축할 수 있습니다. 본 가이드에서는 macOS 26.3(미래 시점 기준 포함) 환경에서 별도의 복잡한 튜닝 없이 바로 사용할 수 있는 하드웨어 설계 환경 구축 방법을 상세히 소개합니다.
---
### 1. Icarus Verilog: macOS를 위한 표준 시뮬레이터
Icarus Verilog(이하 iverilog)는 가장 널리 사용되는 오픈소스 Verilog 시뮬레이터입니다. IEEE 1364 규격을 준수하며, SystemVerilog의 일부 기능도 지원합니다.
#### **필요 사양 및 설치 방법**
macOS 환경에서 iverilog를 설치하는 가장 깔끔한 방법은 **Homebrew** 패키지 관리자를 사용하는 것입니다. 별도의 컴파일이나 복잡한 설정 없이 명령 한 줄로 설치가 완료됩니다.
* **설치 명령어:** `brew install icarus-verilog`
* **필요 요소:** Xcode Command Line Tools (설치 시 자동 확인됨)
#### **사용 방법 및 커맨드 흐름**
iverilog는 코드를 컴파일하는 단계와 시뮬레이션을 실행하는 단계가 분리되어 있습니다.
1. **컴파일:** `iverilog -o dsgn test_bench.v design.v` (결과물로 `dsgn`이라는 실행 파일 생성)
2. **실행:** `vvp dsgn` (시뮬레이션이 동작하며 로그와 VCD 파일을 생성)
#### **주요 옵션 리스트**
* **-o [파일명]:** 출력될 컴파일 결과물의 이름을 지정합니다.
* **-g2012:** SystemVerilog 기능을 활성화합니다. 최신 문법 사용 시 필수입니다.
* **-Wall:** 모든 경고 메시지를 표시하여 잠재적인 버그를 방지합니다.
* **-I [경로]:** `include` 문으로 불러올 파일들이 있는 디렉토리를 지정합니다.
* **-s [모듈명]:** 최상위(Top-level) 모듈을 명시적으로 지정합니다.
---
### 2. macOS에서 사용 가능한 무료 시뮬레이션 프로그램
과거에는 **GTKWave**가 표준이었으나, 최신 macOS(M1/M2/M3 칩셋 포함)에서는 X11 설정 등 설치 과정이 번거롭고 UI가 불안정한 경우가 많습니다. 2026년 기준, 별도의 튜닝 없이 가장 안정적으로 동작하는 추천 조합은 다음과 같습니다.
#### **Verilator (시뮬레이터)**
C++ 기반의 매우 빠른 시뮬레이터입니다. 대규모 설계에서 iverilog보다 훨씬 빠른 속도를 자랑합니다.
* **설치:** `brew install verilator`
* **특징:** Linting(코드 검사) 기능이 뛰어나 협업 시 유용합니다.
#### **Surfer (독립형 VCD 뷰어)**
최근 각광받는 Rust 기반의 현대적인 파형 뷰어입니다. macOS에서 설치가 간편하고 UI가 매우 매끄럽습니다. 별도의 XQuartz 설치가 필요 없어 가장 추천하는 독립 실행형 툴입니다.
---
### 3. VS Code Extension을 활용한 파형 분석
별도의 프로그램을 실행하는 것이 번거롭다면, **VS Code 내에서 직접 VCD 파일을 읽는 방법**이 가장 효율적입니다.
#### **추천 확장 도구: TerosHDL 또는 WaveTrace**
* **소개:** VS Code 마켓플레이스에서 설치 가능한 확장 프로그램으로, `.vcd` 파일을 클릭하면 즉시 파형을 렌더링해 줍니다.
* **사용 방법:**
1. VS Code에서 `WaveTrace` 혹은 `TerosHDL` 검색 후 설치.
2. `vvp` 실행 결과로 생성된 `.vcd` 파일을 에디터에서 클릭.
* **제약사항:**
* 매우 거대한 사이즈(GB 단위)의 VCD 파일에서는 로딩 속도가 느려질 수 있습니다.
* 일부 무료 버전에서는 고급 검색 기능이나 아날로그 파형 표시 기능에 제한이 있을 수 있습니다.
---
### 4. VCD Wave Dump를 위한 Verilog 코드 작성법
시뮬레이션 결과를 파형으로 보기 위해서는 Verilog 코드(주로 Testbench)에 파형 추출용 코드를 삽입해야 합니다.
#### **올바른 문법과 계층 구조 설정**
Testbench의 `initial` 구문 안에 다음과 같은 코드를 추가합니다.
```verilog
initial begin
$dumpfile("test_out.vcd"); // 생성될 VCD 파일 이름 지정
$dumpvars(0, tb_top); // 덤프할 범위 지정
end
```
* **$dumpvars의 첫 번째 인자(Level):**
* `0`: 지정한 모듈 이하의 모든 하위 계층 신호를 기록합니다. (가장 많이 사용)
* `1`: 지정한 모듈의 신호만 기록하고 하위 계층은 무시합니다.
* **$dumpvars의 두 번째 인자(Scope):**
* 덤프를 시작할 최상위 인스턴스 명을 적습니다. 보통 Testbench의 최상위 이름을 적으면 전체 설계를 볼 수 있습니다.
---
### 5. Synopsys 및 Cadence 툴의 macOS 지원 여부
결론부터 말씀드리면, **Synopsys(VCS, Design Compiler)나 Cadence(Xcelium, Genus)와 같은 상용 EDA 툴은 macOS를 공식적으로 지원하지 않습니다.**
* **이유:** 해당 툴들은 매우 엄격한 하드웨어 인증 환경을 요구하며, 주로 Red Hat Enterprise Linux(RHEL)나 CentOS 기반의 서버 환경에서만 동작하도록 빌드됩니다.
* **대안:** macOS에서 굳이 이 툴들을 돌려야 한다면 **Docker**를 사용하여 리눅스 컨테이너 환경을 구축하거나, 클라우드 서버에 접속하여 SSH/X11 포워딩 방식을 사용해야 합니다. 하지만 이는 "별도의 튜닝이 필요 없는" 조건에 위배되므로, 개인 학습이나 프로토타이핑에는 **iverilog + Verilator + VS Code Extension** 조합이 가장 현명한 선택입니다.
---
### 요약: macOS 하드웨어 설계 추천 워크플로우
1. **IDE:** VS Code (Verilog 확장 설치)
2. **Compiler:** Icarus Verilog (`brew install icarus-verilog`)
3. **Waveform:** VS Code 내 `WaveTrace` 확장 프로그램
4. **Flow:** 코드 수정 → 터미널에서 `iverilog` & `vvp` 실행 → VS Code에서 생성된 `.vcd` 확인
이 환경은 M1/M2/M3 칩셋을 탑재한 최신 맥북에서도 네이티브 속도로 동작하며, 오픈소스의 유연함과 macOS의 편의성을 동시에 누릴 수 있는 최적의 세팅입니다.
---
## References
- [Icarus Verilog Official](https://steveicarus.github.io/iverilog/)
- [Verilator Documentation](https://www.veripool.org/verilator/)
- [VS Code WaveTrace](https://marketplace.visualstudio.com/items?itemName=WaveTrace.wavetrace)
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기