I'm using an IP-Core of Xilinx that was generated using the Vivado IDE's IP Catalog, specifically I'm using the Accumulator and the Multiplier IP Cores.
These cores have a latency configuration of 6 and 3 respectively and do not use a handshake protocol (ready-for-data, done, run signals). When I'm using the cores with a component instantiation, I need circuits to handle the latency delays.
How can I verify that the latency is actually 6 and 3 respectively? Imagine that the IP Core is updated and the latency is changed, or in my code, I have it backwards and assume latencies 3 and 6 respecively. I want to assert component'latency = 3
, or something similar. What's the way this is done?
y <= a * b;
Xilinx tools can automatically move pipeline stages to improve the performance. \$\endgroup\$y0 <= a * b; y1 <= y0 when rising_edge(Clock); y <= y1 when rising_edge(Clock);
Read the synthesis report and search for retiming or so. Synthesis will map the multiplication and also the accumulation to DSP slices and use the DSP slice internal registers instead of normal registers. \$\endgroup\$