URL
https://opencores.org/ocsvn/lwrisc/lwrisc/trunk
[/] [lwrisc/] [trunk/] [RTL/] [memory.v] - Diff between revs 17 and 19
Only display areas with differences |
Details |
Blame |
View Log
Rev 17 |
Rev 19 |
/******************************************************************
|
/******************************************************************
|
* *
|
* *
|
* Author: Liwei *
|
* Author: Liwei *
|
* *
|
* *
|
* This file is part of the "ClaiRISC" project, *
|
* This file is part of the "ClaiRISC" project, *
|
* The folder in CVS is named as "lwrisc" *
|
* The folder in CVS is named as "lwrisc" *
|
* Downloaded from: *
|
* Downloaded from: *
|
* http://www.opencores.org/pdownloads.cgi/list/lwrisc *
|
* http://www.opencores.org/pdownloads.cgi/list/lwrisc *
|
* *
|
* *
|
* If you encountered any problem, please contact me via *
|
* If you encountered any problem, please contact me via *
|
* Email:mcupro@opencores.org or mcupro@163.com *
|
* Email:mcupro@opencores.org or mcupro@163.com *
|
* *
|
* *
|
******************************************************************/
|
******************************************************************/
|
|
|
`include "clairisc_def.h"
|
`include "clairisc_def.h"
|
`include "rom_set.h"
|
`include "rom_set.h"
|
|
|
module com_prom (
|
module com_prom (
|
clk,
|
clk,
|
rd_addr,
|
rd_addr,
|
dout
|
dout
|
);
|
);
|
input clk;
|
input clk;
|
input [10:0] rd_addr;
|
input [10:0] rd_addr;
|
output [11:0] dout;
|
output [11:0] dout;
|
|
|
`ifdef SIM
|
`ifdef SIM
|
|
|
sim_rom i_sim_ram(
|
sim_rom i_sim_ram(
|
.address(rd_addr),
|
.address(rd_addr),
|
.clock(clk),
|
.clock(clk),
|
.q(dout)
|
.q(dout)
|
);
|
);
|
|
|
`else
|
`else
|
|
|
`ROM_TYPE i_alt_ram (
|
`ROM_TYPE i_alt_ram (
|
.address(rd_addr),
|
.address(rd_addr),
|
.clock(clk),
|
.clock(clk),
|
.q(dout)
|
.q(dout)
|
);
|
);
|
|
|
`endif
|
`endif
|
|
|
endmodule
|
endmodule
|
|
|
module sim_reg_file (
|
module sim_reg_file (
|
data,
|
data,
|
wren,
|
wren,
|
wraddress,
|
wraddress,
|
rdaddress,
|
rdaddress,
|
clock,
|
clock,
|
q);
|
q);
|
|
|
input [7:0] data;
|
input [7:0] data;
|
input wren;
|
input wren;
|
input [6:0] wraddress;
|
input [6:0] wraddress;
|
input [6:0] rdaddress;
|
input [6:0] rdaddress;
|
input clock;
|
input clock;
|
output [7:0] q;
|
output [7:0] q;
|
|
|
reg [7:0] membank[0:127];
|
reg [7:0] membank[0:127];
|
|
|
reg r_we;
|
reg r_we;
|
reg [6:0] r_rd_addr;
|
reg [6:0] r_rd_addr;
|
reg [6:0] r_wr_addr;
|
reg [6:0] r_wr_addr;
|
reg [6:0] r_data;
|
reg [6:0] r_data;
|
|
|
always @ (posedge clock)
|
always @ (posedge clock)
|
begin
|
begin
|
|
|
r_rd_addr<=rdaddress;
|
r_rd_addr<=rdaddress;
|
r_wr_addr<=wraddress;
|
r_wr_addr<=wraddress;
|
r_data<=data;
|
r_data<=data;
|
r_we<=wren;
|
r_we<=wren;
|
end
|
end
|
|
|
always @(posedge clock)
|
always @(posedge clock)
|
if (r_we)
|
if (r_we)
|
membank[r_wr_addr]<=r_data;
|
membank[r_wr_addr]<=r_data;
|
|
|
assign q=((r_rd_addr==r_wr_addr)&&(r_we))?r_data:membank[r_rd_addr] ;
|
assign q=((r_rd_addr==r_wr_addr)&&(r_we))?r_data:membank[r_rd_addr] ;
|
|
|
endmodule
|
endmodule
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.