Vivado进阶-Fpga中的mem的综合和应用

mem在设计中一般都会用到,最终在fpga中会被综合成3种RAM,第一种是寄存器搭建成RAM,第二种是DRAM,第三种就是BRAM。这三种你是可以指定的,具体怎么指定或者什么时候生成什么ram比较好在我之前的文章Synaplify综合的常用命令(1)https://blog.csdn.net/weixin_39896700/article/details/129280066中有详细的介绍。今天要说的是一个很细节的东西,也是生成的最多的BRAM,并不是你指定了就一定会成功的。

指定格式顺带一下,指定的格式是在申明mem的前面用括号去注释(*ram_style="block")reg DW-1:0 memAW-1:0

但是要注意一点,就是要想综合成BRAM必须是同步复位,因为BRAM不支持异步复位,所以如果你用了异步复位是综合不成BRAM的。如下图我的代码是异步复位,而且我也指定了综合成BRAM:

综合完成之后,打开电路图,可以看到,全是寄存器搭建的,没有综合成BRAM。

从资源当中也可以看到:

换一个同步复位的写法:

打开电路图:

可以清楚的看到这是一个BRAM,好看多了,这是FPGA的专用资源器件,也不会占用lut。打开资源报告查看:

可以很清楚的看到综合成了BRAM。所以并不是你指定了就一定能成功的。要了解器件的底层逻辑要求。不然你就会很迷茫的找不到答案。

相关推荐
zlinear数据采集卡1 天前
D223的SRAM硬件记录仪:外部触发与瞬态波形捕获方案
arm开发·嵌入式硬件·fpga开发·开源
szxinmai主板定制专家1 天前
基于 RK3588 + Xilinx Kintex-7 FPGA 异构工业主控板设计方案
arm开发·人工智能·嵌入式硬件·fpga开发·zynq
Rambo.xia1 天前
RFSoC高速采集卡设计项目:一块板卡串联综合优化5大核心技术
单片机·嵌入式硬件·fpga开发
XMAIPC_Robot1 天前
RK3588+STM32:高性能机器人运动控制解决方案,兼顾实时性与AI算力
人工智能·stm32·嵌入式硬件·算法·fpga开发·机器人·arm+fpga
zlinear数据采集卡1 天前
D223的DDS信号发生器:10000点查找表与4通道16位DAC波形输出
arm开发·嵌入式硬件·fpga开发·开源
物质波波波2 天前
WS-RPE:面向边缘物理AI实时特征值计算的硬件工作窃取调度器与冗余PE激活架构
人工智能·fpga开发·架构·系统架构·硬件架构
我爱C编程2 天前
基于FPGA的DSB调制解调系统verilog开发
fpga开发·verilog·fpga·dsb
zlinear数据采集卡2 天前
USB HS 480M高速传输与SRAM记录仪:DABM-D223数据存储系统全解析
arm开发·嵌入式硬件·fpga开发·开源
逻辑诗篇2 天前
基于 XCVU13P 的 4 路 100G 光纤 PCIe 处理板 PCIE727 硬件规格全解析
fpga开发
玩嵌入式谁会脱发呀2 天前
【FPGA】 verilog设计spi读写flash实现数据DMA搬运
fpga开发