본문 바로가기
전자 | 제어 | 항공우주/FPGA & HDL

VS Code 에서 TerosHDL Linter를 GHDL로 사용하는 방법

by 상상메카J 2024. 4. 7.
반응형

-----------------------------------------------------------------
※ 참고
VSCode에서 VHDL Linter 뭐 쓸지 고민하시는 분들,
GHDL Linter가 설정이 제일 쉽고 강력합니다.
-----------------------------------------------------------------
 
VS Code에서 TerosHDL을 사용하면 VHDL, Verilog 를 개발하는데 정말 강력하죠. 그러나 초기에 설정이 너무 까다로운 편입니다... 왜냐하면 메뉴얼이 정말 형편없기 때문입니다.
그래서 글을 쓰게 되었습니다.

 

TerosHDL Linting Manual

아래 링크에서 기본적인 Linting (Error Chekcing 및 Style Checking) 에 관련된 메뉴얼을 확인할 수 있다.
▼ 메뉴얼 링크 ▼

반응형
 

Linting (errors checking) | TerosHDL

Linting (errors checking)

terostechnology.github.io

 

기본으로 지원하는 VHDL-LS 의 문제점

VHDL-LS 로 하면 Vivado 에서 안잡는 Error를 Error라고 한다. 그렇다고 굳이 Linter를 안쓰는 것도 불편하다.
그리고 왜 그런지 뭔가 좀 불편하다는 느낌을 지울 수가 없다.
그래서 조금 써보고 다른 Linter를 찾아서 Linting을 해야겠다고 마음 먹게 되었다. 일단 vivado와 호환되면 최고니까 vivado를 설정해보고자 했다.
 

Vivado 를 Linter로 설정하기

vivado 설치 경로 설정하기

 
그러면 Vivado 를 Linter로 쓰면 되는데, 환경변수 Path에 Vivado bin 폴더를 추가하고, TerosHDL에서도 추가하고, argument에다가 TerosHDL 메뉴얼에 있는 --std=08 --ieee=synopsys를 입력하든 xvhdl 을 입력하든 (verilog는 xvlog이고 이건 뭐 좀 설정해주면 잘 됨.) vhdl linter는 어차피 안된다. 뭔가 json 혹은 yaml에 쓰이는 형식으로 길게 뭔가를 쓰고 설정을 해줘야되는 것 같은데 솔직히 너무 복잡하다.
 
때려지차.
어차피 VHDL 이 뭐 버전만 존재하는 거지, Linter 마다 그렇게 다를게 있는거야? 싶었다.
그래서 GHDL 을 설치하고 VHDL 2008 버전으로 설정하면 되겠지 싶었다.
 

VS Code에서 TerosHDL Linter를 GHDL로 설정하기

아래 순서를 따라서 VS code에서 VHDL Linter로 GHDL을 사용해보자.
Start~!
 

Step1. GHDL 다운로드

보통 vscode에서 다운받으라고 하면 제일 먼저 해보는 것은, pip install ghdl
그리고 ghdl 설치 path를 열심히 찾아서 입력해줬는데 안된다. 아무래도 vscode에 ghdl 의 패키지를 설치하는 형식으로는 안되나보다...
그래서 GHDL 을 MingGW32 로 홈페이지에 들어가서 직접 다운받았다. 적절한 폴더에 압축을 풀었다.
Linux 쓰시는 분들은 ubuntu 버전을 받으면 된다.

 
GHDL 다운로드 링크 ▼

 

Releases · ghdl/ghdl

VHDL 2008/93/87 simulator. Contribute to ghdl/ghdl development by creating an account on GitHub.

github.com

 
이제 난 진짜 GHDL 풀 버전을 가지고 있는 샘이다.
이제 TerosHDL configuration을 연다.
 
 

Step2. 설치된 Python 경로 설정하기
파이썬 경로는 GHDL 에서는 상관없을 수도 있는데, 어차피 TerosHDL 을 설치하면 첫번째 단계로 이걸 해야된다.

TerosHDL Python 경로 설정하기

 
Anaconda를 사용하는 사람은 Anaconda의 가상환경에 있는 Python 경로를 지정해도 된다.
(다만, pip로 inatall 해야되는 애들은 anaconda 해당 가상환경 prompt에 들어가서 pip로 install 해야 됨.)
 

Step3. GHDL 경로 설정하기

압축을 푼 폴더에서 bin 폴더 경로를 추가한다.
bin은 어느 프로그램이든 마찬가진데 binary 를 뜻하고, binary 형태의 파일들이 여기 들어가기 때문에 여기에 보통 실행가능한 파일이 들어있다.

TerosHDL GHDL  Path configuration

 

Step4. GHDL Arguments

다음으로는 Linter Setting 에서 GHDL의 Arguments 를 적어야한다.

GHDL Linter Arguments

 
위 구문이 VHDL 2008 버전 스탠다드를 쓰겠다라는 말이다. 사진에서 보이는 대로 적는다. 혹시 VHDL 93 을 쓰는 사람은 08 숫자를 93으로 변경해주면 된다.
 
Step5. Linter Setting General

아래 사진처럼 GHDL 로 VHDL Linter를 선택해준다.

TerosHDL Linter Settings

 
그리고 Apply and close 클릭
 

Step6. GHDL Linting Check
 
의도적으로 세미콜론(;)을 지워봤다.
Problems 에 뜬 에러를 보면 GHDL 이 Linting을 한 것을 확인할 수 있다.

TerosHDL GHDL Linting

 
이렇게 Linter를 세팅하면 된다.
GHDL이 제일 잘 해주는 것 같다...
 
괜히 정보도 없는 vivado를 VHDL Linter로 세팅하겠다고 시간만 엄청 버렸다...
GHDL로 속편하게 Linting 기능을 사용하자.
 

 
< 끝 >

반응형

댓글