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

Subversion Repositories lwrisc

[/] [lwrisc/] [trunk/] [RTL/] [memory.v] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 11 mcupro
/******************************************************************
2
 *                                                                *
3
 *    Author: Liwei                                               *
4
 *                                                                *
5
 *    This file is part of the "ClaiRISC" project,                *
6
 *    The folder in CVS is named as "lwrisc"                      *
7
 *    Downloaded from:                                            *
8
 *    http://www.opencores.org/pdownloads.cgi/list/lwrisc         *
9
 *                                                                *
10
 *    If you encountered any problem, please contact me via       *
11
 *    Email:mcupro@opencores.org  or mcupro@163.com               *
12
 *                                                                *
13
 ******************************************************************/
14
 
15 7 mcupro
`include "clairisc_def.h"
16
`include "rom_set.h"
17
 
18 17 mcupro
module com_prom (
19 7 mcupro
        clk,
20
        rd_addr,
21
        dout
22
    );
23
    input               clk;
24
    input [10:0] rd_addr;
25
    output [11:0]        dout;
26
 
27
`ifdef SIM
28
 
29
    sim_rom i_sim_ram(
30
                .address(rd_addr),
31
                .clock(clk),
32
                .q(dout)
33
            );
34
 
35
`else
36
 
37
   `ROM_TYPE i_alt_ram (
38
                .address(rd_addr),
39
               .clock(clk),
40
                .q(dout)
41
            );
42
 
43
`endif
44
 
45
endmodule
46
 
47
module sim_reg_file (
48
        data,
49
        wren,
50
        wraddress,
51
        rdaddress,
52
        clock,
53
        q);
54
 
55
    input       [7:0]  data;
56
    input         wren;
57
    input       [6:0]  wraddress;
58
    input       [6:0]  rdaddress;
59
    input         clock;
60
    output      [7:0]  q;
61
 
62
    reg [7:0] membank[0:127];
63
 
64
    reg r_we;
65
    reg [6:0] r_rd_addr;
66
    reg [6:0] r_wr_addr;
67
    reg [6:0] r_data;
68
 
69
    always @ (posedge clock)
70
    begin
71
 
72
        r_rd_addr<=rdaddress;
73
        r_wr_addr<=wraddress;
74
        r_data<=data;
75
        r_we<=wren;
76
    end
77
 
78
    always  @(posedge clock)
79
        if (r_we)
80
            membank[r_wr_addr]<=r_data;
81
 
82
    assign q=((r_rd_addr==r_wr_addr)&&(r_we))?r_data:membank[r_rd_addr] ;
83
 
84
endmodule
85
 

powered by: WebSVN 2.1.0

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