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

Subversion Repositories aemb

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 195 sybreon
/* $Id: fasm_tparam.v,v 1.2 2008/06/05 20:53:36 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
 * TWO PORT ASYNCHRONOUS MEMORY BLOCK
22
 * Synthesis proven on:
23
 * - Xilinx ISE
24
 * - Altera Quartus (>=8.0)
25
 */
26
 
27
module fasm_tparam (/*AUTOARG*/
28
   // Outputs
29
   dat_o, xdat_o,
30
   // Inputs
31
   dat_i, adr_i, wre_i, stb_i, rst_i, clk_i, xdat_i, xadr_i, xwre_i,
32
   xstb_i, xrst_i, xclk_i
33
   ) ;
34
   parameter AW = 4;
35
   parameter DW = 6;
36
 
37
   // wishbone port a
38
   output [DW-1:0] dat_o; // DO
39
   input [DW-1:0]  dat_i; // DI - unused
40
   input [AW-1:0]  adr_i; // A
41
   input           wre_i; // WE - unused
42
   input           stb_i; // CS - unused
43
 
44
   input           rst_i,
45
                   clk_i;
46
 
47
   // wishbone port x
48
   output [DW-1:0] xdat_o; // DO - unused
49
   input [DW-1:0]  xdat_i; // DI
50
   input [AW-1:0]  xadr_i; // A
51
   input           xwre_i; // WE
52
   input           xstb_i; // CS
53
 
54
   input           xrst_i,
55
                   xclk_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          xdat_o = {(DW){1'bX}};
63
   assign          dat_o = lram[adr_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_tparam

powered by: WebSVN 2.1.0

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