首先导入两个单口ram的IP核,我设置的是写优先模式,同时设置了一个写使能信号
首先设置状态机,第一个状态为闲置状态,第二个状态为写ram1,只把数据写进ram,不输出。第三个状态,写ram2读ram1,第四个状态为结束状态。自定义了一个信号为读使能信号,其实也不是读使能,就是决定输出是哪个ram的一个使能信号。读写的时候地址都要加1,所以定义了一个cnt信号作为状态转移。
接下来上代码:
module sing_ram2(
input clka,
input rst_n,
input [7:0] din,
output reg out_valid,
output reg [7:0] dout,
output wire [7:0] douta,
output wire [7:0] doutb,
output reg [1:0] state
);
reg [9:0] addra;
reg [9:0] addrb;
reg [9:0] cnt;
reg we_wr1,we_wr2,en_rd1,en_rd2;
parameter IDLE = 2'b00;
parameter RAM1_WR = 2'b01;
parameter RAM1_RD = 2'b10;
parameter RAM2_RD