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

Subversion Repositories z80control

[/] [z80control/] [trunk/] [DE1/] [rtl/] [VHDL/] [uart/] [top_uart.vhd] - Blame information for rev 12

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 12 tylerapohl
-------------------------------------------------------------------------------------------------
2
 
3
-------------------------------------------------------------------------------------------------
4
 
5
library IEEE;
6
use IEEE.std_logic_1164.all;
7
use IEEE.std_logic_arith.all;
8
use IEEE.std_logic_unsigned.all;
9
 
10
entity  TOP_UART is
11
        port(
12
 
13
    -- Clocks
14
    CLOCK_27,                                      -- 27 MHz
15
    CLOCK_50,                                      -- 50 MHz
16
    EXT_CLOCK : in std_logic;                      -- External Clock
17
 
18
    -- Buttons and switches
19
    KEY : in std_logic_vector(3 downto 0);         -- Push buttons
20
    SW : in std_logic_vector(9 downto 0);          -- Switches
21
 
22
    -- LED displays
23
    HEX0, HEX1, HEX2, HEX3                         -- 7-segment displays
24
                        : out std_logic_vector(6 downto 0);
25
    LEDG : out std_logic_vector(7 downto 0);       -- Green LEDs
26
    LEDR : out std_logic_vector(9 downto 0);       -- Red LEDs
27
 
28
    -- RS-232 interface
29
    UART_TXD : out std_logic;                      -- UART transmitter   
30
    UART_RXD : in std_logic;                       -- UART receiver
31
 
32
    -- IRDA interface
33
 
34
    -- IRDA_TXD : out std_logic;                      -- IRDA Transmitter
35
    IRDA_RXD : in std_logic;                       -- IRDA Receiver
36
 
37
    -- SDRAM
38
    DRAM_DQ : inout std_logic_vector(15 downto 0); -- Data Bus
39
    DRAM_ADDR : out std_logic_vector(11 downto 0); -- Address Bus    
40
    DRAM_LDQM,                                     -- Low-byte Data Mask 
41
    DRAM_UDQM,                                     -- High-byte Data Mask
42
    DRAM_WE_N,                                     -- Write Enable
43
    DRAM_CAS_N,                                    -- Column Address Strobe
44
    DRAM_RAS_N,                                    -- Row Address Strobe
45
    DRAM_CS_N,                                     -- Chip Select
46
    DRAM_BA_0,                                     -- Bank Address 0
47
    DRAM_BA_1,                                     -- Bank Address 0
48
    DRAM_CLK,                                      -- Clock
49
    DRAM_CKE : out std_logic;                      -- Clock Enable
50
 
51
    -- FLASH
52
    FL_DQ : inout std_logic_vector(7 downto 0);      -- Data bus
53
    FL_ADDR : out std_logic_vector(21 downto 0);     -- Address bus
54
    FL_WE_N,                                         -- Write Enable
55
    FL_RST_N,                                        -- Reset
56
    FL_OE_N,                                         -- Output Enable
57
    FL_CE_N : out std_logic;                         -- Chip Enable
58
 
59
    -- SRAM
60
    SRAM_DQ : inout std_logic_vector(15 downto 0); -- Data bus 16 Bits
61
    SRAM_ADDR : out std_logic_vector(17 downto 0); -- Address bus 18 Bits
62
    SRAM_UB_N,                                     -- High-byte Data Mask 
63
    SRAM_LB_N,                                     -- Low-byte Data Mask 
64
    SRAM_WE_N,                                     -- Write Enable
65
    SRAM_CE_N,                                     -- Chip Enable
66
    SRAM_OE_N : out std_logic;                     -- Output Enable
67
 
68
    -- SD card interface
69
    SD_DAT : in std_logic;      -- SD Card Data      SD pin 7 "DAT 0/DataOut"
70
    SD_DAT3 : out std_logic;    -- SD Card Data 3    SD pin 1 "DAT 3/nCS"
71
    SD_CMD : out std_logic;     -- SD Card Command   SD pin 2 "CMD/DataIn"
72
    SD_CLK : out std_logic;     -- SD Card Clock     SD pin 5 "CLK"
73
 
74
    -- USB JTAG link
75
    TDI,                        -- CPLD -> FPGA (data in)
76
    TCK,                        -- CPLD -> FPGA (clk)
77
    TCS : in std_logic;         -- CPLD -> FPGA (CS)
78
    TDO : out std_logic;        -- FPGA -> CPLD (data out)
79
 
80
    -- I2C bus
81
    I2C_SDAT : inout std_logic; -- I2C Data
82
    I2C_SCLK : out std_logic;   -- I2C Clock
83
 
84
    -- PS/2 port
85
    PS2_DAT,                    -- Data
86
    PS2_CLK : inout std_logic;     -- Clock
87
 
88
    -- VGA output
89
    VGA_HS,                                             -- H_SYNC
90
    VGA_VS : out std_logic;                             -- SYNC
91
    VGA_R,                                              -- Red[3:0]
92
    VGA_G,                                              -- Green[3:0]
93
    VGA_B : out std_logic_vector(3 downto 0);           -- Blue[3:0]
94
 
95
    -- Audio CODEC
96
    AUD_ADCLRCK : inout std_logic;                      -- ADC LR Clock
97
    AUD_ADCDAT : in std_logic;                          -- ADC Data
98
    AUD_DACLRCK : inout std_logic;                      -- DAC LR Clock
99
    AUD_DACDAT : out std_logic;                         -- DAC Data
100
    AUD_BCLK : inout std_logic;                         -- Bit-Stream Clock
101
    AUD_XCK : out std_logic;                            -- Chip Clock
102
 
103
    -- General-purpose I/O
104
    GPIO_0,                                      -- GPIO Connection 0
105
    GPIO_1 : inout std_logic_vector(35 downto 0) -- GPIO Connection 1    
106
);
107
end TOP_UART;
108
 
109
architecture rtl of TOP_UART is
110
 
111
        component miniUART
112
        port (
113
                SysClk   : in  Std_Logic;  -- System Clock
114
                Reset    : in  Std_Logic;  -- Reset input
115
                CS_N     : in  Std_Logic;
116
                RD_N     : in  Std_Logic;
117
                WR_N     : in  Std_Logic;
118
                RxD      : in  Std_Logic;
119
                TxD      : out Std_Logic;
120
                IntRx_N  : out Std_Logic;  -- Receive interrupt
121
                IntTx_N  : out Std_Logic;  -- Transmit interrupt
122
                Addr     : in  Std_Logic_Vector(1 downto 0); -- 
123
                DataIn   : in  Std_Logic_Vector(7 downto 0); -- 
124
                DataOut  : out Std_Logic_Vector(7 downto 0)); --     
125
        end component;
126
 
127
begin
128
 
129
        U1 : miniUART PORT MAP (
130
                SysClk   => CLOCK_50,           --: in  Std_Logic;  -- System Clock
131
                Reset    => KEY(0),              --: in  Std_Logic;  -- Reset input
132
                CS_N     => SW(0),                       --: in  Std_Logic;
133
                RD_N     => SW(1),                      --: in  Std_Logic;
134
                WR_N     => SW(2),                      --: in  Std_Logic;
135
                RxD      => UART_RXD,           --: in  Std_Logic;
136
                TxD      => UART_TXD,           --: out Std_Logic;
137
                IntRx_N  => LEDG(0),             --: out Std_Logic;  -- Receive interrupt
138
                IntTx_N  => LEDG(1),            --: out Std_Logic;  -- Transmit interrupt
139
                Addr     => SW(8 downto 7), --: in  Std_Logic_Vector(1 downto 0); -- 
140
                DataIn   => x"69",                      --: in  Std_Logic_Vector(7 downto 0); -- 
141
                DataOut  => LEDR(7 downto 0)--: out Std_Logic_Vector(7 downto 0)); --                            
142
                );
143
 
144
        --
145
        SRAM_DQ(15 downto 8) <= (others => 'Z');
146
        SRAM_ADDR(17 downto 16) <= "00";
147
        SRAM_UB_N <= '1';
148
        SRAM_LB_N <= '0';
149
        SRAM_CE_N <= '0';
150
        --
151
        UART_TXD <= 'Z';
152
        DRAM_ADDR <= (others => '0');
153
        DRAM_LDQM <= '0';
154
        DRAM_UDQM <= '0';
155
        DRAM_WE_N <= '1';
156
        DRAM_CAS_N <= '1';
157
        DRAM_RAS_N <= '1';
158
        DRAM_CS_N <= '1';
159
        DRAM_BA_0 <= '0';
160
        DRAM_BA_1 <= '0';
161
        DRAM_CLK <= '0';
162
        DRAM_CKE <= '0';
163
        FL_ADDR <= (others => '0');
164
        FL_WE_N <= '1';
165
        FL_RST_N <= '0';
166
        FL_OE_N <= '1';
167
        FL_CE_N <= '1';
168
        TDO <= '0';
169
        I2C_SCLK <= '0';
170
        AUD_DACDAT <= '0';
171
        AUD_XCK <= '0';
172
        -- Set all bidirectional ports to tri-state
173
        DRAM_DQ     <= (others => 'Z');
174
        FL_DQ       <= (others => 'Z');
175
        I2C_SDAT    <= 'Z';
176
        AUD_ADCLRCK <= 'Z';
177
        AUD_DACLRCK <= 'Z';
178
        AUD_BCLK    <= 'Z';
179
        GPIO_0 <= (others => 'Z');
180
        GPIO_1 <= (others => 'Z');
181
end;

powered by: WebSVN 2.1.0

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