When I attempt to use dual data rate registers in an IOB, the following error messages occur at the MAP stage:
"ERROR:Pack:625 - The dual data rate register ddr_tri_out1_u0 failed to combine with output buffer buf110 as required. Register ddr_tri_out1_u0 set/reset disagrees with another register in the I/O component."
"ERROR:Pack:626 - The dual data rate register ddr_tri_out311_u0 failed to join an I/O component as required. Please try constraining the register together with a valid pad or output buffer symbol. Note that FDDR library symbols may drive output buffers only."
In this instance, the errors occurred because more than one reset line was being used on the DDR FFs; this is not supported by the hardware. To work around this problem, ensure that there is only one reset line per IOB.
In some cases, this error may occur when a synthesis fanout limit has been applied to the reset line that results in the reset line being partitioned into separate but logically equivalent nets, and the synthesizer fails to group the FF loads properly. In this case, the following work-arounds are available:
- Increase the synthesis fanout on the reset signal to prevent the partitioning of the signal.
- Manually group the reset lines and FFs in the design, ensuring that there is only one reset per IOB.