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

Subversion Repositories c16

[/] [c16/] [trunk/] [vhdl/] [uart._baudgen.vhd] - Diff between revs 2 and 9

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 9
Line 8... Line 8...
--library UNISIM;
--library UNISIM;
--use UNISIM.VComponents.all;
--use UNISIM.VComponents.all;
 
 
entity uart_baudgen is
entity uart_baudgen is
        PORT(   CLK_I     : in  std_logic;
        PORT(   CLK_I     : in  std_logic;
                        T2        : in  std_logic;
                        RST_I     : in  std_logic;
                        CLR       : in  std_logic;
 
 
 
                        RD        : in  std_logic;
                        RD        : in  std_logic;
                        WR        : in  std_logic;
                        WR        : in  std_logic;
 
 
                        TX_DATA   : in  std_logic_vector(7 downto 0);
                        TX_DATA   : in  std_logic_vector(7 downto 0);
Line 27... Line 26...
 
 
architecture Behavioral of uart_baudgen is
architecture Behavioral of uart_baudgen is
 
 
        COMPONENT baudgen
        COMPONENT baudgen
        Generic(bg_clock_freq : integer; bg_baud_rate : integer);
        Generic(bg_clock_freq : integer; bg_baud_rate : integer);
        PORT(
        PORT(   CLK_I : IN std_logic;
                CLK_I : IN std_logic;
                        RST_I : IN std_logic;
                CLR   : IN std_logic;
 
                CE_16 : OUT std_logic
                CE_16 : OUT std_logic
                );
                );
        END COMPONENT;
        END COMPONENT;
 
 
        COMPONENT uart
        COMPONENT uart
        PORT(   CLK_I     : in std_logic;
        PORT(   CLK_I     : in std_logic;
                        CLR       : in std_logic;
                        RST_I     : in std_logic;
                        CE_16     : in std_logic;
                        CE_16     : in std_logic;
 
 
                        TX_DATA   : in std_logic_vector(7 downto 0);
                        TX_DATA   : in std_logic_vector(7 downto 0);
                        TX_FLAG   : in  std_logic;
                        TX_FLAG   : in  std_logic;
                        TX_SEROUT : out std_logic;
                        TX_SEROUT : out std_logic;
Line 67... Line 65...
 
 
        baud: baudgen
        baud: baudgen
        GENERIC MAP(bg_clock_freq => 40000000, bg_baud_rate => 115200)
        GENERIC MAP(bg_clock_freq => 40000000, bg_baud_rate => 115200)
        PORT MAP(
        PORT MAP(
                CLK_I => CLK_I,
                CLK_I => CLK_I,
                CLR   => CLR,
                RST_I => RST_I,
                CE_16 => CE_16
                CE_16 => CE_16
        );
        );
 
 
        urt: uart
        urt: uart
        PORT MAP(       CLK_I     => CLK_I,
        PORT MAP(       CLK_I     => CLK_I,
                                CLR       => CLR,
                                RST_I     => RST_I,
                                CE_16     => CE_16,
                                CE_16     => CE_16,
                                TX_DATA   => LTX_DATA,
                                TX_DATA   => LTX_DATA,
                                TX_FLAG   => TX_FLAG,
                                TX_FLAG   => TX_FLAG,
                                TX_SEROUT => TX_SEROUT,
                                TX_SEROUT => TX_SEROUT,
                                TX_FLAGQ  => TX_FLAGQ,
                                TX_FLAGQ  => TX_FLAGQ,
Line 87... Line 85...
                        );
                        );
 
 
        process(CLK_I)
        process(CLK_I)
        begin
        begin
                if (rising_edge(CLK_I)) then
                if (rising_edge(CLK_I)) then
                        if (T2 = '1') then
                        if (RST_I = '1') then
                                if (CLR = '1') then
 
                                                TX_FLAG <= '0';
                                                TX_FLAG <= '0';
                                                LTX_DATA <= X"33";
                                                LTX_DATA <= X"33";
                                else
                                else
                                        if (RD = '1') then                      -- read Rx data
                                        if (RD = '1') then                      -- read Rx data
                                                LRX_READY    <= '0';
                                                LRX_READY    <= '0';
Line 108... Line 105...
                                        end if;
                                        end if;
 
 
                                        RX_OLD_FLAG <= RX_FLAG;
                                        RX_OLD_FLAG <= RX_FLAG;
                                end if;
                                end if;
                        end if;
                        end if;
                end if;
 
        end process;
        end process;
 
 
end Behavioral;
end Behavioral;
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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