Two-port embedded memory/FIFO blocks are included in the ProASIC product family for efficient implementation of system level functionality (see Figure 4). Depending upon the family member, 6 to 60 blocks, each containing 256x9 bits of memory, are available to support a variety of possible memory configurations. Each block may be programmed as independent memory or may be combined, using dedicated memory routing resources, to form larger,more complex memories and FIFO structures. The memory blocks may be paralleled to form wider memories or stacked to form deeper memories.
What is also important here is the memory has dedicated FIFO logic so you the designer would not have to use logic cells to implement FIFO functions.