Post

QuestaSim Visualizer 활용

QuestaSim의 새로운 GUI인 Visualizer를 사용하는 방법

QuestaSim Visualizer 활용

Modelsim/QuestaSim을 사용해 본 사람들이라면 타사 툴인 Verdi, SimVision 과 같은 waveform 디버거에 비해 디자인이나 기능적인 면에서 불편함이나 부족함을 경험해본 사람들이 많을 것이다.

최근, Mentor Graphics를 인수한 Siemens EDA에서 QuestaSim 2023.1 버전 이상부터 파격적으로 디자인, 기능 및 성능을 업그레이드한 Visualizer란 Advanced Debug 환경을 제공하고 있다.

실제 작업 중인 개발 프로젝트에서 새로 나온 Visualizer를 직접 활용해 보니 여러모로 효율적인 디버깅이 가능하여 꽤 성공적인 개발 환경을 경험하게 되었다.

이에, 본인이 습득한 최적의 visualizer 활용법을 공유하고자 한다.

Windows 운영체제에서 Questa Visualizer 실행 환경 설정

리눅스는 기본적으로 bashcsh 이 있어서 스크립트 기반으로 툴을 사용하는 것이 자연스럽고 당연한 일이지만 윈도우즈 환경에서 제공하는 명령창이나 powershell은 불편함이 많다. 그래서, 리눅스 명령을 윈도우즈에서도 사용할 수 있도록 cygwin이나 WSL을 추가 설치하거나 버전관리를 위해 git을 설치하면 git-bash 환경을 윈도우즈에서 활용할 수 있다.

가장 선호하는 쉘 터미널 환경을 자신의 윈도우즈에 구축하기 바란다. 본인은 git을 자주 사용하기에 같이 설치된 git-bash를 주로 사용한다.

또한, 윈도우즈에서 리눅스 쉘 환경을 사용시, 명령 스크립트 자동화를 위한 강력한 툴인 Make를 좀 더 편하게 활용할 수 있는데 윈도우즈에서 Make를 설치하는 방법은 각종 블로그에 잘 소개되어 있으니 참고해서 꼭 설치하기를 권장한다.

아래와 같이 vscode 사용자라면 터미널을 IDE에 배치하여 사용하면 작업시 여러 창을 왔다갔다 할 필요없이 하나의 IDE에서 대부분의 작업을 할 수 있어 매우 편리하다.

alt text

Makefile 구성

아래와 같이 간단하게 로직 시뮬레이션용 컴파일 명령들을 Makefile로 구성하여 명령쉘에서 수행하면 반복 테스트시 편리하게 사용할 수 있으며, 다른 프로젝트에서도 소스파일 리스트만 수정하는 방식으로 빠르게 구성하여 활용할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# sources
REFSRC ?= ../netlist/top_normal.v
TBSRC  ?= ../testbench/tb_net.sv clk_wiz_0_sim_netlist.v
#Simulation TOP module name
TOP = tb_net glbl
#SIM LIBRARY list for OPT
OPT_ARGS = vopt_args.f
# Make Targets
all: compile opt sim

create_lib:
  vlib work

#compile: create_lib vcom_compile vlog_compile 
compile: create_lib vlog_compile 

vlog_compile:
  vlog -sv $(REFSRC) 
  vlog -sv $(TBSRC) 

opt:
  vopt $(TOP) -o opt -f $(OPT_ARGS) -debug -designfile design.bin

sim:
  vsim -c opt -do "run -all; quit -f" -qwavedb=+signal+wavefile=qwave.db

vis_wave vw:
  vis -designfile design.bin -wavefile qwave.db &

Makefile을 통한 simulation 수행

아래와 같이 vscode 터미널에서 make 명령을 통해 스크립트를 실행하면 매우 편리하다.

alt text

Visualizer 실행하여 waveform debugging

다음과 같이 visualizer 실행시 필요한 design.bin 파일과 qwave.db 파일을 실행하는 명령도 미리 Makefile에 정의해 두면 빠르게 실행이 가능하다.

alt text

This post is licensed under CC BY 4.0 by the author.