本人新手,想向SRAM里面写入1024个字,每字8位。 请问如何给data[address]赋值?(我用得ISE)跪谢。
module SRAM(clk, SRAM_dataout, SRAM_ub, SRAM_lb, SRAM_ce, SRAM_oe, SRAM_we, SRAM_addr
);
input clk;
output [7:0] SRAM_dataout; //写SRAM,所以定义为输出
output SRAM_ub;
output SRAM_lb;
output SRAM_ce;
output SRAM_oe;
output reg SRAM_we;
output reg [10:0] SRAM_addr;
reg [9:0] address;
reg [7:0] mem [1023:0];
reg [9:0] SRAM_addr_reg;
reg [7:0] data [1023:0];
initial
begin
SRAM_we <= 1*b1;//Pull up signal WE(Active-low)
SRAM_addr <= 1*b0;
address <= 1*b0;
end
assign SRAM_ub = 1*b0;//Pull down signal CE、OE、UB、LB
assign SRAM_lb = 1*b0;
assign SRAM_ce = 1*b0;
assign SRAM_oe = 1*b0;
always @(negedge clk )
begin
if (SRAM_addr < 11*d1024)
begin
SRAM_addr_reg <= SRAM_addr;
mem[SRAM_addr] <= data[address];
SRAM_we <= 1*b0; //Pull down signal WE (Active-low)
SRAM_addr <= SRAM_addr+1*d1; // change address
address <= address +1*b1;
end
else
SRAM_we <= 1*b1;
end
assign SRAM_dataout = mem[SRAM_addr_reg]; //把要写入的值给数据线
endmodule
module SRAM(clk, SRAM_dataout, SRAM_ub, SRAM_lb, SRAM_ce, SRAM_oe, SRAM_we, SRAM_addr
);
input clk;
output [7:0] SRAM_dataout; //写SRAM,所以定义为输出
output SRAM_ub;
output SRAM_lb;
output SRAM_ce;
output SRAM_oe;
output reg SRAM_we;
output reg [10:0] SRAM_addr;
reg [9:0] address;
reg [7:0] mem [1023:0];
reg [9:0] SRAM_addr_reg;
reg [7:0] data [1023:0];
initial
begin
SRAM_we <= 1*b1;//Pull up signal WE(Active-low)
SRAM_addr <= 1*b0;
address <= 1*b0;
end
assign SRAM_ub = 1*b0;//Pull down signal CE、OE、UB、LB
assign SRAM_lb = 1*b0;
assign SRAM_ce = 1*b0;
assign SRAM_oe = 1*b0;
always @(negedge clk )
begin
if (SRAM_addr < 11*d1024)
begin
SRAM_addr_reg <= SRAM_addr;
mem[SRAM_addr] <= data[address];
SRAM_we <= 1*b0; //Pull down signal WE (Active-low)
SRAM_addr <= SRAM_addr+1*d1; // change address
address <= address +1*b1;
end
else
SRAM_we <= 1*b1;
end
assign SRAM_dataout = mem[SRAM_addr_reg]; //把要写入的值给数据线
endmodule