작성
·
575
답변 2
1
안녕하세요 :)
알려드린 방법은 Master 가 PC 입니다. (Master : 동작의 주체가 되는 것)
그리고 양방향 (Read, Write) 가능했습니다. (방법은 영상 강의에 나와있습니다.)
================
간단하게 이렇게 해보면 어떨까요?
FPGA logic 상의 출력되는 원하시는 값을 특정 register 로 넣어두시고요.
PC 에서 scanf 로 무한루프를 통해서 읽고싶으신 Register 의 값을 읽는다.
그러면 다음 이야기의 동작이 될 것 같은데요.
데이터를 pc에서 fpga로 write하지 않고 fpga 로직 상에서 출력되는 데이터 (예를 들면, 카운터 값)을 axi4-lite interface를 이용하여 pc로 read 해올 수 있는 방법도 있는지 궁금합니다.
즐공하세요 :)
0
안녕하세요 맛비님!
빠른 답변 정말 감사합니다!
답변 주신 2번을 AXI4-Lite interface로 read만 동작 가능하게 설계 가능하다는 말씀이신건지 궁금합니다!
항상 질 높은 강의와 친절한 답변 감사합니다 :)
제가 이해와 지식이 부족하여 질문을 한번더 드리면 block design에서 axi 연결을 위해 맛비 님이 awprot과 arprot부분은 port생성만 하셨던거 처럼 write 부분의 port들은 생성만하고 read 부분만 동작하게 코딩하고 PC 부분은 맛비님이 답변주신 방향으로 진행하면 될까요?
write 부분의 port들은 생성만하고 read 부분만 동작하게 코딩하고 PC 부분은 맛비님이 답변주신 방향으로 진행하면 될까요?
제 예제에서는 이미 AXI4-Lite 로 Read, Write 할수 있는 환경이 있습니다.
그 환경을 사용하면 된다 입니다.
HW 에 Write 를 사용하지 않는다고 하신다면, 빼셔도 됩니다. (질문자님이 판단의 영역이네요.)
즐공하세요 :)
아 제가 헷갈리게 달았네요.
간단하게 이렇게 해보면 어떨까요?
FPGA logic 상의 출력되는 원하시는 값을 특정 register 로 넣어두시고요.
PC 에서 scanf 로 무한루프를 통해서 읽고싶으신 Register 의 값을 읽는다.
2번만 추가 설명한다면 SW 를 이런식으로 코딩하면 될 것 같아요.
while (1) {
read_data = Xil_In32( 읽고 싶은 register address );// HW 에 넣어두어야 겠죠?
printf("read_data : %d", read_data);
if(is_break) break; // break 조건은 직접 판단.
}
이렇게 하면 계속 읽을 것 같아요.