When a port is enabled, the setup and hold specifications of the ADDRESS inputs should never be violated, even if WE is deasserted.
For Virtex-II, Virtex-II Pro, Virtex-4, Virtex-5, Virtex-6, and 7 series FPGAs, when a block RAM port is enabled, all address transitions must meet the setup and hold time of the ADDR inputs with respect to the port clock. The setup and hold requirements for the block RAM inputs are listed in the device data sheet. The requirements must be met even when the read data output is ignored by the user and WE is deasserted, otherwise, the block RAM contents might be unreliable.
There are some instances in which you might not be able to meet these requirements. For instance, if there is a multi-cycle path on the address input signals. To work around this, disable the port via ENA/ENB during the time that the address inputs do not meet setup and hold requirements. De-asserting ENA/ENB will disable the port so that violating the address input setup and hold requirements will not affect block RAM contents. Assert ENA/ENB again when resuming normal read and write functionality.
The Virtex-II, Virtex-II Pro, Virtex-4, Virtex-5, Virtex-6, and 7 series FPGA data sheets are located at:
http://www.xilinx.com/support/documentation/index.htm
| Answer Number | Answer Title | Version Found | Version Resolved |
|---|---|---|---|
| 41531 | Xilinx Obsolete Device Solution Center - Block RAM for devices covered by XCN12026 | N/A | N/A |
| 37214 | Virtex-6 FPGA Design Assistant - Troubleshoot common block RAM/FIFO problems | N/A | N/A |
| 42571 | Virtex-5, Virtex-6, Spartan-6, 7 Series Block RAM - Violating setup and hold on Enable can cause error in first Read or Write | N/A | N/A |