10.4.4.5.3 Operations with a Variable Aspect Ratio

A FIFO with variable aspect width has different depth and width configurations for the write and read side. There are some special considerations when using this type of FIFO, including:

  • Data order: Write side has smaller width than Read side: The FIFO starts writing to the least significant portion of the memory up.
  • Data order: Write side has larger width than Read side: The FIFO starts reading from the least significant portion of the memory. Meaning if the first word into the write side is 0xABCD, the words read out of the FIFO is 0xCD followed by 0xAB.
  • Full flag generation: The FULL is asserted when a full word from the write perspective cannot be written in. The FULL deasserted only if there is enough space in the FIFO to write a full word from the write aspect ratio.
  • Empty flag generation: The EMPTY is deasserted only when a full word from the read aspect ratio can be read out. The EMPTY is asserted if the FIFO does not contain a full word from the read aspect ratio.
  • The implication of the status flag generation is that it is possible to have a partial word in the FIFO that may not be immediately visible on the read side. For example, take a situation where the write side has a smaller width than the read side. The write side writes 1 word and finishes. In this type of scenario, the application using the FIFO must consider what a partial data word represents.

If the partial data word can not be processed downstream than it is meaningless to take it out of the FIFO until it has reached a full-word. However, if the partial word is considered valid and can be processed downstream in its ‘incomplete’ state, then some other type of mechanism needs to be designed to handle this condition.

The following diagram illustrates a condition where the write side is configured has x4 width and the read side as x8 width.

Figure 10-57. Write and Read Operations with Variable Aspect
þÿ