ipbus/ipbus-firmware

Increase address width in transactor interface

Closed this issue · 1 comments

Currently, the addr_width constant in ipbus_trans_decl is equal to 12, meaning that request/reply packets cannot be larger than 2048 words (i.e. 8192 bytes).

Depending on the time taken to send & receive packets, which can vary greatly between different setups (based on e.g. CPU & transport medium), in order to achieve optimal performance larger packets (e.g. 4096 or 8192 words) are sometimes required.

Since the length of the packet header & body (in 32 bit words) are each encoded in 16-bit fields (in the first word of the transactor buffers), 16 is a natural new value for addr_width; addr_width=16 corresponds to maximum packet size of 65536 32-bit words (approx 262kBytes) which more than sufficient for all setups encountered so far (with margin of a few factors of 2).

All done. Closing.