Xilinx IP核 Block Memory Generator v8.4 的使用

这篇具有很好参考价值的文章主要介绍了Xilinx IP核 Block Memory Generator v8.4 的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

如果想在 Xilinx 的FPGA上构建一个 RAM,通常有两种方式:

  1. 使用逻辑资源LUT组成DRAM,一般来说是用verilog声明一个多维数组即可
  2. 使用开发板上内嵌专用的BRAM,一般来说需要使用Xilinx提供的IP核

Block Memory Generator 就是使用了开发板上的BRAM。我在一个项目中需要对该IP核进行初始化,主要是使用 coe 文件初始化存储,因此本文主要介绍如何使用并初始化 Xilinx 提供的IP核 Block Memory Generator v8.4 ,为了确保成功初始化,还对其进行了一个简单的仿真,更多细节请参考官方手册。

IP核的使用

创建工程后,点击左侧的 IP Catalog,搜索 Block Memory Generator ,双击对应的IP核,会打开如下所示的配置界面

Xilinx IP核 Block Memory Generator v8.4 的使用

如果要查看该IP核的文档,可以点击左上角 Documentation 查看;如果打开的 DocNav 显示无法查看pdf,只要点击 Open to Print 即可下载说明文档,用自带的pdf阅读器查看文档

现在对其主要的配置作一个简单的介绍:

  1. Component Name:设置该IP核的名称,我这里保持了默认。
  2. Interface Type:RAM接口总线。这里保持默认,选择Native接口类型(标准RAM接口总线);
  3. Memory Type:存储器类型。可配置成Single Port RAM(单端口RAM)、Simple Dual Port RAM(伪双端口RAM)、True Dual Port RAM(真双端口RAM)、Single Port ROM(单端口ROM)和Dual Port ROM(双端口ROM),这里选择Simple Dual Port RAM。
  4. ECC Options:Error Correction Capability,纠错能力选项,这里保持默认。
  5. Write Enable:字节写使能选项,勾中后可以单独将数据的某个字节写入RAM中,这里不使能。
  6. Algorithm Options:算法选项。可选择Minimum Area(最小面积)、Low Power(低功耗)和Fixed Primitives(固定的原语),这里选择默认的Minimum Area。

接下来切换至 Port A 选项页,设置端口A的参数,该页面配置如下:

Xilinx IP核 Block Memory Generator v8.4 的使用

这里将 Port A WidthPort A Depth 分别设置为 72 和 2048,实际的宽度和深度请根据需求来设定。其他选项均保持默认。

接下来切换至 Port B 选项页,设置端口B的参数,该页面配置如下:

Xilinx IP核 Block Memory Generator v8.4 的使用

这里将 Port B Width 设置为 72,实际的宽度请根据需求来设定。其他选项均保持默认。

完成配置后,点击右下角 OK,紧接着会弹出 Genarate Output Products 的窗口,直接点击 Generate 即可

初始化

重新打开IP核的配置界面,切换到 Other Options 选项页,勾选上 Load Init File,然后点击 Edit 按钮,如果弹窗显示 No COE file specified. Create/Choose?,点击 OK 然后选择coe文件的路径和名字即可。最终会弹出下面的窗口。

Xilinx IP核 Block Memory Generator v8.4 的使用

第一行是用于指定第二行输入的值是什么进制的,比如第一行输入10,那么第二行输入的值都应该是十进制。

完成第一行输入后,第二行可以输入一系列值,相邻的值用逗号分隔,下图是一个示例。

Xilinx IP核 Block Memory Generator v8.4 的使用

由于配置的宽度是72,因此第一个72比特的值是1,第二个72比特的值是2,第三个72比特的值是1003,以此类推。后面将通过仿真来验证这一点。

完成后点击 Save,然后关闭窗口,点击配置界面右下角OK,重新 Generate 即可。

后面如果要改初始化的内容,可以直接修改对应的coe文件即可,但是最好去配置界面里重新加载初始化文件,因为直接修改coe文件,可能IP核还是使用的旧coe文件的内容

仿真

编写测试代码,如下所示

module test_mem();
    
    reg clk;
    reg rst_n;
    reg enb;
    reg [10:0] addrb;
    wire [71:0] doutb;
    
    blk_mem_gen_0 mem_instance(
        .clka(clk),
        .ena(1'b0),
        .wea(1'b0),
        .addra(11'b0),
        .dina(72'b0),
        .clkb(clk),
        .enb(enb),
        .addrb(addrb),
        .doutb(doutb)
    );
    
    always #5 clk = ~clk;
    initial begin
        clk = 1'b0;
        rst_n = 1'b1;
        enb = 1'b0;
        addrb = 11'b0;
        #5;
        rst_n = 1'b0;
        #20;
        rst_n = 1'b1;
    end
    always #60 addrb = addrb + 11'b001;
    always #30 enb = ~enb;
    
endmodule

仿真波形如下所示

Xilinx IP核 Block Memory Generator v8.4 的使用文章来源地址https://www.toymoban.com/news/detail-451591.html

到了这里,关于Xilinx IP核 Block Memory Generator v8.4 的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Xilinx关于Aurora IP核仿真和使用

    平台:vivado2017.4 芯片:xc7k325tfbg676-2 (active) 关于Aurora的开发学习。使用xilinx官方提供的IP核。 官方资料,pg046-aurora-8b10b.pdf和pg074-aurora-64b66b-en-us-12.0.pdf。 首先在IP Catalog中搜索Aurora IP核关于此IP有两种不同的IP,分别对应两种不同的编码方式和两份文档(PG046和PG074)。 这里先选

    2024年02月02日
    浏览(28)
  • Xilinx Aurora 64B/66B IP使用

            Aurora 64B/66B IP核的配置也比较简单,只需要对线速率和时钟进行配置,INIT clk和DRP clk是IP核内部逻辑使用,与线速率和uesr_clk无关,这两个时钟可以选择用户提供方便的时钟频率,         Link Layer进行接口的配置,datafolw模式可以选择全双工传输,半双工传输,

    2024年02月16日
    浏览(25)
  • Xilinx关于GTX的IP核serdes仿真和使用

    平台:vivado2017.4 芯片:xc7k325tfbg676-2 (active) 关于GTX的开发学习。使用xilinx官方提供的IP核。 最近在学习完PCIE协议,使用逻辑解析PCIE协议代码各种包头。那么数据在外传输用的什么方式呢?这里就是使用了GTX高速串行总线。那么GTX高速串行总线是什么呢? 我们知道一般的数据

    2024年02月03日
    浏览(40)
  • xilinx FPGA ROM IP核的使用(VHDL&ISE)

    目录 1.新建工程之后 建一个ip核文件: 2.编写顶层文件或者激励文件:(一定一定点击下面这个例化模板 去对ip核进行例化) 3.查看rtl图:   4编写测试文件: 5.仿真图: 工程下载链接:https://download.csdn.net/download/qq_43811597/86488775       根据所存数据的最大值来设置数据位宽

    2024年02月08日
    浏览(36)
  • xilinx FPGA FIFO IP核的使用(VHDL&ISE)

    1.新建工程和ip核文件 下图显示了一个典型的写操作。拉高WR_EN,导致在WR_CLK的下一个上升边缘发生写入操作。因为FIFO未满,所以WR_ACK输出1,确认成功的写入操作。当只有一个附加的单词可以写入FIFO时,FIFO会拉高ALMOST_FULL标志。当ALMOST_FULL拉高之后,一个附加的写入将导致

    2024年02月03日
    浏览(42)
  • 小梅哥Xilinx FPGA学习笔记19——IP 核使用之 ROM

    目录 一:章节导读 二:ROM IP 核配置 2.1 创建 ROM 初始化文件 2.3 ROM IP 核配置步骤 三: ROM核的仿真与调用 3.1 三角波的产生 3.2 仿真验证结果 3.3 正弦波的产生 3.4 仿真验证结果        ROM 是只读存储器( Read-Only Memory )的简称,是一种只能读出事先所存数据的固态半导体存

    2024年02月03日
    浏览(37)
  • FPGA(基于xilinx)中PCIe介绍以及IP核XDMA的使用

    例如:第一章 PCIe简介以及IP核的使用 PCIe 总线架构与以太网的 OSI 模型类似,是一种分层协议架构, 分为事务层(Transaction Layer)、 数据链路层(Data Link Layer) 和物理层(Physical Layer)。 这些层中的每一层都分为两部分:一部分处理出站(要发送的)信息,另一部分处理入站(接收

    2024年02月08日
    浏览(36)
  • xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)

    一、创建除法ip核  可以选择两个变量数相乘,也可以选择一个变量输入数据和一个常数相乘 可以选择mult(dsp资源)或者lut(fpga资源) 可以选择速度优先或者面积优先 可以自己选择输出位宽 还有时钟使能和复位功能  二、编写VHDL程序:声明和例化乘法器ip核 三、编写仿真程

    2024年02月11日
    浏览(51)
  • 【XILINX】使用SMPTE UHD-SDI IP时怎么约束core?

    通过使用以下步骤指定与IP核心相关联的各种参数的值,可以自定义IP以在设计中使用: 1.从IP目录中选择IP。 2.双击所选IP,或从工具栏或右键单击菜单中选择“自定义IP”命令。   rx_clk和tx_clk的周期必须根据要支持的最大线路速率进行约束。 设计中的EDH处理器还需要多周期

    2024年02月01日
    浏览(24)
  • 关于xilinx fpga flash烧录失败报错cannot set write enable bit or block(s) protected

    最近买了块新板子,固化程序一次就烧录不了,报错ERROR: [Labtools 27-3347] Flash Programming Unsuccessful: cannot set write enable bit or block(s) protected 记录一下如何解决的吧。 字面意思,flash写保护了。用的开发板上的flash是MX25L25645G,先看手册status register。 如图保护是bit5到bit0。 读一下该

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包