01-08-2019 07:07 PM
I am using the UltraRAM in the Ultrascale+ device. When both ports are writing same data, will the collision occur? Is the memory location written with deterministic data?
01-13-2019 12:37 AM
If both ports are writing same data at same address the written data will be stochastic . Please let us know how you are using Ultraram (inference or XPM based ) and your observation regarding the collision.
01-13-2019 05:14 AM
When both ports are writing same data, will the collision occur?
No - and the result is deterministic. You just need to remember that the operation on port-A is done before the operation on port-B - and both are done in one clock cycle.
Here is a nice UltraRAM description from page 113 of UG573: " In each clock cycle, each port can perform either a read or a write operation independent of the other port. Any combination of read/write is allowed on any of the two ports. The read and write operations are always synchronous to the clock. The operation of port A is always executed first followed by the operation of port B within the same clock cycle. Consequently, data access collision is not possible when both ports access the same address locations. "
01-13-2019 05:42 PM - edited 01-13-2019 05:56 PM
It seems that the UltraRAM has the different behavior from the Block RAM when the same address are accessed at the same time.
01-13-2019 05:54 PM - edited 01-13-2019 05:55 PM
Mark has answered me that there won't be collision because the port A has the higher priority than the port B. The relevant description is on the page 113 of UG573. It seems that the UltraRAM has the different behavior from the Block RAM when the same address are accessed at the same time.
01-14-2019 05:02 AM
It seems that the UltraRAM has the different behavior from the Block RAM...
UltraRAM is different in several ways from Block RAM. A nice list of the differences is found in the section of UG573 called "Block RAM and UltraRAM Differences" on about page-93.