Abstract: A self-addressing FIFO for transferring data between clock domains while avoiding the necessity of using a clock tree stores address information as bits of a data word and uses these bits to generate the next address, thus eliminating loading the clock signal with a separate counter. While data must be valid at the clock edges and the clock period still needs to be controlled, clock skew is not an issue and therefore general purpose routing may be used for the input or output clock. Users may input or output data to external devices without ever using on-board global clock resources.