Verilog/Verilog 실습

Verilog [vitis] FND controller

오버헤드프레스 2023. 5. 22. 12:41

 

새 프로젝트가 생성된다.

8개의 레지스터를 가지는 AXI 모듈을 만듦.

 

S_AXI 모듈을 만든것.

 

FND 제어를 위해서 FND_4digit_switcher 가지고옴 copy sources into IP Directory 체크

 

 

필요 모듈을 제외하고 전부 삭제

 

모든 창에 체크표시가 나오도록하고 마지막 Re_Package IP를 클릭 

 

그럼 +버튼을 눌렀을 때 만든 IP가 나온다.

 

오른쪽아래에 myip_FND_switcher 가 다시 생겼음을 확인할 수 있다.

 

출력을 클릭하고 make external

 

출력의 이름들이 seg_0, com_an_0로 바껴있어서 xdc파일에서 다 바꿔줘야함

 

 

Vitis fnd출력 확인

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xparameters.h"

int main()
{
    init_platform();

    volatile unsigned int *fnd_device = (volatile unsigned int *)0x44A00000; //fnd value 1에 저장

    print("Hello World\n\r");

    fnd_device[0] = 1;
    fnd_device[1] = 2;
    fnd_device[2] = 3;
    fnd_device[3] = 4;

    while(1){
    	print("Hi\n\r");
    	MB_Sleep(1000);
    }

    cleanup_platform();
    return 0;
}

1초마다 hi출력

 

수를 1씩 증가시키기 + fnd에  증가하는것 확인

수가 증가하는 것을 확인할 수 있다.