본문으로 건너뛰기

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

  • 게이트·배선 수준 도면은 netlistsvgELK 레이아웃으로 생성합니다.
  • 자동 생성 없음. 오른쪽 패널 가운데 「⚡ 회로도 생성」 을 눌러야 그리기 시작합니다.
    • 설계가 크면 수십 초 걸릴 수 있습니다.
    • 오류·지나치게 큰 넷리스트 등은 요약(Mock) SVG로 대체될 수 있습니다.
  • 인스턴스 경로새로 합성한 넷리스트가 바뀌면 이전 SVG는 지워지고, 다시 생성해야 합니다.
  • 도면이 나온 뒤에는 「↻ 다시 생성」 으로 같은 선택을 기준으로 다시 그릴 수 있습니다.
  • 팬·줌: 캔버스에서 드래그, 휠(탭이 회로도일 때만 캔버스에 붙음).
  • 이름 표시: Yosys의 $paramod$해시\모듈명 같은 내부 키는 화면에는 짧은 RTL 모듈명 위주로 보이도록 가공합니다.
  • SVG 블록 클릭으로 내려갈 수 있는 경우가 있으며, 왼쪽 트리·breadcrumb같은 인스턴스 경로를 씁니다.

인스턴스 계층 (세 탭 공통)

합성으로 넷리스트를 얻은 뒤, Synthesis / FSM / Schematic 에서 동일한 트리를 씁니다.

  • 선택한 행(Top 또는 인스턴스/하위/… 경로)이 탭을 바꿔도 유지됩니다.
  • 펼침·접힘 상태도 공유됩니다.
  • 셀 합계(Total cells) 열도 같은 합성 stat 기준으로 표시됩니다.

회로도는 이 경로를 기준으로 생성 버튼을 눌렀을 때만 그려집니다.


사용 방법 (빠른 시작)

1. 예제로 시작

  1. Verilog Analyzer를 엽니다.
  2. 파일 매니저 또는 Example으로 기본 예제를 불러옵니다.
  3. Top이 합성 루트 모듈이 됩니다.

2. 내 코드 넣기

  • 업로드 또는 새 파일로 소스 추가
  • include, 여러 파일이면 Include에 체크된 것만 합성에 포함
  • Top하나만 선택

3. Run Synthesis

  • Run Synthesis 실행 → YoWASP 로그가 Synthesis Result 탭에 쌓입니다.
  • 첫 방문·캐시 미스 시 WASM 다운로드로 시간이 걸릴 수 있습니다.
  • 성공 시 인스턴스 계층·통계·Netlist JSON 다운로드가 가능해집니다.

4. FSM 보기

  1. FSM Diagram 탭으로 이동합니다.
  2. 왼쪽 트리에서 모듈을 고르면(또는 이미 고른 상태 유지) 해당 RTL 기준으로 FSM이 추출됩니다.

5. 회로도 보기

  1. Circuit Schematic 탭으로 이동합니다.
  2. 트리에서 볼 인스턴스 경로를 맞춘 뒤 「⚡ 회로도 생성」 을 누릅니다.
  3. 완료 후 드래그·휠로 이동·확대, 필요 시 ↻ 다시 생성.

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 로 만드는 식으로 나누면 문서화가 수월합니다.

관련 링크