Verilog/Verilog 실습

Verilog [vitis] FND 출력

오버헤드프레스 2023. 5. 19. 16:55

 

 

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

#define FND_ID XPAR_AXI_GPIO_FND_DEVICE_ID
#define COM_CHANNEL 1
#define SEG7_CHANNEL 2

int main()
{
    init_platform();
    print("started!\n\r");

    XGpio_Config *cfg_ptr;
    XGpio fnd_device;

    cfg_ptr = XGpio_LookupConfig(FND_ID);
    XGpio_CfgInitialize(&fnd_device, cfg_ptr, cfg_ptr->BaseAddress);

    XGpio_SetDataDirection(&fnd_device, COM_CHANNEL, 0); //AVR에서 1주면 출력 0 주면 입력, vitis 에서는 반대
    XGpio_SetDataDirection(&fnd_device, SEG7_CHANNEL, 0); //AVR에서 1주면 출력 0 주면 입력, vitis 에서는 반대

    XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
    XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b11000000);

    while(1){
    	XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
    	XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b11000000);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b11111001);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10100100);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10110000);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10011001);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10010010);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10000010);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b11111000);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10000000);
		MB_Sleep(1000);
		XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
		XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10011000);
		MB_Sleep(1000);
    }

    cleanup_platform();
    return 0;
}