집에서 verilog하기

verilog를 재미로 하고 있는 중이다. 틈나는 대로 잠깐씩. 왜? 머릿속에서 사고의 패턴을 좀 바꿔보고 싶은 생각이 있어서.

집에서 할 수 있는 verilog 중에서 어떤 것이 가장 편한지 여러 가지로 실험해봤다.

1) 회사의 컴퓨터를 VPN - VNC 혹은 Mac Screenshare로 원격 조종:

느려서 답답하다. 미국은 한국처럼 가정에 들어오는 네트워크가 그리 빠르지 않다. 회사 망 안에서 움직여도 광랜보다 느리다. 진짜 그렇다.

2) 회사 컴퓨터는 대충 터미널로 작업하면서 내 PC로 X로 윈도우 열어서 작업: VNC 보단 약간 빠르지만 그래도 답답하다.

3) 내 PC에 모든 소프트웨어 설치 후 라이센스만 VPN 통해서 가져다 쓰기

약간 더 빠르긴 한데 docker 같은 것으로 환경을 새로 셋업해야 된다. 툴이 뜰때마다 라이센스 체크를 하므로 짧게 자주 돌려야 되는 경우는 짜증이 난다.

4) 공개용 소프트웨어 사용하기

iverilog (icarus verilog): 이거 빠르긴 한데, simulator는 대단히 느리다. verilator: 이건 verilog를 C++로 변환하는 것이다. 고전적인 test bench를 만들어서 하는 게 아니라 C++/SystemC로 C++화 된 모델과 통신하게 만들어야 한다. 따라서 TB가 있더라도 이것을 실행시켜주는 별도의 C++/SystemC wrapper가 없이는 실행이 안된다.

그래도 verilator가 조금 더 효과적이라고 봐야할 것 같다. 한방에 척척 잘 돌아가는 상용 툴과 비교하면 상당한 끈기를 요구한다.

결론)

verilator로 대부분의 작업을 하고 최종적으로 상용 소프트웨어로 확인하는 것이 답이라고 본다. 처음에만 좀 적응하는데 시간이 걸릴 뿐, 조금 지나면 쉽게 적응이 된다. verilotor의 경우 vs code와 연동해서 근 실시간 lint가 가능하단 면에서 이게 거의 압도적으로 월등히 좋은 선택이라 볼 수 있다.