We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 20010

LogiCORE MAC FIR v5.0 - Should I use the Output Registers option on the MAC FIR?


Keywords: COREGen, CORE Generator, RDY, behavioral

Why do I get memory collision errors when doing a back-annotated Verilog simulation of the MAC FIR?


If your design results in a multi-MAC implementation, the "Registered Output" option (on page 4) should NOT be selected because it only causes registers to be added that do not perform the desired function. This option is intended to maintain the data output of the MAC FIR between RDY pulses. However, with multi-MAC implementations, this register is added at the output of each MAC rather than at the output of the adder tree that combines the outputs from all of the MACs. Therefore, all that happens is that a register is added after each MAC rather than being added after the last adder stage. This can use many extra resources if the filter requires a lot of MACs, because full precision is maintained through the MAC.

To work around this issue, and if you want the output to be held stable between RDY pulses, it is recommended that you manually add a register to the output of the MAC FIR.

This has been fixed in the MAC FIR v5.1.
AR# 20010
Date 04/01/2009
Status Archive
Type General Article