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

Subversion Repositories vg_z80_sbc

[/] [vg_z80_sbc/] [trunk/] [rtl/] [vga_dpram.v] - Blame information for rev 35

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 hharte
// This module is derived from dpram.v/wb_bram.v:
2
//----------------------------------------------------------------------------
3
// Wishbone DDR Controller
4
// 
5
// (c) Joerg Bornschein (<jb@capsec.org>)
6
//----------------------------------------------------------------------------
7
module vga_dpram
8
#(
9
    parameter mem_file_name = "none",
10
    parameter adr_width = 12,
11
    parameter dat_width = 8
12
) (
13
    input                       clk1,
14
    input                       clk2,
15
 
16
    // Port 0
17
    input      [adr_width-1:0]  adr0,
18
    input                       we0,
19
    input      [dat_width-1:0]  din0,
20
    output reg [dat_width-1:0]  dout0,
21
    // Port 1
22
    input      [adr_width-1:0]  adr1,
23
    input                       we1,
24
    input      [dat_width-1:0]  din1,
25
    output reg [dat_width-1:0]  dout1
26
);
27
 
28
parameter depth = (1 << adr_width);
29
 
30
// actual ram 
31
reg [dat_width-1:0] ram [0:depth-1];
32
 
33
//------------------------------------------------------------------
34
// Syncronous Dual Port RAM Access
35
//------------------------------------------------------------------
36
always @(posedge clk1)
37
begin
38
    // Frst port
39
    if (we0)
40
        ram[adr0] <= din0;
41
 
42
    dout0 <= ram[adr0];
43
end
44
 
45
 
46
always @(posedge clk2)
47
begin
48
    // Second port
49
    if (we1)
50
        ram[adr1] <= din1;
51
 
52
    dout1 <= ram[adr1];
53
end
54
 
55
//------------------------------------------------------------------
56
// Initialize content to Zero
57
//------------------------------------------------------------------
58
integer i;
59
 
60
initial
61
begin
62
    if (mem_file_name != "none")
63
    begin
64
        $readmemh(mem_file_name, ram);
65
    end
66
    else begin
67
        for(i=0; i<depth; i=i+1)
68
            ram[i] <= 'b0;
69
    end
70
 
71
end
72
 
73
endmodule

powered by: WebSVN 2.1.0

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