URAM和BRAM有什么区别

无论是7系列FPGA、还是 Plus系列FPGA,都包含Block RAM(BRAM),但只有 Plus芯片有也就是我们所说的URAM 。BRAM和URAM都是重要的片上存储资源,但两者还是有些显著的区别 。
容量
【URAM和BRAM有什么区别】BRAM的容量为36Kb,且可当作两个独立的18Kb BRAM使用 。对于一个36Kb的BRAM,其最能达到的最大位宽为72bit 。
URAM容量为288Kb,一个URAM深度为4K(4×1024),宽度为72bit 。
时钟
BRAM 有两个时钟,在的声明中就可以看到这两个时钟和。
URAM 只有一个时钟,在的声明中可以看到该时钟 CLK。尽管在使用实例化 URAM 时可以看到 clka 和 clkb  , 但这两个端口最终都连接到 URAM 的物理端口 CLK 上 。
初始值
BRAM 的初始值是可以设定的,无论 BRAM 是单端口、简单双端口还是真双端口都可以通过 COE 文件设定其初始值 。而 URAM 的初始值只能为0,且无法更改 , 换言之 , 其初始值是不可设定的 。这也就意味着 BRAM 可以配置成 ROM 而 URAM 不可以 。
工作模式
BRAM 可配置为单端口、简单双端口和真双端口,但对于 URAM,不能简单地将这三种模式映射过来,其工作行为如下图所示 。可以看到,A/B端口不是独立的,例如,A端口读而B端口写同一地址,读出的是该地址原有数据;A端口写而B端口读同一地址,读出的是新写入的数据 。

URAM和BRAM有什么区别

文章插图