The dual-port 288 Kb UltraRAM consists of a 288 Kb storage area and two independent access ports, A and B. Both ports share a single clock input.
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. Each port has its own address, data in, data out, enable, and write enable.
- If both ports are executing read and write for the same address, the
behavior is defined as (see the following table):
- If port A is writing, port B is reading, then port B reads new data.
- If port A is reading, port B is writing, then port A reads the old data.
- If port A and B are writing, then port B write overwrites the port A write. At the end of the clock cycle, the memory stores port B write data.
UltraRAM Port Access | Port A | Port B | Data Output |
---|---|---|---|
1 Read/1 Write | Read | Write | Old data |
1 Write/1 Read | Write | Read | New data |
1 Read/1 Read and Write | Read | Read/Write | Old data |
1 Read and Write/1 Read | Read/Write | Read | New data |
2 Read/2 Write | Read or Write | Write or Read | Depends on port A/B read/write combination |