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

Subversion Repositories srdydrdy_lib

[/] [srdydrdy_lib/] [trunk/] [external/] [ethernet_tri_mode/] [TECH/] [duram.v] - Blame information for rev 23

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 23 ghutchis
module duram(
2
data_a,
3
data_b,
4
wren_a,
5
wren_b,
6
address_a,
7
address_b,
8
clock_a,
9
clock_b,
10
q_a,
11
q_b);   //synthesis syn_black_box
12
 
13
parameter DATA_WIDTH    = 32;
14
parameter ADDR_WIDTH    = 5;
15
parameter BLK_RAM_TYPE  = "AUTO";
16
parameter DURAM_MODE    = "BIDIR_DUAL_PORT";
17
parameter ADDR_DEPTH    = 2**ADDR_WIDTH;
18
 
19
 
20
 
21
input   [DATA_WIDTH -1:0]   data_a;
22
input                       wren_a;
23
input   [ADDR_WIDTH -1:0]   address_a;
24
input                       clock_a;
25
output  [DATA_WIDTH -1:0]   q_a;
26
input   [DATA_WIDTH -1:0]   data_b;
27
input                       wren_b;
28
input   [ADDR_WIDTH -1:0]   address_b;
29
input                       clock_b;
30
output  [DATA_WIDTH -1:0]   q_b;
31
 
32
`ifndef ALTERA_MEM
33
 
34
reg  [DATA_WIDTH -1:0]   q_a;
35
reg  [DATA_WIDTH -1:0]   q_b;
36
 
37
reg [DATA_WIDTH-1:0] mem [0:ADDR_DEPTH-1];
38
 
39
  always @(posedge clock_a)
40
    begin
41
      q_a <= mem[address_a];
42
      if (wren_a)
43
        mem[address_a] <= data_a;
44
    end
45
 
46
  always @(posedge clock_b)
47
    begin
48
      q_b <= mem[address_b];
49
      if (wren_a)
50
        mem[address_b] <= data_b;
51
    end
52
`else
53
 
54
altsyncram U_altsyncram (
55
.wren_a         (wren_a),
56
.wren_b         (wren_b),
57
.data_a         (data_a),
58
.data_b         (data_b),
59
.address_a      (address_a),
60
.address_b      (address_b),
61
.clock0         (clock_a),
62
.clock1         (clock_b),
63
.q_a            (q_a),
64
.q_b            (q_b),
65
// synopsys translate_off
66
.aclr0 (),
67
.aclr1 (),
68
.addressstall_a (),
69
.addressstall_b (),
70
.byteena_a (),
71
.byteena_b (),
72
.clocken0 (),
73
.clocken1 (),
74
.rden_b ()
75
// synopsys translate_on
76
);
77
    defparam
78
        U_altsyncram.intended_device_family = "Stratix",
79
        U_altsyncram.ram_block_type = BLK_RAM_TYPE,
80
        U_altsyncram.operation_mode = DURAM_MODE,
81
        U_altsyncram.width_a = DATA_WIDTH,
82
        U_altsyncram.widthad_a = ADDR_WIDTH,
83
//      U_altsyncram.numwords_a = 256,
84
        U_altsyncram.width_b = DATA_WIDTH,
85
        U_altsyncram.widthad_b = ADDR_WIDTH,
86
//      U_altsyncram.numwords_b = 256,
87
        U_altsyncram.lpm_type = "altsyncram",
88
        U_altsyncram.width_byteena_a = 1,
89
        U_altsyncram.width_byteena_b = 1,
90
        U_altsyncram.outdata_reg_a = "UNREGISTERED",
91
        U_altsyncram.outdata_aclr_a = "NONE",
92
        U_altsyncram.outdata_reg_b = "UNREGISTERED",
93
        U_altsyncram.indata_aclr_a = "NONE",
94
        U_altsyncram.wrcontrol_aclr_a = "NONE",
95
        U_altsyncram.address_aclr_a = "NONE",
96
        U_altsyncram.indata_reg_b = "CLOCK1",
97
        U_altsyncram.address_reg_b = "CLOCK1",
98
        U_altsyncram.wrcontrol_wraddress_reg_b = "CLOCK1",
99
        U_altsyncram.indata_aclr_b = "NONE",
100
        U_altsyncram.wrcontrol_aclr_b = "NONE",
101
        U_altsyncram.address_aclr_b = "NONE",
102
        U_altsyncram.outdata_aclr_b = "NONE",
103
        U_altsyncram.power_up_uninitialized = "FALSE";
104
 
105
`endif
106
 
107
endmodule
108
 
109
 

powered by: WebSVN 2.1.0

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