qertbella.blogg.se

Multiclock domain synchronization
Multiclock domain synchronization







empty flag inactive) read pointer logic immediately drives the data from the location to which it was pointing to the read port of the dual port RAM, ready to be read by read logic. When first data written and empty flag status cleared (i.e. One notable point regarding read pointer is with empty flag active the data pointed out by the read pointer is always invalid data. At the same time, empty flag is deasserted which indicates that FIFO is not empty, some data is available. Data will be written to the location where the write pointer is pointing and after the data write operation write pointer gets incremented pointing to the next location to be written. When both read and write pointers are pointing to first location of FIFO empty flag is asserted indicating the FIFO status as empty. A detailed and careful analysis of synchronizer circuit along with pointer logic is required to understand the synchronization of two FIFO pointer logic circuits which is responsible for accessing the FIFO read and write ports independently controlled by different clocks. FIFO architectures inherently have a challenge of synchronizing itself with the pointer logic of other clock domain and control the read and write operation of FIFO memory locations safely. FIFO pointers keep track of number of FIFO memory locations read and written and corresponding control logic circuit prevents FIFO from either under flowing or overflowing. However, even with the different speed and access types the average rate of data transfer remains constant. Generally FIFOs are used where write operation is faster than read operation. This requires a memory architecture wherein two ports of memory are available- one is for input (or write or push) operation and another is for output (or read or pop) operation. Data is written into the FIFO from one clock domain and it is read from another clock domain. Asynchronous FIFOs are used as buffers between two asynchronous clock domains to exchange data safely.









Multiclock domain synchronization