강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

움직이는YM님의 프로필 이미지
움직이는YM

작성한 질문수

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

Hello Matbi world 실습편에서 질문

해결된 질문

작성

·

548

1

Hello Matbi world 실습편에서 flow가 이해가 되지 않는 부분이 있습니다

 

1. 처음에 Block digram -> verilog HDL -> bitstream ->  XSA 파일(하드웨어 플랫폼 파일)을 생성하는데

이게 이제 ZYBO Z7 보드에서 어떤 I/O를 사용할지 미리 알려주는 단계인건가요?

 

2. SW를 올린다는게 무슨 뜻인지 잘 와닿지 않습니다. 

ARM processor가 우리가 코딩한 내용을 구현하는 것인데 FPGA에 이미 Arm processor가 있으므로

XSA 파일이 필요없지 않나요??? 실습 내용이 순수하게 PS부분만 사용하는 것인데 왜 XSA 파일이 필요한지 궁금합니다

마치 데스크탑에 vscode 열고 코드 작성을 한 후에 실행을 하면 CPU가 알아서 코드에 있는 내용을 실행해서 화면에 띄워줄텐데

데스크탑에 있는 I/O port에 대한 정보를 가진 파일을 따로 또 만들어주는 느낌입니다.

 

 

답변 1

1

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 :)

굉장히 좋은 질문이라 생각합니다.

 

1. 처음에 Block digram -> verilog HDL -> bitstream ->  XSA 파일(하드웨어 플랫폼 파일)을 생성하는데

이게 이제 ZYBO Z7 보드에서 어떤 I/O를 사용할지 미리 알려주는 단계인건가요?

단계라는 말이 이해가 안되는데, 정확하게 Block digram -> verilog HDL -> bitstream ->  XSA 파일

이 과정은, HW Platform 을 생성하는 단계 입니다. 물론 SW 사용 없이 HW 만으로 동작이 가능하구요. 그 과정은 bitstream 까지만 하시면 됩니다.

어떤 I/O 를 사용할 것인지는,  

Block digram -> verilog HDL -> (synthesis) -> (implementation)  -> bitstream ->  XSA 파일

(implementation) 에서 기술된 xdc 파일의 I/O 설정에 의해 결정됩니다. bitstream 을 누르면, synth 와 impl 가 자동으로 실행됩니다. 그래서 괄호로 표현했습니다.

단계의 내용을 deep 하게 알고싶으시다면, 해당 문서의 내용을 살펴보세요.

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_2/ug888-vivado-design-flows-overview-tutorial.pdf

 

2. SW를 올린다는게 무슨 뜻인지 잘 와닿지 않습니다. 

ARM processor가 우리가 코딩한 내용을 구현하는 것인데 FPGA에 이미 Arm processor가 있으므로

XSA 파일이 필요없지 않나요??? 실습 내용이 순수하게 PS부분만 사용하는 것인데 왜 XSA 파일이 필요한지 궁금합니다

" Arm (PS) 에 SW 를 올린다. ==  Arm 에서 SW 를 실행한다" 의 의미로 해석해주시면 됩니다.

제 영상에서 Block diagram 을 생성할때, Zynq 를 호출합니다. (누가? HW 엔지니어가.)

물론 Zynq 를 호출하지 않고도 HW Platform 을 생성할 수 있습니다. 그리고 동작도 합니다.

하지만, Zynq 없이 만들어진 HW Platform 으로는 Arm 에 SW 를 절!대!로! 올릴 수 없습니다.

FPGA 는 HW 자유도가 높은 Chip 입니다. 즉, HW 엔지니어가 어떠한 HW Platform 을 만들지 결정할 수 있다는 말이죠. PS 만 사용하기 위해서라면, HW 엔지니어가 Zynq 를 꼭 추가해서 HW Platform 을 생성해서 전달해야합니다.

마치 데스크탑에 vscode 열고 코드 작성을 한 후에 실행을 하면 CPU가 알아서 코드에 있는 내용을 실행해서 화면에 띄워줄텐데 데스크탑에 있는 I/O port에 대한 정보를 가진 파일을 따로 또 만들어주는 느낌입니다.

I/O Port 라는 용어 보다는 HW Platform 이라는 더 큰 범주의 용어를 사용해야, 올려주신 질문 내용이 옳게 변경될 것 같아요. 이 내용은 위의 답변이 대신해줄 것 같습니다.

결론은, HW Platform 에 Zynq 를 추가해서 추출해야만, Arm 에서 SW 를 동작시킬 수 있다 입니다.

즐공하세요 :)

 

 

답변 감사합니다!

즐거운 명절 보내세요~~

움직이는YM님의 프로필 이미지
움직이는YM

작성한 질문수

질문하기