source: XOpenSparcT1/trunk/OC-UART/raminfr.v @ 6

Revision 6, 5.6 KB checked in by pntsvt00, 14 years ago (diff)

versione iniziale opensparc

Line 
1//////////////////////////////////////////////////////////////////////
2////                                                              ////
3////  raminfr.v                                                   ////
4////                                                              ////
5////                                                              ////
6////  This file is part of the "UART 16550 compatible" project    ////
7////  http://www.opencores.org/cores/uart16550/                   ////
8////                                                              ////
9////  Documentation related to this project:                      ////
10////  - http://www.opencores.org/cores/uart16550/                 ////
11////                                                              ////
12////  Projects compatibility:                                     ////
13////  - WISHBONE                                                  ////
14////  RS232 Protocol                                              ////
15////  16550D uart (mostly supported)                              ////
16////                                                              ////
17////  Overview (main Features):                                   ////
18////  Inferrable Distributed RAM for FIFOs                        ////
19////                                                              ////
20////  Known problems (limits):                                    ////
21////  None                .                                       ////
22////                                                              ////
23////  To Do:                                                      ////
24////  Nothing so far.                                             ////
25////                                                              ////
26////  Author(s):                                                  ////
27////      - gorban@opencores.org                                  ////
28////      - Jacob Gorban                                          ////
29////                                                              ////
30////  Created:        2002/07/22                                  ////
31////  Last Updated:   2002/07/22                                  ////
32////                  (See log for the revision history)          ////
33////                                                              ////
34////                                                              ////
35//////////////////////////////////////////////////////////////////////
36////                                                              ////
37//// Copyright (C) 2000, 2001 Authors                             ////
38////                                                              ////
39//// This source file may be used and distributed without         ////
40//// restriction provided that this copyright statement is not    ////
41//// removed from the file and that any derivative work contains  ////
42//// the original copyright notice and the associated disclaimer. ////
43////                                                              ////
44//// This source file is free software; you can redistribute it   ////
45//// and/or modify it under the terms of the GNU Lesser General   ////
46//// Public License as published by the Free Software Foundation; ////
47//// either version 2.1 of the License, or (at your option) any   ////
48//// later version.                                               ////
49////                                                              ////
50//// This source is distributed in the hope that it will be       ////
51//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
52//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
53//// PURPOSE.  See the GNU Lesser General Public License for more ////
54//// details.                                                     ////
55////                                                              ////
56//// You should have received a copy of the GNU Lesser General    ////
57//// Public License along with this source; if not, download it   ////
58//// from http://www.opencores.org/lgpl.shtml                     ////
59////                                                              ////
60//////////////////////////////////////////////////////////////////////
61//
62// CVS Revision History
63//
64// $Log: not supported by cvs2svn $
65// Revision 1.1  2002/07/22 23:02:23  gorban
66// Bug Fixes:
67//  * Possible loss of sync and bad reception of stop bit on slow baud rates fixed.
68//   Problem reported by Kenny.Tung.
69//  * Bad (or lack of ) loopback handling fixed. Reported by Cherry Withers.
70//
71// Improvements:
72//  * Made FIFO's as general inferrable memory where possible.
73//  So on FPGA they should be inferred as RAM (Distributed RAM on Xilinx).
74//  This saves about 1/3 of the Slice count and reduces P&R and synthesis times.
75//
76//  * Added optional baudrate output (baud_o).
77//  This is identical to BAUDOUT* signal on 16550 chip.
78//  It outputs 16xbit_clock_rate - the divided clock.
79//  It's disabled by default. Define UART_HAS_BAUDRATE_OUTPUT to use.
80//
81
82//Following is the Verilog code for a dual-port RAM with asynchronous read.
83module raminfr   
84        (clk, we, a, dpra, di, dpo); 
85
86parameter addr_width = 4;
87parameter data_width = 8;
88parameter depth = 16;
89
90input clk;   
91input we;   
92input  [addr_width-1:0] a;   
93input  [addr_width-1:0] dpra;   
94input  [data_width-1:0] di;   
95//output [data_width-1:0] spo;   
96output [data_width-1:0] dpo;   
97reg    [data_width-1:0] ram [depth-1:0]; 
98
99wire [data_width-1:0] dpo;
100wire  [data_width-1:0] di;   
101wire  [addr_width-1:0] a;   
102wire  [addr_width-1:0] dpra;   
103 
104  always @(posedge clk) begin   
105    if (we)   
106      ram[a] <= di;   
107  end   
108//  assign spo = ram[a];   
109  assign dpo = ram[dpra];   
110endmodule 
111
Note: See TracBrowser for help on using the repository browser.