OpenCores
URL https://opencores.org/ocsvn/lwrisc/lwrisc/trunk

Subversion Repositories lwrisc

[/] [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
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.