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

Subversion Repositories ram_wb

[/] [ram_wb/] [trunk/] [rtl/] [verilog/] [ram_wb_sc_dw.v] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 unneback
// True dual port RAM as found in ACTEL proasic3 devices
2
module ram_sc_dw (d_a, q_a, adr_a, we_a, q_b, adr_b, d_b, we_b, clk);
3 2 unneback
 
4 7 unneback
   parameter dat_width = `RAM_WB_DAT_WIDTH;
5
   parameter adr_width = `RAM_WB_ADR_WIDTH;
6
   parameter mem_size  = `RAM_WB_MEM_SIZE;
7 5 unneback
 
8
   input [dat_width-1:0]      d_a;
9
   input [adr_width-1:0]      adr_a;
10
   input [adr_width-1:0]      adr_b;
11
   input                      we_a;
12
   output reg [dat_width-1:0] q_b;
13
   input [dat_width-1:0]      d_b;
14
   output reg [dat_width-1:0] q_a;
15
   input                      we_b;
16
   input                      clk;
17
 
18 7 unneback
   reg [dat_width-1:0] ram [0:mem_size - 1] /*synthesis syn_ramstyle = "no_rw_check"*/;
19 5 unneback
 
20 2 unneback
   always @ (posedge clk)
21
     begin
22
        q_a <= ram[adr_a];
23
        if (we_a)
24 5 unneback
          ram[adr_a] <= d_a;
25 7 unneback
     end
26
 
27 2 unneback
   always @ (posedge clk)
28
     begin
29 5 unneback
        q_b <= ram[adr_b];
30 2 unneback
        if (we_b)
31
          ram[adr_b] <= d_b;
32
     end
33 5 unneback
 
34 2 unneback
endmodule

powered by: WebSVN 2.1.0

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