上传者: GJZGRB
|
上传时间: 2021-04-13 15:03:08
|
文件大小: 6.74MB
|
文件类型: ZIP
FPGA片内RAM读写测试Verilog逻辑源码Quartus工程文件+文档说明,使用 FPGA 内部的 RAM 以及程序对该 RAM 的数据读写操作,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
module ram_test(
input clk, //50MHz时钟
input rst_n //复位信号,低电平有效
);
//-----------------------------------------------------------
reg[8:0] w_addr; //RAM写地址
reg[15:0] w_data; //RAM写数据
reg wea; //RAM PORTA 使能
reg[8:0] r_addr; //RAM读地址
wire[15:0] r_data; //RAM读数据
//产生RAM地址读取数据测试
always @(posedge clk or negedge rst_n)
if(rst_n==1'b0)
r_addr <= 9'd0;
else
r_addr <= r_addr+1'b1;
///产生RAM写入的数据
always@(posedge clk or negedge rst_n)
begin
if(rst_n==1'b0) begin
wea <= 1'b0;
w_addr <= 9'd0;
w_data <= 16'd0;
end
else begin
if(w_addr==511) begin //ram写入完毕
wea <= 1'b0;
end
else begin
wea<=1'b1; //ram写使能
w_addr <= w_addr + 1'b1;
w_data <= w_data + 1'b1;
end
end
end
//-----------------------------------------------------------
//实例化RAM
ram_ip ram_ip_inst (
.wrclock (clk ), // input wrclock
.wren (wea ), // input [0 : 0] wren
.wraddress (w_addr ), // input [8 : 0] wraddress
.data (w_data ), // input [15 : 0] data
.rdclock (clk ), // input rdclock
.rdaddress (r_addr ), // input [8 : 0] rdaddress
.q (r_data ) // output [15 : 0] q
);
endmodule