FPGA存储单元的四种调用方法

时间:2025-09-17  作者:Diven  阅读:0

什么是XPM?可能很多人没听过也没用过,全称是Xilinx Parameterized Macros,也就是Xilinx的参数化的宏,跟原语的例化和使用方式一样。可以在Vivado中的Tools->Language Templates中查看都有哪些XPM可以例化。

FPGA存储单元的四种调用方法

从上图中可以看出,目前可以例化的XPM主要有三种:跨时钟域处理、FIFO和MEMORY。

我们以MEMORY为例,在Vivado中可以通过下面四种方式调用FPGA中的存储单元,均可以选择是Block RAM还是Distributed RAM.

方法1:RTL代码

我们在定义一个memory变量后,可以在前面指定其资源类型:  

(*ram_style = "block" *)reg [3:0] mem_bram [15:0] ;(*ram_style = "distributed" *)reg [3:0] mem_dram [15:0] ;
 

 

使用RTL代码的方式非常灵活,但由于少了很多的控制项,综合后的结果可能不是最优的。

方法2:原语(Primitive)

使用原语也可以例化MEMORY,但没见几个工程师这么用过,因为接口实在太多了,所以实用性不高。

方法3:IP Core

这种方式应该是使用最多的,但缺点也很明显:

当修改参数时需要重新打开IP,然后Generate;

不同版本的Vivado之间还需要进行Update;

有时没注意到IP中的参数,导致结果并不是自己想要的;

最近在调试中就碰到这样一个问题,FIFO中的默认输出延迟是1,即输出数据比读使能晚一拍,而且Output Registers默认是不勾选的。但这个选项不知道什么时候被改了,导致程序最终的输出结果一直有问题,在debug时一直检查的是RTL代码,直到定位到FIFO模块时才发现了这个问题。如果此时我们使用的是XPM,那从代码中很容易就能看出来错误。

方法4:XPM_MEMORY

相对而言,XPM的缺点就不是很明显,纯代码例化的方式更加灵活、简单。

审核编辑:汤梓红

猜您喜欢

电导仪是应用于水质监测和化学分析的重要仪器,其主要优势体现在以下几个方面。电导仪具有高精度和高灵敏度,能够准确测量溶液中的电导率,从而反映出水中离子浓度的变化,...
2013-07-30 00:00:00

01 平台报警自诊断2024年9月12日某化工厂的智能运维平台提示一台循环水泵发出超阀值报警信息,经平台自诊断算法提示设备存在对中异常,相关报警通知第一时间通过...
2024-10-18 10:25:00

温度保险丝作为重要的安全保护元件,得到了应用。SEFUSE温度保险丝因其高可靠性和精准的温度控制性能,成为市场上的热门选择。本文将详细介绍SEFUSE温度保险丝...
2020-10-01 05:15:30


1.单按钮控制电动机起动停止。① 采用计数器对电动机进行起动停止控制,控制电路只需用一个按钮(X0。当按下按钮X0时,经M0常闭接点使计数器CO的线圈得电计数...
2019-07-29 17:50:00

OLED显示屏是新型的显示技术,与传统的LCD显示屏相比,具有多个显著的区别。OLED屏幕的每个像素都能独立发光,因此能够实现更深的黑色和更高的对比度,提升了画...
2023-06-23 00:00:00

在选择工具耗材时,了解其规格尺寸非常重要。不同的工具和应用场景对耗材的要求各异,因此在购买前,您需要明确所需耗材的具体尺寸。常见的工具耗材如砂纸、刀具、钻头等,...
2013-07-15 00:00:00


现代电子技术中,二极管作为重要的电子元件,应用于整流、信号处理等领域。随着科技的发展,出现了多种类型的二极管,其中雪崩光电二极管(APD)和普通二极管是两种常见...
2025-04-09 23:31:09

贴片电阻,电子产品中很重要的小小元件,其生产工艺流程却蕴含着精密的科技。你知道这些微小的电子元件是如何诞生的吗?让我们一起揭开神秘的面纱。原材料的选择很重要。高...
2024-11-29 10:26:32