inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

WSL상에서 FPGA에 bitstream upload 하는 법 (usbpid 이용)

2370

공기정

작성한 질문수 2

4

https://github.com/dorssel/usbipd-win/releases 들어가서

usbipd-win_[버전].msi를 설치한다.

 

제대로 설치 안됐을 수도 있어 파워셀상에서 한번 더 설치한다.

winget install --interactive --exact dorssel.usbipd-win

[출처: https://learn.microsoft.com/ko-kr/windows/wsl/connect-usb]

 

그리고 WSL상에서

sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

[출처: https://choiseokwon.tistory.com/354]

 

전부 설치 완료되면 WSL은 일단 나가고 파워셀을 나갔다 다시 들어간다.

 

파워셀상에서

usbipd list 

하면

이게 뜬다 맨 왼쪽 BUSID를 주목한다. 3-1에 Serial이라고 써져있는거 보니 이거를 WSL에 연결하면 될 것 같다.

 

usbipd bind --force -b 3-1

3-1을 윈도우상에서 사용 중이면 연결이 안되기 때문에 bind명령을 통해 usbipd가 usb 장치를 먼저 점유하도록 한다.

 

usbipd wsl attach -b 3-1

attach 명령으로 3-1을 WSL에 연결한다.

 

제대로 연결 되었는지 확인하기 위해

usbipd list

맨 오른쪽에 STATE를 주목한다 Attached라고 써져있는 것을 보니 제대로 연결되었다

 

WSL에 다시 들어간다.

lsusb

Bus 001 Device 002에 제대로 잡힌 것을 볼 수 있다.

 

Vivado상에서 USB가 잡히는지 테스트 해본 결과

Hardware manager에서 [사용자 계정]에서는 USB가 안 잡히고 루트계정에서만 USB가 잡힌다.

그러므로 루트계정의 .bashrc도 수정해서 루트계정상에서 Vivado를 실행할 수 있도록 한다.

 

su

 

vi ~/.bashrc

vi 에디터에 들어가서

source /home/[사용자 계정]/tools/xilinx/Vivado/2022.2/settings64.sh 

 를 맨 밑에 추가해준다

vivado

실행하고

 

FPGA 1장의 예제로 테스트 해보았다.

Vivado에서 제대로 잘 잡히는지 Zybo에 업로드가 잘 되는지도 확인해본다.

잘 된다.

 

잘못된 정보 있으면 피드백 부탁드립니다. 감사합니다!

임베디드 임베디드 fpga

답변 3

1

설계독학맛비

피드백 드릴꺼는 저도 모르는 내용인지라 없고요. 엄지척 드립니다.

 

와... 진짜 뭐죠...?

이거 진짜 해보고 싶었는데 ㅠㅠㅠ

너무너무 친절하게 적어주시고 감사합니다.

시간내서 꼭 해보겠습니다. 진심으로 감사드립니다.

 

1

공기정

대학교 3학년 제게 RTL설계를 위한 시야를 넓혀주신

설계독학맛비님께 더 감사드립니다. 더 열심히 하겠습니다!! ㅎㅎㅎ

요즈음 날씨가 많이 추워진다고 하니 건강 유의하시기 바라고 행복하십쇼!!

0

Byeong Gwan

vivado sudo에서 대해서 하나 말씀드리면, Install Cable Drivers (Linux Only) - Digilent Reference

wsl내에서 xilinx 케이블 드라이버 설치하면 sudo 없이도 hardware manager에서 디바이스가 잡힙니다.

udev룰이 없어서 sudo말고는 다른 유저에게는 권한을 막은 것이 원인으로 보입니다.

0

설계독학맛비

오...???! 리눅스 전용 driver 가 있었군요.

꿀팁 공유 감사합니다 !!

0

공기정

Vitis에서도 테스트 해보았습니다. 일단 chapter 10의 예제로 돌려보았습니다.

imagemake 프로그램이 설치가 안되었다고 해서 빌드가 안됩니다 그래서

sudo apt install make-guile

그냥 make도 있지만

"make-Guile는 Lisp의 발전된 문법인 Scheme을 기반으로 한 고수준의 일반 목적 프로그래밍 언어 및 인터프리터입니다. 그는 응용 프로그램의 일부분으로 사용되어 작업을 자동화하고, 스크립트로도 사용될 수 있습니다."

그래서 뭔지 모르겠지만 그냥 make-guile로 깔았습니다.

imagevitis에서도 잘 동작합니다 ㅎㅎ

 

1

설계독학맛비

오 그렇군요.

제가 보았을때는 wsl 의 vitis/vivado 에서는 저보다 훨씬 전문가십니다.

매번 이렇게 기록으로 남겨주셔서, 진심으로 정말정말 감사드립니다.

새해 복 많이 받으세요 :)

UART0, 1 중 선택

1

58

2

datamoverbram모듈질문

1

66

2

vitis 설치엣 alveo kria versal 등 옵션을 끄고 설치를 했습니다.

1

100

2

vitis 설치 관련 질문 있습니다!

1

87

2

FPGA 공식문서 읽는법

1

98

2

보드 추가의 클릭창이 없습니다.

1

71

2

Edit in IP Packager에서 코드 수정 후 IP 수정하면 simulation에서 수정된 코드로 작동이 안됩니다

1

82

2

BRAM의 Read / Write를 다 수행했는지 확인할 때 사용되는 num_cnt / i_num_cnt 관련 질문

1

107

1

Vitis 코드 작성

1

130

2

vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.

1

294

3

[9장 led 점등 시간 제어 불가]

1

82

2

Platform Invalid 오류

1

150

3

WSL 설치 관련 문의드립니다!!

1

97

2

Vivado 툴, 파일 질문드립니다!

1

157

2

9장 LED 점등 안됨

1

112

3

Edit in IP Packager 이후에

1

87

1

Fpga 로직

1

90

2

pmu-fw is not running

1

128

2

Create Project에 대해서 궁금해요

1

90

2

장치관리자 USB 포트

1

100

2

FPGA 7장 AXI_LITE I/F질문

1

91

1

bram mover에서 합성할때

1

79

2

타이밍 위반 질문

1

79

2

rvalid 초기화

1

67

2