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

Subversion Repositories uart16550

[/] [uart16550/] [tags/] [initial/] [verilog/] [UART_top.v] - Blame information for rev 106

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 gorban
// UART Wishbone-compatible core top level 
2
//
3
// Author: Jacob Gorban   (jacob.gorban@flextronicssemi.com)
4
// Company: Flextronics Semiconductor
5
//
6
// Releases:
7
//              1.1     First release
8
//
9
 
10
`include "timescale.v"
11
`include "UART_defines.v"
12
 
13
module UART_top (
14
        clk,
15
 
16
        // Wishbone signals
17
        wb_rst_i, wb_addr_i, wb_dat_i, wb_dat_o, wb_we_i, wb_stb_i, wb_cyc_i, wb_ack_o,
18
        int_o, // interrupt request
19
 
20
        // UART signals
21
        // serial input/output
22
        stx_o, srx_i,
23
 
24
        // modem signals
25
        rts_o, cts_i, dtr_o, dsr_i, ri_i, dcd_i
26
 
27
        );
28
 
29
 
30
input           clk;
31
 
32
// WISHBONE interface
33
input           wb_rst_i;
34
input   [`ADDR_WIDTH-1:0]        wb_addr_i;
35
input   [7:0]    wb_dat_i;
36
output  [7:0]    wb_dat_o;
37
input           wb_we_i;
38
input           wb_stb_i;
39
input           wb_cyc_i;
40
output          wb_ack_o;
41
output          int_o;
42
 
43
// UART signals
44
input           srx_i;
45
output          stx_o;
46
output          rts_o;
47
input           cts_i;
48
output          dtr_o;
49
input           dsr_i;
50
input           ri_i;
51
input           dcd_i;
52
 
53
wire            stx_o;
54
wire            rts_o;
55
wire            dtr_o;
56
 
57
wire    [`ADDR_WIDTH-1:0]        wb_addr_i;
58
wire    [7:0]    wb_dat_i;
59
wire    [7:0]    wb_dat_o;
60
 
61
wire            we_o;   // Write enable for registers
62
 
63
wire    [3:0]    ier;
64
wire    [7:0]    iir;
65
wire    [3:0]    fcr;  /// bits 7,6,2,1 of fcr. Other bits are ignored
66
wire    [4:0]    mcr;
67
wire    [7:0]    lcr;
68
wire    [7:0]    lsr;
69
wire    [7:0]    msr;
70
wire    [31:0]   dl;  // 32-bit divisor latch
71
 
72
wire            enable;
73
 
74
//
75
// MODULE INSTANCES
76
//
77
 
78
////  WISHBONE interface module
79
UART_wb         wb_interface(
80
                .clk(           clk             ),
81
                .wb_rst_i(      wb_rst_i        ),
82
//              .wb_dat_i(      wb_dat_i        ),
83
//              .wb_dat_o(      wb_dat_o        ),
84
                .wb_we_i(       wb_we_i         ),
85
                .wb_stb_i(      wb_stb_i        ),
86
                .wb_cyc_i(      wb_cyc_i        ),
87
                .wb_ack_o(      wb_ack_o        ),
88
//              .int_o(         int_o           ),
89
                .we_o(          we_o            )
90
                );
91
 
92
// Registers
93
UART_regs       regs(
94
                .clk(           clk             ),
95
                .wb_rst_i(      wb_rst_i        ),
96
                .wb_addr_i(     wb_addr_i       ),
97
                .wb_dat_i(      wb_dat_i        ),
98
                .wb_dat_o(      wb_dat_o        ),
99
                .wb_we_i(       we_o            ),
100
                .ier(           ier             ),
101
                .iir(           iir             ),
102
                .fcr(           fcr             ),
103
                .mcr(           mcr             ),
104
                .lcr(           lcr             ),
105
                .lsr(           lsr             ),
106
                .msr(           msr             ),
107
                .dl(            dl              ),
108
                .modem_inputs(  {cts_i, dsr_i,
109
                                 ri_i,  dcd_i}  ),
110
                .stx_o(         stx_o           ),
111
                .srx_i(         srx_i           ),
112
                .enable(        enable          ),
113
                .rts_o(         rts_o           ),
114
                .dtr_o(         dtr_o           )
115
                );
116
 
117
endmodule

powered by: WebSVN 2.1.0

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