Bluespec SystemVerilog (BSV) 컴파일러 설치하기
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을 설치하여 코드 하이라이팅을 해 주었다.