묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
Xil_In 함수에 관해 질문이 있습니다.
안녕하세요, 해당 강의자료를 참고하여 c code를 작성하고 있습니다. 현재 제가 사용하고 있는 코드의 main 문은 다음과 같습니다.int main(){u32 data;u32 read_data;init_platform();xil_printf("[S/W BUILD]\t%s, %s\n\r",__DATE__, TIME);xil_printf("[FPGA BUILD]\t%x \n\r",Xil_In32(FPGA_BUILD_ADDR));xil_printf("--Starting SI5386 init Application--\n\r");data = 0x00000000;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_CMD, data);data = 0x00000101;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_INT_STAT, data); // 0x0010data = 0x00000101;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_INT_EN, data); // 0x0018data = 0x00093ee0;data = 0x00023e06;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_TGT_SIZE, data); // 0x0020data = 0x021c01e0;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PIC_SIZE, data); // 0x0024;data = 0x000000c4;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PIC_FMT, data); // 0x0028data = 0x00000000;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PROF, data); // 0x002cdata = 0x00000205;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_NL, data); // 0x0034data = 0x00000001;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_MODE, data); // 0x0038data = 0x00000001;Xil_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_CMD, data); // 0x0000usleep(50);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_CMD);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_INT_STAT);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_INT_EN);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_TGT_SIZE);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PIC_SIZE);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PIC_FMT);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PROF);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_NL);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_MODE);read_data = Xil_In32 (TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_CMD);usleep(50);cleanup_platform();return 0;}다음과 같이 Xil_Out32 함수가 쭉 써지고, 각각의 메모리 주소에 대해 data를 write 합니다. 이후 해당 주소에 대한 데이터 값을 read 하는 과정에서, hardware에서 인식을 하지 못합니다.위 사진과 같이, microblaze에서 data address가 첫번째 read 할 주소인 0x44a10004에서 멈춰있는 것을 확인할 수 있습니다.axi쪽 I/F는 다음과 같습니다.제 C code에서 Read 동작이 되지 않는 이유가 무엇일까요? 감사합니다.
-
미해결Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
Block Memory Interface 응용
안녕하세요, 해당 강의 10강 block memory interface 부분을 응용하여 프로젝트를 진행하고 있습니다.제가 목표로 하는 것은 microblaze - axi interconnect - AXI AHBLite Bridge 로 이어지는 Block design 후, microblaze의 내부 메모리에 data를 저장하여 write / read 동작을 시켜 ahb bus를 사용하는 외부 ip에 시스템을 연결하려 합니다.현재 block design 구성 및 address 설정은 다음과 같습니다. 아래 코드는 제가 write 동작을 위해 작성한 vitis에 c code입니다. #include <stdio.h>#include "platform.h"#include "xil_printf.h"#include "xil_io.h"#include "xil_types.h" // added on 20240411 by dykim#include <unistd.h>#define XPAR_M_AHB_0_BASEADDR 0x44A10000 // added by DYKIM on 20240326#define TMC_JXSE_BASE_ADDR (XPAR_M_AHB_0_BASEADDR + 4) // added by DYKIM on 20240326#define TMC_JXSE_ENC_CMD 0x0000 // added by DYKIM on 20240326#define TMC_JXSE_ENC_SRST 0x0004 // added by DYKIM on 20240326#define TMC_JXSE_INT_STAT 0x0010 // added by DYKIM on 20240326#define TMC_JXSE_INT_RAW 0x0014 // added by DYKIM on 20240326#define TMC_JXSE_INT_EN 0x0018 // added by DYKIM on 20240326#define TMC_JXSE_ENC_TGT_SIZE 0x0020 // added by DYKIM on 20240326#define TMC_JXSE_ENC_PIC_SIZE 0x0024 // added by DYKIM on 20240326#define TMC_JXSE_ENC_PIC_FMT 0x0028 // added by DYKIM on 20240326#define TMC_JXSE_ENC_PROF 0x002C // added by DYKIM on 20240326#define TMC_JXSE_ENC_NL 0x0034 // added by DYKIM on 20240326#define TMC_JXSE_ENC_MODE 0x0038 // added by DYKIM on 20240326#define TMC_JXSE_ENC_WGT_SET 0x003C // added by DYKIM on 20240326#define TMC_JXSE_ENC_ERR_INFO0 0x0040 // added by DYKIM on 20240326#define TMC_JXSE_ENC_ERR_MASK0 0x0044 // added by DYKIM on 20240326typedef unsigned short u2;typedef unsigned short u1;void SI5386_init (u32 ID) ; void AHB_Out32 (u32 address, u32 data, u2 trans, u1 write);u32 AHB_In32 (u32 address, u2 trans, u1 write);void AHB_RegWrite (u32 address, u32 value, u2 trans, u1 write);u32 AHB_RegRead (u32 address, u2 trans, u1 write);int main(){ init_platform(); SI5386_init(0); SI5386_init(1); // print("Hello World\n\r"); // print("Successfully ran Hello World application"); cleanup_platform(); return 0;}void AHB_RegWrite (u32 address, u32 value, u2 trans, u1 write){ u32 data; u2 htrans; u1 we; data = 0x00000000; htrans = 2; we = 1; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_CMD, data, htrans, we); data = 0x00000101; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_INT_STAT, data, htrans, we); // 0x0010 data = 0x00000101; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_INT_EN, data, htrans, we); // 0x0018 data = 0x00093ee0; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_TGT_SIZE, data, htrans, we); // 0x0020 data = 0x021c0780; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PIC_SIZE, data, htrans, we); // 0x0024 data = 0x00000084; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PIC_FMT, data, htrans, we); // 0x0028 data = 0x00000000; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_PROF, data, htrans, we); // 0x002c data = 0x00000205; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_NL, data, htrans, we); // 0x0034 data = 0x00000001; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_MODE, data, htrans, we); // 0x0038 data = 0x00000001; AHB_Out32(TMC_JXSE_BASE_ADDR + TMC_JXSE_ENC_CMD, data, htrans, we); // 0x0000 usleep(3000);}void AHB_Out32(u32 address, u32 data, u2 trans, u1 write){ if (trans == 2 && write == 1) Xil_Out32(address, data);}위 코드에서, trans나 write 변수는 axi ahblite bridge의 output 신호로 둔 것인데 이를 어떻게 c code로 컨트롤 해야할 지 감이 잡히지 않습니다.이후 보드에 프로그램을 올려 ILA 결과를 확인해보니 아래와 같이 입력으로 준 Ready 신호만 들어오는 것을 확인했습니다.긴 내용에 죄송스럽습니다.현재 해당 문제에 대해 혼자 해결해야 하는 문제라 정말 막막하고 어렵습니다. 제가 어느 부분에서 잘못되었는지 알려주시면 정말 감사하겠습니다.
-
해결됨Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
수업 내용중 질문드립니다.
안녕하세요. 질문이 있어서 글씁니다. 1번 : lwIP Echo Server 구현 - 1페이지에서 언급하는 (출처 : LwIP Applications For the ArtyEvaluation Board) 2번 : lwIP Echo Server 구현 - 6페이지에서 언급하는 DDR3를 사용하는 이유는 Xilinx에서 제공하는 lwip Echo Server Templates 코드에서 Microblaze Processor가 I-Cache,D-Cache를 사용하도록 설정되었기 때문입니다. (105페이지의 HW Design Block을 참고하세요) 3번 : lwIP Echo Server 구현 - 7 페이지에서 언급하는 (Memory Interface Generator에 관한 자세한 내용은 전자문서“Verilog를 이용한 FPGA 활용2 – DDR Controller” 에 자세히 나와 있으니 참고하시길 바랍니다. 위의 3가지 질문에 대한 자료는 어떤 자료를 말씀하시는 건가요?
-
미해결Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
수업 자료 링크 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T) 의 수업다료 링크로 접속하면 사이트가 없다고 뜨네요. 확인 부탁드립니다.
-
미해결Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
xdc파일 핀할당에 대해 문의드립니다.
안녕하세요 cora z7 07s 보드를 가지고 실습중인데요제가 갖고 있는 보드는 UART가 PS 부분에 연결되어있어 IO포트가 따로 없는데 어떻게 해야 하나요?
-
미해결Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
lwip echo server ping test 문의 드립니다.
안녕하세요.본강의를 수강하고 다른 Board에서 lwip echo server를 사용하여 Ping Test를 시도해 보았습니다.본 강의에서 처럼 Link up은 되는데 제 PC의 CMD 창에서 ping 192.168.1.10 주었을 때해당 host에 연결 할 수 없다고 합니다.제 PC는 IP를 192.168.1.11로 설정하였습니다.lwip echo server로는 제 PC에서 Device로 Ping을 보낼 수 없는 건가요?감사합니다.
-
해결됨Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
W5500코드 관련 질문
226쪽 질문입니다. 제가 이해하기에 w5500_read에서 tcpRxBuffer를 이용해야할 것 같은데 궁금해서 질문드립니다. 사실상 spi가 동시에 read,write를 안하기에 구현 자체는 상관없을 것 같습니다만.. 그래도 질문드립니다.
-
해결됨Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
w5500
arty에도 phy 같은 이더넷 디바이스가 들어있는데 따로 w5500을 쓰는 이유가 궁금해서 질문드립니다.
-
해결됨Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
자료링크 "접근이 불가능합니다"
"접근이 불가능합니다" 라고 뜨며 다운로드가 불가능합니다.
-
해결됨Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
한 페이지가 안보입니다.
개발보드가 도착하기전에 한번 전체페이지를 돌려보았는데, 딱하나 아래 페이지가 안보입니다.저만그럴까요?? 섹션 7. lwIP활용lwIP 활용 - 11