Как общаться между собой микроблэйз и VHDL?

Я внедряю UART в микроблэйз Xilinx 13.1. Я хочу сохранить значение rx в fifo, которое реализовано с использованием xilinx ipcore в VHDL.

Я получил полученный байт вот так,

while(1) {
   Recvd_Byte = XUartLite_RecvByte(0x40600000);
}

Я реализовал fifo в своем коде VHDL. Оба system.xmp и fifo являются компонентами моего верхнего модуля.

Как я могу получить доступ к этому Recvd_Byte в коде C и перейти к fifo(fifo_wr_data) в VHDL.

Пожалуйста, помогите мне. Я новичок в микроблейз.

2 ответа

Для записи данных в регистры в fpga есть функции в xil_io.h. Адреса можно увидеть в xparameters.h. Каков адрес регистра, в который вы хотите записать данные?

По умолчанию IP-ядра имеют 32 регистра, и вы считываете данные с 0x40600000; это slv_reg0; Предполагая, что slv_reg1 свободен, вы можете записать данные по его адресу. Следующий регистр будет по адресу 0x40600004; // Предполагается, что ширина регистров 32 бит

you can use commands 
Xil_Out8(0x40600004);
Xil_Out16(0x40600004);
Xil_Out32(0x40600004); 

или также возможно записать данные в следующий байт, используя команды

Xil_Out8(0x40600001);

// Попытка предоставить более подробную информацию в вопросе.

// Мы могли бы помочь вам лучше.

Вы можете добавить новое периферийное устройство GPIO в EDK. затем используйте GPIO, чтобы записать Recvd_Byte в сигнал вне микроблаза. Так:

  1. открыть EDK.
  2. добавить периферию GPIO. [Изображение для этой инструкции][1]

  3. после сопоставления адреса предлагаю сделать GPIO_IO_O только внешним. [Изображение для этой инструкции][2]

  4. После генерации списка соединений. экспорт аппаратного дизайна в SDK.

  5. это простой код для отправки данных за пределы Microblaze через GPIO:

    #include "xparameters.h"
    #include "xgpio.h"
    
    XGpio Gpio;
    
    int main (void){
    ...
    int Status;
    Status = XGpio_Initialize(&Gpio, XPAR_XPS_GPIO_0_DEVICE_ID);
    XGpio_SetDataDirection(&Gpio, 1, 0x00000000);
    XGpio_DiscreteWrite(&Gpio, 1,Recvd_Byte );
    ...
    return 0;
    }
    

    [1]: [2]:

Другие вопросы по тегам