AC620FPGA学习笔记——ROM数据显示

AC620FPGA学习笔记——ROM数据显示

ROM数据显示

工程地址:https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/FPGA/class05_onchipROM
基于数码管的项目增添ROM数据输出

硬件结构

开发板:AC620
在这里插入图片描述

整体框架

在这里插入图片描述

注ROM是由IP生成的生成步骤如下:
创建mif/hex文件
IP核创建
在IP核配置中导入mif/hex文件
完成

IP核配置

在这里插入图片描述
在这里插入图片描述
选择ip核生成文件保存的位置
在这里插入图片描述
配置rom大小(位宽与words)以及存储器选择
在这里插入图片描述
端口控制配置
在这里插入图片描述
mif/hex文件导入

代码部分

代码过多更多代码在github

顶层代码

module top(
	rst,
	clk,
	lock595,
	out595,
	clk595
);

input rst,clk;
output lock595,out595,clk595;

wire clk1;
wire clk2;
wire clk3;
wire [31:0]data;
reg [2:0]addr;

frequencydivider frequencydivider1(
	.clk(clk),
	.rst(rst),
	.fclk(clk1)
);


frequencydivider frequencydivider2(
	.clk(clk1),
	.rst(rst),
	.fclk(clk2)
);

frequencydivider frequencydivider3(
	.clk(clk2),
	.rst(rst),
	.fclk(clk3)
);


rom rom1 (
	.address(addr),
	.clock(clk3),
	.q(data)
);



BCDDisplay BCDDisplay1(
	.clk(clk),
	.rst(rst),
	.data(data),
	.lock595(lock595),
	.out595(out595),
	.clk595(clk595)
);


[email protected](negedge clk3,negedge rst)
if(!rst)
	addr <= 3'b0;
else
	addr <= addr + 3'b1;

endmodule