AR# 34764

LogiCORE IP Tri-Mode Ethernet MAC v4.4 and earlier - Virtex-6 FPGA block RAM parameterization might result in memory collisions during simulation and erroneous operation


When I target Virtex-6 FPGA in the LogiCORE Tri-Mode Ethernet MAC version 4.4 and earlier, block RAM instances do not comply with all asynchronous clocking conflict avoidance requirements as described in the Virtex-6 FPGA Memory Resources User Guide (UG363):

Specifically, RAMB16_S9_S9 instances within the LocalLink FIFO level of hierarchy are configured for READ_FIRST TDP mode, but do not respect the requirement that read and write addresses cannot be within the same page of memory. 

When using ISE Design Suite 11.4, this might result in memory collisions being reported during simulation.

Using ISE 11.3 or 11.4 might also result in marginal or erroneous hardware operation of the block RAM.


Files named "rx_client_fifo.v[hd]" and "tx_client_fifo.v[hd]" exist in the example_design/fifo subdirectory.

In each file, there are instances of the primitive RAMB16_S9_S9 which contains attributes called WRITE_MODE_A and WRITE_MODE_B. 

To work around this issue, change both the WRITE_MODE_A and WRITE_MODE_B values from "READ_FIRST" to "WRITE_FIRST".

This issue was fixed in version 4.3 rev2 available in the ISE design tools 11.5 release of the core, but the problem still exists in the version 4.4 core released in 12.1.  

This issue is scheduled to be fixed in the next release of the core.

Linked Answer Records

Master Answer Records

AR# 34764
Date 12/01/2014
Status Active
Type General Article
Devices More Less
Tools More Less