21.09.14 09:28 작성
·
411
1
강의 감사합니다~!!
따라하기 쉽게 설명 해주셔서 잘 하고 있는데요~...
궁금한점이 생겨서 문의드립니다.
8강에서는 생성한 ip가 플랫폼 디렉토리에 ip.h가 있고, 사용 함수가 명시되어 있어서 include 해서 사용하면 되었는데,
9강에서는 ip header include가 아닌 xil_io.h include해서 Xil_Out32 을 사용했는데요..
(어차피 8강 함수에서 MYIP_mWriteReg() 안에 Xil_Out32가 사용되어서 결과적으로 동일하긴 한데.. )
궁금한 내용이..ip를 만들고 어떤 함수 API(?)를 사용하는지 모르는 상태에서, 해당 ip에 접근하는 함수가 어떤건지 어떻게 알수 있는지 잘 모르겠습니다. (관련 api description note가 있는지.. 아니면 경험치인지..^^;;)
AXI를 사용해서 Register로 접근 하면 Xil_Out32 을 사용해도 될 것 같은데,
다르게 접근하는 경우가 있는 지와
이럴 경우 어떻게 접근하는지 방법 밖에 없는지 궁금 하기도 합니다.
그리고 혹시 아직 강의를 9강까지 밖에 안봤는데요. DMA 통해 Stream data 받는것도 강의에 있을까요??
저의 경우, DMA를 가장 많이 쓰고 있어서..Stream용 AXI(?) 사용하는 것도 궁금 하긴 해서요..
미리 문의 드린점 죄송합니다.
답변 2
1
0
2021. 09. 14. 13:59
안녕하세요 :)
8강에서는 생성한 ip가 플랫폼 디렉토리에 ip.h가 있고, 사용 함수가 명시되어 있어서 include 해서 사용하면 되었는데,
9강에서는 ip header include가 아닌 xil_io.h include해서 Xil_Out32 을 사용했는데요..
(어차피 8강 함수에서 MYIP_mWriteReg() 안에 Xil_Out32가 사용되어서 결과적으로 동일하긴 한데.. )
궁금한 내용이..ip를 만들고 어떤 함수 API(?)를 사용하는지 모르는 상태에서, 해당 ip에 접근하는 함수가 어떤건지 어떻게 알수 있는지 잘 모르겠습니다. (관련 api description note가 있는지.. 아니면 경험치인지..^^;;)
알고계신대로, Xil_Out32 가 low level 의 API 이구요.
어떻게 알았냐면...?! 문서를 보진 않았고 코드를 따라가서 찾았어요. 그리고 그 함수의 문서를 봤구요.
그렇다면.. 결론은;; 경험치 인건가요?
AXI를 사용해서 Register로 접근 하면 Xil_Out32 을 사용해도 될 것 같은데,
다르게 접근하는 경우가 있는 지와
이럴 경우 어떻게 접근하는지 방법 밖에 없는지 궁금 하기도 합니다.
다르게 접근한다의 의미를 HW 입장에서 보면, Register 대신, BRAM 으로 사용하는 과정을 넣어놓았어요. 다만 Write / Read 의 주체를 Register 에서 BRAM 으로 변경했다 라는 것 뿐 사용 방법은 동일합니다. 그리고 제가 만든 방법이 정규화된 방법은 아니구요. 이렇게 AXI 의 Protocol 을 지키면서 유저가 원하는대로 자유롭게 수정 가능하다. 라고 이해해주시면 좋을 것 같아요.
결론은 다른 접근 방법이 필요하면 만들면 됩니다. :)
그리고 혹시 아직 강의를 9강까지 밖에 안봤는데요. DMA 통해 Stream data 받는것도 강의에 있을까요??
현재 강의에서는 AXI4-Lite 만 다루고 있어요. AXI 의 나머지 부분은 Verilog HDL Season2 에서 계획중이에요. 다만.. 아시다시피 알고있는 것을 가르치는 것이.. 내공이 많이 필요해서 아직 준비가 안되었습니다. ㅠㅠ
결론은 지금 강의에서는 없어요 ㅠ
저의 경우, DMA를 가장 많이 쓰고 있어서..Stream용 AXI(?) 사용하는 것도 궁금 하긴 해서요..
DMA 굉장히 중요하구요! 저도 물론 필수로!! 많이 사용합니다. :)
별도로 다른 자료를 보시면서 공부하셔야 할 것 같아요. 하지만 AXI4-Lite 를 사용하실 줄 아시면, AXI 사용은 응용의 영역이라 생각해요.
즐공하세요 :)