In Xilinx Vivado IP integrator, I want to create a custom building block. The block need to be able to access the memory space (possibly external RAM) by itself.
The target function of the block can be described in the following steps:
- I give the AXI-MM slave block two adresses:
- 0x????_???0: a base memory address, e.g. "0x0000_ABC0".
- 0x????_???4: an offset memory address, e.g. "0x0000_000D".
- The block should will now automatically determine the resulting memory address ("0x0000_ABCD") and fetch the data from that memory location, e.g. "0x0000_0100". This data read represents a new memory address.
- The block should now fetch data from that memory location (e.g. "0x0000_0005") and write it to AXI_MM address 0x????_???8.
p.s. I'm using 0x????_???x, as the AXI-MM base address depends on the settings in the IP configurator and on possible other connected blocks.
I haven't found any description of how a custom block should read from the memory. How should I approach this problem?
I'm using Digilent Zybo Zynq-7000 ARM/FPGA SoC Trainer Board.