fpgaxilinx-edk

How to read & write to fifo from Microblaze?


I have made my project and i have added a microblaze processor to my project.I have also added a H/W core that has a FIFO to my project.I want to read and write to the FIFO from the processor(by writing a c code in SDK).What should I do?


Solution

  • I have used Microblazed with customs IP's that use FIFO's to communicate with the Microblaze (EDK 14.7).

    When you set up the Microblaze, it asks you to specify some "Software Registers". This software registers are located at the "user_logic.vhd" that is created automatically when you try to "Import as Peripheral" your custom IP (for example your FIFO). Choose the number of software registers that is appropriate for your project and connect them (in the user_logic.vhd) with the signaling of your FIFO (Inpout/Output/Empty/Full), in order to control the contents of the FIFO (Read and Write transactions). When you generate the bitstream of your hardware implementation and download it to your FPGA, in your project file there will also be created a file named "drivers" which contains all the library files with implemented functions to Read and Write at the software registers of the Microblaze.

    Now you can import those drivers in your C project in the SDK enviroment, in order to use those automatically implemented functions and access the Software Registers (and through them, your FIFO).

    Nassos