单口RAM与双口RAM的区别在于,单口RAM只有一套地址总线和数据总线,因此读写不能同时进行。而双口RAM有两套地址总线和数据总线,读写可以同时进行。FIFO读写可以同时进行,可以看做双口。
双口RAM分为伪双口RAM(Xilinx称为Simple two-dual RAM)与双口RAM(Xilinx称为true two-dual RAM)。伪双口RAM,一个端口只读,另一个端口只写;而双口RAM两个端口都可以读写。
FIFO也是一个端口只读,另一个端口只写。FIFO与伪双口RAM的区别在于,FIFO为先入先出,没有地址线,不能对存储单元寻址;而伪双口RAM两个端口都有地址线,可以对存储单元寻址。
异步时钟域的缓存只要是双口器件都可以完成。但FIFO不需对地址进行控制,是最方便的。(转自快乐丢丢的网易日志)