RAM是随机存取存储器,是一个易失性存储器,其工作时可以对任何一个指定的地址写入或读出数据,这是ROM所并不具备的功能,ALTERA推出单端口和双端口的RAM IP核。
RAM IP 核 数据写入需要时钟,地址,数据信号。整个模块输入有时钟复位,以及两路未经消抖的按键输入信号,输出为四路到数码管动态显示模块。需要一个按键消抖模块,以及RAM控制模块,控制IP核进行数据的写入与读取。
RAM控制模块代码编写:
module ram_ctrl
(
input wire sys_clk,
input wire sys_rst_n,
input wire wr_flag,
input wire rd_flag,
output reg wr_en,
output reg [7:0] addr,
output wire [7:0] wr_data,
output reg rd_en
);
parameter CNT_MAX =24'd9_999_999;
reg [23:0] cnt_200ms;
always@(posedge sys_clk or negedge sys_rst_n)
if (sys_rst_n == 1'b0)
cnt_200ms <= 24'd0;
else if ((cnt_200ms == CNT_MAX) || ( wr_flag == 1'b1)||(rd_flag == 1'b1))
cnt_200ms <= 24'd0;
else if (wr_en == 1'b1)
cnt_200ms <= cnt_2