当前位置:   article > 正文

Xilinx 7 Series FPGA资源ROM IP核的使用方法_xilinx fpga 如何读取rom数据

xilinx fpga 如何读取rom数据

ROM(制度寄存器) IP核使用方法

1、创建vivado工程,并点击IP Catalog,搜索ram,双击Block Memory Generator
在这里插入图片描述
2、此处使用简单单端口ROM
在这里插入图片描述
3、点击Port A Options,数据位宽为8位,数据深度是32,故地址位宽为5位,配置界面如下图所示
在这里插入图片描述
4、点击Other Options,我们选择加载初始化文件选项,选择初始化文件用来初始化rom寄存器,其他保持默认不变,点击OK
在这里插入图片描述
5、初始化文件内容
在这里插入图片描述

6、编写顶层模块,对ROM IP核进行例化

`timescale 1ns / 1ps

module rom_test(
    input clk,
    input rst_n
    );

reg [4:0] r_addr;
wire [7:0] r_data;

always @(posedge clk or negedge rst_n) begin
    if (~rst_n) begin
        // reset
        r_addr <= 'd0;
    end
    else begin
        r_addr <= r_addr + 1'b1;
    end
end
    
rom_ip rom_ip_inst (
  .clka(clk),    // input wire clka
  .addra(r_addr),  // input wire [4 : 0] addra
  .douta(r_data)  // output wire [7 : 0] douta
);

ila_0 ila_0_inst (
    .clk(clk), // input wire clk


    .probe0(r_addr), // input wire [4:0]  probe0  
    .probe1(r_data) // input wire [7:0]  probe1
);

endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

7、编写激励文件,进行仿真验证

`timescale 1ns / 1ps

module rom_test_tb;

reg clk;
reg rst_n;

always #10 clk = ~clk;

initial begin
    clk = 0;
    rst_n = 0;
    #100
    rst_n = 1;
end

rom_test rom_test_inst(
    .clk(clk),
    .rst_n(rst_n)
    );
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

8、仿真结果如下图,符合我们的设计目标
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/402676
推荐阅读
相关标签
  

闽ICP备14008679号