0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三种可以例化的XPM

汽车玩家 来源:科学计算technomania 作者:猫叔 2020-03-08 16:46 次阅读

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

从上图中可以看出,目前可以例化的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的缺点就不是很明显,纯代码例化的方式更加灵活、简单。

三种可以例化的XPM

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Xilinx
    +关注

    关注

    71

    文章

    2163

    浏览量

    121012
  • XPM
    XPM
    +关注

    关注

    0

    文章

    12

    浏览量

    8666
收藏 人收藏

    评论

    相关推荐

    什么是PID调节器的三种模式

    (Proportional)、积分(Integral)和微分(Derivative)。这三种控制动作可以单独使用,也可以组合使用,形成三种基本的控制模式:比例控制(P)、积分控制(I)
    的头像 发表于 11-06 10:38 216次阅读

    mosfet的三种工作状态及工作条件是什么

    )的不同,可以工作在三种主要状态:截止状态、线性区和饱和区。 1. 截止状态 工作状态描述 : 当VGS小于MOSFET的开启电压(VGS(TH))时,MOSF
    的头像 发表于 10-06 16:51 1034次阅读

    单片机的三种总线结构

    单片机的三种总线结构包括地址总线(Address Bus, AB)、数据总线(Data Bus, DB)和控制总线(Control Bus, CB)。这三种总线在单片机内部及与外部设备之间的数据传输
    的头像 发表于 09-10 11:32 1696次阅读

    放大电路的三种组态可以放大什么

    放大电路是电子学中非常重要的组成部分,它们可以将输入信号的幅度放大,以满足各种应用的需求。放大电路的三种基本组态包括共射放大电路、共集放大电路和共基放大电路。每种组态都有其特定的应用和特点。以下
    的头像 发表于 07-09 14:31 856次阅读

    ESP32的Station模式SoftAP模式BLE模式,三种模式可以共存吗?

    现在ESP32 这三种模式能够共存吗? 以前了解,不是很稳定,现在改善了吗?
    发表于 06-24 06:40

    晶体管的三种工作状态

    晶体管作为现代电子技术的基石,其工作状态直接影响电子设备的性能和功能。晶体管通常具备三种基本的工作状态:截止状态、放大状态和饱和状态。这三种状态不仅决定了晶体管在电路中的行为,也反映了晶体管作为半导体器件的基本特性。本文将详细阐述晶体管的这
    的头像 发表于 05-28 14:53 1270次阅读

    简述斩波电路的三种控制方式

    斩波电路是一常见的电力电子器件,广泛应用于直流电压调节、电压变换、电流变换等领域。它可以实现对电流和电压的控制,以满足不同的电气设备的需求。斩波电路的控制方式主要有三种:脉宽调制控制、频率调制控制
    的头像 发表于 03-11 15:22 3287次阅读

    边缘计算分为哪三种类型?边缘计算这项技术可以应用在哪些领域?

    边缘计算分为哪三种类型?边缘计算这项技术可以应用在哪些领域? 边缘计算是一分布式计算的模式,它将数据处理和存储的功能从传统的集中式云计算中推向网络边缘设备,以便更快速、实时地进行计算和响应。边缘
    的头像 发表于 02-06 14:38 1288次阅读

    运放的三种应用

    运放在电路中主要存在三种应用,放大器,滤波器,振荡器。再这三种应用电路中,运放的两大特点虚短虚断仍然成立吗? 在阻尼振荡器中,工作过程是否按照我描述的这样,在反相输入端加一个近似锯齿波的电流源,正半
    发表于 01-26 16:18

    运动控制的三种控制方式

    非标项目中有非常多的运动控制,根据系统配置、电机类型以及精度需求的不同主要有三种控制方式:开环控制、半闭环控制、全闭环控制。
    的头像 发表于 01-23 09:48 1341次阅读
    运动控制的<b class='flag-5'>三种</b>控制方式

    嵌入式Linux开发的三种方式

    嵌入式Linux开发主要有三种方式:裸机开发、SDK开发和驱动开发。
    的头像 发表于 01-22 14:22 925次阅读

    通过TestStand三种主要运行方式探究TestStand开放式架构

    在这张图中,我们可以看到三种主要运行方式分别是”Test UUTs”、”Single Pass”、”Run MainSequence”。大家不妨先尝试一下看看同一个序列文件用三种运行方式运行有什么
    的头像 发表于 01-19 17:34 4275次阅读
    通过TestStand<b class='flag-5'>三种</b>主要运行方式探究TestStand开放式架构

    示波器的三种触发模式

    和示波器MDO704为来解读示波器三种触发模式。静电发生器输出信号通过高压衰减棒P6039A接入到示波器CH1通道,示波器选择1000x的衰减比。01自动模式Aut
    的头像 发表于 01-18 08:12 2438次阅读
    示波器的<b class='flag-5'>三种</b>触发模式

    示波器的三种触发模式

    和示波器MDO 704为来解读示波器三种触发模式。 静电发生器输出信号通过高压衰减棒P6039A接入到示波器CH1通道,示波器选择1000x的衰减比。 自动模式 在自动模式下,当没有触发信号时,示波器的扫描系统会根据设定的扫描速率自动进行扫描;而当有触发信号发生时,扫
    的头像 发表于 01-17 15:03 885次阅读
    示波器的<b class='flag-5'>三种</b>触发模式

    常见的socket三种类型

    常见的socket三种类型  Socket是计算机网络中常用的通信机制,在网络编程中起到了非常重要的作用。Socket可以分为三种类型:流套接字(Stream Socket)、数据报套接字
    的头像 发表于 12-08 11:18 2353次阅读