在UltraScale Pluse系列FPGA中,存储单元可以分为三类:SLICEM中的LUTRAM(又称为分布式RAM)、Block RAM和UltraRAM。这三类存储单元均可通过XPM_MEMORY的方式或者RTL代码的方式调用。在使用RTL代码时,可以通过综合属性RAM_STYLE指定存储单元的类型。
RAM_STYLE的值可以是block(对应Block RAM),distrubed(对应LUTRAM),regsisters(对应FF),ultra(对应URAM)。从Vivado 2020.1开始,RAY STYLE的值多了一种Mixed。 这个值可以使得工具根据目标存储单元的深度和宽度将其映射为LUTRAM、BRAM或URAM的组合,以达到最大程度地提高每类资源的利用率。
我们看一下案例,具体代码如下图所示。这里是一个单端口RAM,深度,宽度和资源类型是可以参数化的。
没有回复内容