Verilog Analyzer 사용 가이드
Verilog Analyzer는 설치 없이 브라우저에서 Verilog / SystemVerilog를 합성(synthesis) 하고, 합성 통계·FSM 상태도·게이트 단위 회로도·Yosys JSON 넷리스트를 다룰 수 있는 도구입니다. 핵심 엔진은 npm 패키지 @yowasp/yosys로 제공되는 Yosys WebAssembly(YoWASP) 입니다.
👉 도구 바로가기: Verilog Analyzer 열기
이 도구로 무엇을 할 수 있나요?
- 여러
.v/.sv파일을 탭 에디터로 편집(구문 강조, 폰트·줄 수·테마) - Top 모듈 하나 지정, 합성에 넣을 파일만 Include 체크
- Run Synthesis 한 번으로 합성 로그·통계와 기본 FSM 추출(로그 흐름상)까지 수행
- 인스턴스 계층 트리를 합성 결과 / FSM / 회로도 탭에서 같이 사용(선택·펼침·셀 합계 열 공유)
- FSM Diagram 탭에서 Mermaid 상태도로 FSM 확인(탭이 열려 있을 때 선택 모듈 기준으로 재추출)
- Circuit Schematic 탭에서만 「회로도 생성」 으로 netlistsvg + ELK 배선도 생성(무거운 작업은 여기서만)
- 합성 후 Netlist JSON 파일 다운로드
- Example 로드, 워크스페이스 ZIP 추출
강의·포트폴리오·리뷰 전 합성 통과 여부·FSM 구조를 빠르게 보기에 좋습니다.
(주의) FPGA 업체 백엔드·타이밍·P&R을 대체하지 않습니다.
화면 구성 (개요)
| 영역 | 설명 |
|---|---|
| 파일 탭 | 열린 파일 전환, 이름 변경, 닫기, 새 파일·업로드 |
| 코드 에디터 | 구문 강조, 폰트 / 표시 줄 수 / 밝은·어두운 테마 |
| 파일 매니저 | Top 라디오, Include 체크, ZIP 추출, Example 로드 |
| 통합 툴바 | WASM 상태, ? 설명, Run Synthesis, 결과 탭 전환 |
| 결과 영역 | Synthesis Result / FSM Diagram / Circuit Schematic |
통합 툴바 · WASM · Run Synthesis
- 번개 아이콘(원형 버튼)
- 녹색: YoWASP(WASM) 사용 준비 완료
- 빨간색: 로드 실패 — 재시도로 다시 받기
- 회색 + 스피너: 로딩 중
- 텍스트 라벨은 없고, 마우스를 올리면 툴팁으로 상태를 볼 수 있습니다.
?: WASM 크기·캐시 등 짧은 설명 팝업- Run Synthesis :
synth -top <Top>및 로그 파싱, 넷리스트 캐시, 이어서 합성 직후 로그 흐름에서 FSM 한 번 추출(기본 Top 기준).
회로도(netlistsvg) 는 이 버튼만으로는 그리지 않습니다.
결과 탭 세 개는 같은 줄 오른쪽에서 전환합니다.
탭별 역할
Synthesis Result
- Raw Synthesis Log 접기/펼치기
- 넷리스트가 있으면 인스턴스 계층 트리 + design hierarchy 기준 통계·선택 인스턴스의 stat 요약(표·파이 등)
표에 나오는「셀(Cells)」숫자는?
- Total cells(셀 합계) 는 Yosys가
stat명령으로 출력하는 Number of cells 와 같고, 그 스코프(모듈/계층 범위) 안에 있는 셀 인스턴스의 전체 개수입니다. - 그 아래
$_AND_,$_DFF_*처럼$_로 시작하는 줄은 합성 말단의 게이트·플롭 등 원시(primitive) 셀을 종류별로 몇 개 쓰는지 나눈 것입니다. - 상위 모듈만 보면 안이 서브모듈 한 블록으로만 잡혀
$_분해 줄이 없고 Total cells 만 있는 경우가 많습니다. 인스턴스 트리에서 더 안쪽 모듈을 고르면 원시 셀 목록이 채워지는 경우가 많습니다. - 파이 차트는 보통 위 원시 셀 행들의 합을 100%로 잡기 때문에, Total cells 과 숫자가 다를 수 있습니다(인스턴스만 있고
$_가 없을 때 등).
FSM Diagram
- 합성이 끝난 뒤에만 의미 있습니다.
- 이 탭이 활성일 때 현재 트리에서 고른 인스턴스(모듈 RTL 이름) 기준으로 YoWASP를 다시 돌려 FSM을 추출합니다.
(다른 탭에서만 트리를 바꿀 때는 FSM 추출이 자동으로 반복되지 않아 부담이 적습니다.) - Top 을 고르면 자식 인스턴스를 proc 전에 제거하는 패스가 들어가, 하위 모듈 FSM이 섞이지 않도록 합니다.
- 다이어그램은 Mermaid로 렌더됩니다.
Circuit Schematic
- 게이트·배선 수준 도면은 netlistsvg와 ELK 레이아웃으로 생성합니다.
- 자동 생성 없음. 오른쪽 패널 가운데 「⚡ 회로도 생성」 을 눌러야 그리기 시작합니다.
- 설계가 크면 수십 초 걸릴 수 있습니다.
- 오류·지나치게 큰 넷리스트 등은 요약(Mock) SVG로 대체될 수 있습니다.
- 인스턴스 경로나 새로 합성한 넷리스트가 바뀌면 이전 SVG는 지워지고, 다시 생성해야 합니다.
- 도면이 나온 뒤에는 「↻ 다시 생성」 으로 같은 선택을 기준으로 다시 그릴 수 있습니다.
- 팬·줌: 캔버스에서 드래그, 휠(탭이 회로도일 때만 캔버스에 붙음).
- 이름 표시: Yosys의
$paramod$해시\모듈명같은 내부 키는 화면에는 짧은 RTL 모듈명 위주로 보이도록 가공합니다. - SVG 블록 클릭으로 내려갈 수 있는 경우가 있으며, 왼쪽 트리·breadcrumb 과 같은 인스턴스 경로를 씁니다.
인스턴스 계층 (세 탭 공통)
합성으로 넷리스트를 얻은 뒤, Synthesis / FSM / Schematic 에서 동일한 트리를 씁니다.
- 선택한 행(Top 또는
인스턴스/하위/…경로)이 탭을 바꿔도 유지됩니다. - 펼침·접힘 상태도 공유됩니다.
- 셀 합계(Total cells) 열도 같은 합성 stat 기준으로 표시됩니다.
회로도는 이 경로를 기준으로 생성 버튼을 눌렀을 때만 그려집니다.
사용 방법 (빠른 시작)
1. 예제로 시작
- Verilog Analyzer를 엽니다.
- 파일 매니저 또는 Example으로 기본 예제를 불러옵니다.
- Top이 합성 루트 모듈이 됩니다.
2. 내 코드 넣기
- 업로드 또는 새 파일로 소스 추가
include, 여러 파일이면 Include에 체크된 것만 합성에 포함- Top은 하나만 선택
3. Run Synthesis
- Run Synthesis 실행 → YoWASP 로그가 Synthesis Result 탭에 쌓입니다.
- 첫 방문·캐시 미스 시 WASM 다운로드로 시간이 걸릴 수 있습니다.
- 성공 시 인스턴스 계층·통계·Netlist JSON 다운로드가 가능해집니다.
4. FSM 보기
- FSM Diagram 탭으로 이동합니다.
- 왼쪽 트리에서 모듈을 고르면(또는 이미 고른 상태 유지) 해당 RTL 기준으로 FSM이 추출됩니다.
5. 회로도 보기
- Circuit Schematic 탭으로 이동합니다.
- 트리에서 볼 인스턴스 경로를 맞춘 뒤 「⚡ 회로도 생성」 을 누릅니다.
- 완료 후 드래그·휠로 이동·확대, 필요 시 ↻ 다시 생성.
6. ZIP으로 받기
- Extract(ZIP) 로 현재 워크스페이스 파일을 묶어 받을 수 있습니다.
파일 매니저 용어
| 용어 | 의미 |
|---|---|
| Top | 합성 최상위 모듈(라디오 하나만 선택) |
| Include | 이번 합성에 포함할 파일 여부 |
| 닫힘 | 탭에서만 닫음. 매니저의 Top/Include 설정은 유지될 수 있음 |
에디터·테마
- 폰트 크기, 표시 줄 수, 밝은/어두운 테마는 에디터 위 툴바에서 조절합니다.
- 테마 등 일부 설정은 Waveform Editor와 동일한 저장 키를 쓰는 경우가 있습니다.
브라우저·성능 안내
- WASM 합성·FSM 추출·(회로도 생성 시) ELK는 CPU·메모리를 씁니다. 큰 설계는 데스크톱 네이티브 Yosys보다 느리거나 실패할 수 있습니다.
- 회로도 생성은 특히 탭에 들어가서 버튼을 누를 때만 실행되므로, 인스턴스만 바꿀 때 전체 UI가 멈추는 느낌을 줄일 수 있습니다.
- 가능하면 최신 Chrome / Edge / Firefox 사용을 권장합니다.
Waveform Editor와 함께 쓰기
- RTL 합성·FSM·회로도 개요는 Verilog Analyzer로 보고,
- 버스·프로토콜 타이밍 그림은 Waveform Editor 로 만드는 식으로 나누면 문서화가 수월합니다.
관련 링크
- Verilog Analyzer 실행
- Waveform Editor 사용 가이드
- Yosys (오픈소스 합성 도구)