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

Subversion Repositories aemb

[/] [aemb/] [trunk/] [lib/] [fasm/] [fasm_dparam.v] - Blame information for rev 195

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 195 sybreon
/* $Id: fasm_dparam.v,v 1.2 2008/06/05 20:53:16 sybreon Exp $
2
**
3
** FASM MEMORY LIBRARY
4
** Copyright (C) 2004-2009 Shawn Tan <shawn.tan@aeste.net>
5
** All rights reserved.
6
**
7
** FASM is free software: you can redistribute it and/or modify it
8
** under the terms of the GNU Lesser General Public License as
9
** published by the Free Software Foundation, either version 3 of the
10
** License, or (at your option) any later version.
11
**
12
** FASM is distributed in the hope that it will be useful, but WITHOUT
13
** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14
** or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
15
** Public License for more details.
16
**
17
** You should have received a copy of the GNU Lesser General Public
18
** License along with FASM. If not, see <http:**www.gnu.org/licenses/>.
19
*/
20
/*
21
 * DUAL PORT ASYNCHRONOUS MEMORY BLOCK
22
 * Synthesis proven on:
23
 * - Xilinx ISE
24
 * - Altera Quartus (>=8.0)
25
 */
26
 
27
module fasm_dparam (/*AUTOARG*/
28
   // Outputs
29
   dat_o, xdat_o,
30
   // Inputs
31
   dat_i, adr_i, wre_i, stb_i, clk_i, rst_i, xdat_i, xadr_i, xwre_i,
32
   xstb_i, xclk_i, xrst_i
33
   ) ;
34
   parameter AW = 5; // 32
35
   parameter DW = 2; // x2
36
 
37
   // PORT A - READ-ONLY
38
   output [DW-1:0] dat_o;
39
   input [DW-1:0]  dat_i; // ignored
40
   input [AW-1:0]  adr_i;
41
   input           wre_i; // ignored
42
   input           stb_i; // ignored
43
 
44
   input           clk_i,
45
                   rst_i;
46
 
47
   // PORT X - READ/WRITE
48
   output [DW-1:0] xdat_o;
49
   input [DW-1:0]  xdat_i;
50
   input [AW-1:0]  xadr_i;
51
   input           xwre_i;
52
   input           xstb_i; // ignored
53
 
54
   input           xclk_i,
55
                   xrst_i;
56
 
57
   reg [DW-1:0]    lram [(1<<AW)-1:0];
58
 
59
   always @(posedge xclk_i)
60
     if (xwre_i) lram[xadr_i] <= #1 xdat_i;
61
 
62
   assign          dat_o = lram[adr_i];
63
   assign          xdat_o = lram[xadr_i];
64
 
65
   // ### SIMULATION ONLY ###
66
   // synopsys translate_off
67
   integer i;
68
   initial begin
69
      for (i=0; i<(1<<AW); i=i+1) begin
70
         lram[i] <= $random;
71
      end
72
   end
73
   // synopsys translate_on
74
 
75
endmodule // fasm_dparam

powered by: WebSVN 2.1.0

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