Configuration

Configuration example

The FastVDMA is configurable via the JSON configuration file. Here’s an example of FastVDMA configured to read from AXI-Stream interface and write to memory with AXI4 interface:

{
    "configuration": "AXIS_AXIL_AXI",
    "addrWidth": 32,
    "readDataWidth": 32,
    "writeDataWidth": 32,
    "readMaxBurst": 0,
    "writeMaxBurst": 16,
    "reader4KBarrier": false,
    "writer4KBarrier": true,
    "controlDataWidth": 32,
    "controlAddrWidth": 32,
    "controlRegCount": 16,
    "fifoDepth": 512
}

Info

All of the above parameters have to be specified to generate FastVDMA core.

To build a FastVDMA core with custom configuration pass the path to your config file via the CONFIG_FILE variable:

make CONFIG_FILE=<path_to_json_file> verilog

Configuration parameters

configuration

This field is used to specify the FastVDMA bus configuration. It’s a string of format:

BUS-IN_BUS-CSR_BUS-OUT

Where the BUS-IN and BUS-OUT are the data transferring buses and BUS-CSR is the CSR handling bus type.

List of all supported DMA bus configurations is available in the DMAConfig file.


addrWidth

This field specifies address width of the data transferring buses.


readDataWidth

This field specifies the data width of the BUS-IN bus.


writeDataWidth

This field specifies the data width of the BUS-OUT bus.


readMaxBurst

This field specifies the maximal burst for the BUS-IN bus. That is, the maximum number of bytes within the single transaction.

The 0-value is reserved for the stream interfaces.


writeMaxBurst

This field specifies the maximal burst for the BUS-OUT bus. That is, the maximum number of bytes within the single transaction.

The 0-value is reserved for the stream interfaces.


reader4KBarrier

This field takes the true/false value whether the BUS-IN interface may cross 4KB (4096 bytes) in a single transfer.


writer4KBarrier

This field takes the true/false value whether the BUS-OUT interface may cross 4KB (4096 bytes) in a single transfer.


controlDataWidth

This field specifies the data width of the BUS-CSR bus.


controlAddrWidth

This field specifies the address width of the BUS-CSR bus.

The FastVDMA was written with enhancements in mind. It is not recommended to use address widths other than 32.


controlRegCount

This field specifies the number of the registers the BUS-CSR handles. It needs to be at least 16.


fifoDepth

This parameter specifies the depth of the queue initialized and connected between BUS-IN and BUS-OUT interfaces.


Last update: 2024-03-21