ROM IP核的使用(Verilog)

在这里插入图片描述

1.新建.mif文件

在这里插入图片描述
设置自己所需要的参数

在这里插入图片描述
将16进制转换成无符号十进制

在这里插入图片描述
自动填充数据:范围0~255(共256),从0开始自增,增量为1

在这里插入图片描述
填充后

在这里插入图片描述

2.创建ROM IP核

在这里插入图片描述
自定义IP核的名称如:my_rom。

在这里插入图片描述

这里需对应.mif文件设置的参数 需要>= .mif设置的位宽及大小

在这里插入图片描述
看自己设计需要需要勾选‘q’,勾选后在仿真中可见延时两个时钟,不勾选正常延时1个时钟

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.按照第一图搭建程序

3.1 顶层模块 ip_rom

module ip_rom(clk, rst_n, q);
	input clk;
	input rst_n;
	
	output [7:0] q;
	wire [7:0]addr;
	
	//控制地址变化
	addr_ctrl addr_ctrl_dut(
	.clk(clk), 
	.rst_n(rst_n), 
	.addr(addr)
	);

	//IP核:ROM 
	my_rom my_rom_dut(
	.address(addr),
	.clock(clk),
	.q(q)
	);
	
	endmodule

3.2 addr_ctrl模块

功能:控制ROM的地址变化

module addr_ctrl(clk, rst_n, addr);

	input clk;
	input rst_n;
	
	output reg [7:0] addr;		//控制ROM的地址变化(0~255)

	always@ (posedge clk,negedge rst_n)begin
		if(rst_n == 1'b0)
			addr <= 8'd0;
		else if(addr <= 8'd255)
			addr <= addr + 8'd1;
		else
			addr <= 8'd0;
	end
endmodule

4.modelsim 仿真

在这里插入图片描述
在这里插入图片描述

5.下板仿真测试

5.1. 下板的话 ip核设置中,必须勾选上如下图

在这里插入图片描述
5.2 直接打开之前创建的my_rom IP核就可以更改
在这里插入图片描述
在这里插入图片描述
5.3 分配管脚——>全编译——>下板生成.sof文件——>Tools——> In System memory Content Editor——>Hardware 选择 Blaster-USB——>File 选择.sof文件——>点击file前的小图标 下载——>下载完成即为下图 (00—FF:256位数据)

在这里插入图片描述

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值