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

Subversion Repositories versatile_fifo

[/] [versatile_fifo/] [trunk/] [rtl/] [verilog/] [versatile_fifo_dual_port_ram_sc_sw.v] - Blame information for rev 32

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 unneback
// true dual port RAM, sync
2
 
3
`ifdef ACTEL
4
        `define SYN /*synthesis syn_ramstyle = "no_rw_check"*/
5
`endif
6 12 unneback
module vfifo_dual_port_ram_sc_sw
7 4 unneback
  (
8
   d_a,
9
   adr_a,
10
   we_a,
11
   q_b,
12
   adr_b,
13
   clk
14
   );
15 18 unneback
   parameter DATA_WIDTH = 32;
16
   parameter ADDR_WIDTH = 8;
17 4 unneback
   input [(DATA_WIDTH-1):0]      d_a;
18
   input [(ADDR_WIDTH-1):0]       adr_a;
19
   input [(ADDR_WIDTH-1):0]       adr_b;
20
   input                         we_a;
21
   output [(DATA_WIDTH-1):0]      q_b;
22
   input                         clk;
23
   reg [(ADDR_WIDTH-1):0]         adr_b_reg;
24 32 marcus.erl
   reg [DATA_WIDTH-1:0] ram [(1<<ADDR_WIDTH)-1:0] `SYN;
25 4 unneback
   always @ (posedge clk)
26
   if (we_a)
27
     ram[adr_a] <= d_a;
28
   always @ (posedge clk)
29
   adr_b_reg <= adr_b;
30
   assign q_b = ram[adr_b_reg];
31
endmodule

powered by: WebSVN 2.1.0

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