赞
踩
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
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
8、仿真结果如下图,符合我们的设计目标
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。