본문 바로가기

주의!!! 코드는 아직 검증되기 전입니다. 전체적인 구조를 잡기 위해 올려두는 부분이니 그대로 활용이 불가합니다.

 

VCS (Verilog Compiled Simulator)는 Synopsys에서 제공하는 고성능 시뮬레이션 도구입니다. VCS를 사용하여 SystemVerilog 코드를 컴파일하고 테스트하기 위해 필요한 환경 설정 파일과 명령 파일을 생성하는 과정은 다음과 같습니다.

1. 환경 설정 파일 (vcs_setup.tcl)

VCS에서 사용할 환경 설정을 위한 TCL 스크립트 파일을 만듭니다. 이 파일은 컴파일 옵션, 라이브러리 경로, 그리고 기타 필요한 설정을 포함할 수 있습니다.

# 파일: vcs_setup.tcl
set VCS_HOME /path/to/vcs/installation

# VCS 컴파일 옵션
set compile_options {
  -sverilog
  +incdir+./src
  +v2k
  +lint=TFIPC-L
  +define+DATA_WIDTH=128
  +define+ADDR_WIDTH=32
}

# 시뮬레이션 라이브러리 경로
set sim_lib_path $VCS_HOME/sim_lib

# 로그 파일 및 결과 디렉토리 설정
set log_dir ./logs
set result_dir ./results

2. 명령 파일 (run_vcs.sh)

쉘 스크립트를 사용하여 VCS를 실행하는 명령을 작성합니다. 이 스크립트는 컴파일부터 시뮬레이션 실행, 결과 확인까지의 전 과정을 자동화합니다.

#!/bin/bash
# 파일: run_vcs.sh

# 환경 설정 파일 로드
source vcs_setup.tcl

# 소스 코드 디렉토리 설정
src_dir="./src"

# 컴파일 단계
vcs $compile_options \
    -o simv \
    $src_dir/axi_interface.sv \
    $src_dir/axi_master.sv \
    $src_dir/axi_slave.sv \
    $src_dir/axi_testbench.sv

# 시뮬레이션 실행
./simv

# 결과 확인
echo "시뮬레이션 완료. 로그 파일 및 결과는 $log_dir 및 $result_dir 에 저장됩니다."

실행 방법

스크립트를 실행 가능하게 만든 후, 터미널에서 다음과 같이 실행합니다.

chmod +x run_vcs.sh
./run_vcs.sh

이 스크립트는 VCS를 사용하여 SystemVerilog 코드를 컴파일하고 시뮬레이션을 수행한 후, 결과를 지정된 디렉토리에 저장합니다. 모든 경로와 파일 이름은 프로젝트의 실제 환경에 맞게 조정되어야 합니다.

위에서 설명한 내용은 예시이므로, 실제 사용 시에는 VCS 설치 경로, 소스 코드의 위치, 컴파일 옵션 등을 적절히 조정해야 합니다. 또한, 라이브러리와 환경에 따라 추가 설정이 필요할 수도 있습니다.

 

결과 예시

대충 Write만 하는 테스트벤치를 통해서 나오는 시그널은 아래 그림과 같다. 간단한 Burst 모드를 테스트한 waveform이다.

AXI Burst write waveform 예제

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.