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

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

3天内不再提示

FPGA实现基于Vivado的BRAM IP核的使用

电子设计 来源:CSDN博主 作者:XXQ121 2020-12-29 15:59 次阅读

Xilinx公司FPGA中有着很多的有用且对整个工程很有益处的IP核,比如数学类的IP核,数字信号处理使用的IP核,以及存储类的IP核,本篇文章主要介绍BRAM IP核的使用。

BRAM是FPGA定制的RAM资源,有着较大的存储空间,且在日常的工程中使用较为频繁。BRAM以阵列的方式排布于FPGA的内部,是FPGA实现各种存储功能的主要部分,是真正的双读/写端口的同步的RAM。

本片文章是基于Vivado的 2017.1的版本,其他版本都大同小异。

首先在Vivado界面的右侧选择IP Catalog 选项。

然后就可以在IP 目录中,选择想要的IP核,此处在搜索框输入BRAM,选择我们要使用的BRAM IP核。

o4YBAF9uJquAbH4EAABxhnEhJiU920.png

即最下方的Block Memory Generator,顾名思义,块状RAM。

我们常用的是单口BRAM,单口写,单口读。可配置Memory Type 为Simple Dual Port RAM。如下图所示:

pIYBAF9uJqyAE19KAACwuQaXH2A606.png

其中Component Name 可以自定义自己所需要的模块名称。类型定义完成后,可以看到左侧显示的模块端口,端口的使用后面再细说。

设置完成后,开始设置端口的位宽以及深度,选择Port A Options选项,可以看到下面的界面。

pIYBAF9uJq6AC4zFAACI-tZzmR0122.png

Port A Width即位宽,也就是你存储数据的有多少位,Port A Depth即深度,也就是你要存多少个数据。端口A设置好后,还需要点击Port B Options,点击完进入Port B Options选项后,系统会帮你自动设置好端口B的宽度和深度,因为B肯定是和A一样的。

o4YBAF9uJq-AfEooAABNWARNqns092.png

可以看到端口B也设置完成,同时在Port B Optional Output Registers有一个Primitives OutputRegisters选项。如果这个选项不勾上,那么正常的情况下,当第一个时钟时候,送来地址,那么数据会在第二个时钟取好送出RAM。但是当勾上这个选项后,那么数据就会延迟两个时钟,在第三个时钟送出。这是取数据情况下的时序。当存数据时候,那么只需要地址和数据在同一个时钟下即可。

当我们在一般使用RAM时候,如果需要事先存到RAM里的数据量不大,我们可以在Testbench里面写一下即可。但是如果数据量较大时,那么我们可以使用.coe文件事先将数据导入到RAM 之中,如下图所示。

o4YBAF9uJrCAG-mOAABFG_zddM4064.png

在Other Options选项中,有一个Load Init File选项,即加载初始化文件,在这里勾上后,即可加载已存储好数据的.coe文件。关于.coe文件的制作,网上有很多教程,在此不再赘述。然后点击下方OK,然后再点击弹出来的窗口的Generate即可生成BRAM 的IP核。

至此,常用情况下的BRAM的配置选项以及设置介绍完成。
编辑:hfy

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

    关注

    1603

    文章

    21328

    浏览量

    593251
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119388
收藏 人收藏

    评论

    相关推荐

    FPGA设计中BRAM的知识科普

    FPGA设计中,BRAM是一项非常关键的内置存储资源,FPGA开发需要熟练使用BRAM,今天再复习一下BRAM的知识,包括
    发表于 08-15 15:44 2355次阅读
    <b class='flag-5'>FPGA</b>设计中<b class='flag-5'>BRAM</b>的知识科普

    基于FPGAIP8051上实现TCPIP的设计

    基于FPGAIP8051上实现TCPIP的设计
    发表于 08-06 12:18

    vivadoip的工程封装

    请教一下,vivado怎么把带ip的工程进行封装,保证代码不可见,可以通过端口调用。我尝试了以下方法,ippackage,如果要在另一个程序里调用,也要提供源代码;另一个方法是将网表文件edf文件与端口声明结合,这种方法只能
    发表于 07-14 09:18

    xilinx vivado 怎么封装包含一个ip的自定义ip

    逻辑,例化了一个bRAMip ;2.封装ip:选择固定文件路径进行封装3.在封装ip界面调了一个相同的
    发表于 12-11 10:25

    基于FPGA的FFT和IFFT IP应用实例

    飞舞,这里就不赘述了,以免有凑字数的嫌疑。下面我们就Matlab和FPGA两个工具双管齐下,比对Vivado的FFT IP生成的数据。2 Matlab产生测试数据,绘制cos时域和频
    发表于 08-10 14:30

    玩转Zynq连载21——VivadoIP的移植

    `玩转Zynq连载21——VivadoIP的移植更多资料共享腾讯微云链接:https://share.weiyun.com/5s6bA0s百度网盘链接:https://pan.baidu.com
    发表于 09-04 10:06

    怎么在Vivado HLS中生成IP

    是对的,请纠正我,但我认为这一步只需按一个按钮)3 - 将IP内核导入Vivado并: a-生成块设计(这是我最不舒服的步骤,我会很高兴获得一些好的建议,因为算法很复杂且IP不是基本
    发表于 03-24 08:37

    Vivado IP锁定的解决办法分享

      发生IP锁定,一般是Vivado版本不同导致的,下面介绍几种方法:    1 常用的方法  1)生成IP的状态报告 Report -
    发表于 01-08 17:12

    Vivado中xilinx_courdic IP怎么使用

    Vivado中xilinx_courdic IP(求exp指数函数)使用
    发表于 03-03 07:35

    BRAM IP包括哪几种类型?怎么使用?

    BRAM IP包括哪几种类型?Vivado中xilinx_BRAM IP
    发表于 03-08 07:11

    Vivado生成IP

    vivado生成ip后缺少一大片文件,之前是可以用的,中途卸载过Modelsim,用vivado打开过ISE工程,因为工程中很多IP
    发表于 04-24 23:42

    VIVADO——IP封装技术封装一个普通的VGA IP-FPGA

    有关FPGA——VIVADO15.4开发中IP 的建立
    发表于 02-28 21:04 15次下载

    Vivado中xilinx_BRAM IP核使用

    Vivado2017.2 中BRAM版本为 Block Memory Generator Specific Features 8.3。BRAM IP核包括有5种类型:Single-p
    发表于 03-10 06:15 19次下载
    <b class='flag-5'>Vivado</b>中xilinx_<b class='flag-5'>BRAM</b> <b class='flag-5'>IP</b>核使用

    VivadoBRAM IP的配置方式和使用技巧

    FPGA开发中使用频率非常高的两个IP就是FIFO和BRAM,上一篇文章中已经详细介绍了Vivado FIFO IP,今天我们来聊一聊
    的头像 发表于 08-29 16:41 3010次阅读
    <b class='flag-5'>Vivado</b>中<b class='flag-5'>BRAM</b> <b class='flag-5'>IP</b>的配置方式和使用技巧

    FPGA实现基于VivadoBRAM IP核的使用

    Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP核,比如数学类的IP核,数字信号处理使用的IP核,以及存储类的IP核,本
    的头像 发表于 12-05 15:05 520次阅读