step1. 프로젝트를 만들고 Block Design을 생생합니다. step2. Block Aumation을 클릭하여 설정창에서 Interrupt Controller를 체크합니다. step3. Interrupt Controller가 생성되었는지 확인합니다. 여기서 인터럽트를 제어합니다. step4. timer, gpio, uart를 추가하고 Wizard 설정(sys_clk)을 해줍니다. step5. 버튼으로 사용할 GPIO에 Interrupt 설정을 합니다. step6. Interrupt를 클릭하여 concat으로 끌로가서 연결합니다. concat에서 인터럽트 개수를 조절할수 있음 step7. Wrapping을 합니다. step8. Constraints 파일을 생성하고 wrapper와 연결합니다. ste..
Block Design 코드 GitHub - kyw6416/FPGA_MicroBlaze_Button Contribute to kyw6416/FPGA_MicroBlaze_Button development by creating an account on GitHub. github.com 동작영상
#include #include "platform.h" #include "xil_printf.h" #include "xparameters.h" #include "xgpio.h" #include "sleep.h" #define CHANNEL_11 #define OUTPUT0 XGpio GPIO_LED; int main() { init_platform(); XGpio_Initialize(&GPIO_LED, XPAR_AXI_GPIO_0_DEVICE_ID);// 초기화 XGpio_SetDataDirection(&GPIO_LED, CHANNEL_1, OUTPUT); // 방향 설정 print("Hello World\n\r"); print("Successfully ran Hello World application\..
1. H/W Platform 을 먼저 만들어야 합니다. VIVADO를 실행합니다. 2. Block Design을 실행해 필요한 IP를 설계합니다. MicroBlaze, uart, gpio를 아래와 같이 추가했습니다. 3. GPIO IP를 설정합니다. LED 8개를 Blink 하려고 합니다. 그래서 아래와 같이 GPIO Width를 8로 설정합니다. 4. Run Block Automation, Run Connection Automation 을 순서대로 실행합니다. 5. Clocking Wizard를 더블클릭하여 설정을 수정합니다. CLK_IN1을 sys clock으로 설정합니다. (외부 클럭 사용) 6. Port이름을 H/W 포트와 연결하기 위해 Constraint파일의 이름과 동일하게 sysclk, le..
IP(Intellectual Property) : 반도체 디바이스 내에 구현되기 위해 미리 정의된 기능 블록 IP를 이용한 설계 코드 GitHub - kyw6416/FPGA_IP_Upcount Contribute to kyw6416/FPGA_IP_Upcount development by creating an account on GitHub. github.com 작동영상
TIME_CLOCK 설계 Design Source `timescale 1ns / 1ps module TimeClock( input i_clk, input i_reset, input i_modeSw, input i_en, output [3:0] o_digitPosition, output [7:0] o_fndFont ); wire w_clk_1khz; wire [2:0] w_fndCounter; wire [6:0] w_hour; wire [6:0] w_min; wire [6:0] w_sec; wire [6:0] w_msec; ClockDivider clockdiv( .i_clk(i_clk), .i_reset(i_reset), .o_clk(w_clk_1khz) ); CounterFnd cntFnd( .i_cl..