The following waveforms show the behavior of altsyncram megafunction for the chosen set of parameters in design altdpram0.tdf. For the purpose of this simulation, the contents of the memory at the start of the sample waveforms is assumed to be ( F0, F1, F2, F3, ...). The design altdpram0.tdf has two read/write ports. Read/write port A has 2048 words of 8 bits each and Read/write port B has 2048 words of 8 bits each. The A core uses a different clock enable than the A input registers. The B core uses a different clock enable than the B input registers. The output of the read/write port A is registered by clock. The output of the read/write port B is registered by clock.
The above waveform shows the behavior of the design under normal read conditions. The read happens at the rising edge of the enabled clock cycle. The output from the RAM is undefined until after the first rising edge of the read clock.
The above waveform shows the behavior of the design under normal write conditions. The write cycle is assumed to be from the rising edge of the enabled clock in which wren is high till the rising edge of the next clock cycle. In BIDIR_DUAL_PORT mode, when the write happens at the same address as the one being read in the other port, the read output is unknown. Actual write into the RAM happens at the falling edge of the write clock. During a write cycle on a port (A or B), the new data flows through to the output of the same port.