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

时间:2025-11-01  作者: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的缺点就不是很明显,纯代码例化的方式更加灵活、简单。

审核编辑:汤梓红

猜您喜欢

熔断器作为重要的保护元件,能够有效防止电路过载和短路,保障设备和人员的安全。LIRO立熔熔断器优异的性能和稳定的质量,成为众多用户选型的首选品牌。面对市场上众多...
2024-08-27 05:00:30

一、FPGA配置引脚说明1、CFGBVS如果VCCO0连接至2.5V或3.3V,CFGBVS连接至VCCO0。如果VCCO0连接至1.5V或1.8V,CF...
2023-02-13 14:50:00

贴片电阻2010是一种表面贴装型电阻器,因其尺寸为2.0mm x 1.0mm而得名。别看身材小巧,却拥有比一般贴片电阻更大的功率,通常可达0.25W甚至更高,这...
2024-11-29 10:25:32

我们的日常生活中,电子设备已经无处不在,而这些设备都需要稳定的电力供应才能正常工作。为了确保不同设备的兼容性和安全性,国际上制定了直流供电电压范围标准。直流供电...
2024-09-20 00:00:00

保险丝起着非常重要的保护作用,能够有效防止电路过载和短路,保障设备的安全运行。Bussmann(巴斯曼)作为全球知名的保险丝品牌,高品质和的产品线赢得了众多用户...
2024-10-05 05:39:30

电子元件的世界中,PDIP8_10.92X7.11MM是一种备受关注的封装类型。它以其独特的尺寸和结构,广泛应用于各种电子设备中。本文将对PDIP8_10.92...
2025-03-05 13:58:01

呼吸可以揭示我们的健康状况。人体呼出气体中的微小分子,能够为肺部疾病、糖尿病等很多疾病提供有用的线索。这就是为什么研究人员一直热衷于开发能够精确检测这些化合物的...
2023-10-29 09:39:00

插件电阻和贴片电阻都是常用的电子元件,主要功能都是限制电流,但两者在外形、安装方式、应用场景等方面存在一些区别。1. 外形和安装方式: 插件电阻通常具有引脚,可...
2024-11-29 10:26:01


品牌与国家的关联往往承载着技术底蕴与文化传承。今天,我们将聚焦一个受到瞩目的品牌——智宝(TEAPO),探讨其升功率电阻产品背后的国家归属。智宝,这个在音频及电...
2017-01-01 06:27:30