Bluespec SystemVerilog (BSV) 컴파일러 설치하기

Last edited at 2025-04-27
217 Views

What is BSV?


BSV(Bluespec SystemVerilog)는 HDL(Hardware Description Language)의 일종으로, Verilog보다 조금 더 High-level의 구문들과 자료형을 제공하여 하드웨어 설계에서 높은 생산성을 얻을 수 있다. 지금 수강하는 컴퓨터구조 수업에서 실습에 사용하는 언어인데, 학교 실습 서버 말고 로컬에서도 개발 환경을 설정하고 싶었다. 그러나 공식 문서 외에 자료가 많이 없고 개발 환경 세팅이 간단하지 않아 그 과정을 이 포스트에 정리해 보았다.


먼저 bsc(Bluespec Compiler)를 설치해야 한다. bsc에는 Bluespec 컴파일러뿐만 아니라 라이브러리 패키지, 시뮬레이터(Bluesim) 등이 포함되어 있다. 내 노트북의 OS는 Windows 11인데, bsc는 Windows를 지원하지 않기 때문에 wsl을 사용해 Ubuntu 환경에서 모든 과정을 진행했다.



Bluespec Compiler (bsc) Installation


https://github.com/B-Lang-org/bsc/releases


위 GitHub repo에서 버전, OS별로 bsc 릴리스의 .tar 파일을 확인할 수 있다.

wsl에 접속한 후 현시점 최신 릴리스인 bsc-2025.01.1-ubuntu-24.04.tar.gz을 내려받았다.

$ wget https://github.com/B-Lang-org/bsc/releases/bsc-2025.01.1-ubuntu-24.04.tar.gz


압축을 푼 뒤, README 파일에 적힌 권장 사항대로 디렉토리를 생성, 이동해 준다.

$ tar -xvf bsc-2025.01.1-ubuntu-24.04.tar.gz
$ mkdir -p /opt/tools/bsc
$ mv bsc-2025.01.1-ubuntu-24.04 /opt/tools/bsc/bsc-2025.01.1-ubuntu-24.04


컴파일러 및 시뮬레이터의 작동을 위한 패키지들도 설치해 준다.

$ apt-get install tcl-dev
$ apt-get install build-essential
$ apt-get install pkg-config


다음으로, 링크 파일을 생성한 뒤 PATH에 bsc를 추가해 준다.

$ cd /opt/tools/bsc
$ ln -s bsc-2025.01.1-ubuntu-24.04 latest
$ export PATH=/opt/tools/bsc/latest/bin:$PATH


printenv 명령어를 이용해 확인하면 PATH에 bsc의 경로가 추가되어 있을 것이다.

이제 설치가 끝났다. 설치된 bsc의 버전을 확인하여 보자.

$ printenv
$ bsc -v



BSV Compilation & Simulation


이제 BSV 소스 파일을 컴파일하고 시뮬레이션 해볼 것이다.

프로젝트 디렉토리(/bsvtest)를 만들고 그 안에 간단한 테스트용 BSV 코드를 작성해 보았다.


test.bsv

package test;
    String hello = "HelloWorld";

    (* synthesize *)
    module mkHelloWorld(Empty);
        rule say_hello;
            $display(hello);
            $finish;
        endrule
    endmodule
endpackage


이제 이들을 컴파일하고, Bluesim 시뮬레이터에 링크하는 작업을 해줄 스크립트를 작성하자.

build.sh

#!/bin/bash

base=./build
bdir=${base}/bdir
bindir=${base}/bin
simdir=${base}/simdir

mkdir -p ${bdir}
mkdir -p ${bindir}
mkdir -p ${simdir}

bsc -u -sim -simdir ${simdir} -bdir ${bdir} $1
bsc -u -sim -simdir ${simdir} -bdir ${bdir} -o ${bindir}/bsim -e mkHelloWorld


위 스크립트는 bsc를 이용해 첫 번째 argument로 넘어온 BSV 파일을 컴파일한다. 컴파일 결과물은 object 파일들과 이들을 Bluesim 시뮬레이터에 링크한 executable(./build/bin/bsim.o)이다.


(시뮬레이션 대신 Verilog 파일로 변환하길 원할 경우, -verilog 플래그를 이용하면 .v 파일로 컴파일할 수 있다. 공식 User Guide 문서 참조)


아래 명령어를 이용해 컴파일 및 시뮬레이션을 실행할 수 있다.

$ bash build.sh test.bsv
$ ./build/bin/bsim


(출력)

HelloWorld



이상으로 BSV 개발 환경 설정이 모두 완료되었다!

마지막으로, VS Code에서 Bluespec Extension을 설치하여 코드 하이라이팅을 해 주었다.