在vivado的Block Memory Generator中,有两种双口RAM,分别是简单双口RAM(Simple Dual Port RAM)和真双口RAM(True Dual Port RAM)。
“单口”指的是1个读写数据的接口BRAM_PORTA,可以用于写入,也可以用于读出。
“双口”指的是2个读写数据的接口BRAM_PORTA和BRAM_PORTB。
对于简单双口RAM,A口只能用于写入,B口只能用于读出。
对于真双口RAM,A口可以用于写入与读出,B口也可以用于写入和读出。
相同数据位宽和相同深度,真双口RAM使用的资源是简单双口RAM的2倍。
例如A口4096宽,64深,B口128宽,2048深,简单双口RAM使用64个36K BRAM资源。
例如A口4096宽,64深,B口128宽,2048深,使用128个36K BRAM资源。