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

Subversion Repositories rs232_interface

[/] [rs232_interface/] [trunk/] [uart_tb.vhd] - Blame information for rev 17

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 17 akram.mash
----------------------------------------------------------------------------------
2
-- Creation Date: 13:07:48 27/03/2011 
3
-- Module Name: RS232/UART Interface - Testbench
4
-- Used TAB of 4 Spaces
5
----------------------------------------------------------------------------------
6
library IEEE;
7
use IEEE.STD_LOGIC_1164.ALL;
8
use IEEE.STD_LOGIC_ARITH.ALL;
9
use IEEE.STD_LOGIC_UNSIGNED.ALL;
10
 
11
entity uart_tb is
12
end uart_tb;
13
 
14
architecture Behavioral of uart_tb is
15
 
16
        ----------------------------------------------
17
        -- Constants
18
        ----------------------------------------------
19
        constant MAIN_CLK_PER   :       time := 20 ns;          -- 50 MHz
20
        constant BAUD_RATE              :       integer := 9600;        -- Bits per Second
21
        constant RST_LVL                :       std_logic := '1';       -- Active Level of Reset
22
 
23
        ----------------------------------------------
24
        -- Signal Declaration
25
        ----------------------------------------------
26
        -- Clock and reset Signals
27
        signal clk_50m                                  :       std_logic := '0';
28
        signal rst                                              :       std_logic;
29
        -- Transceiver Interface
30
        signal data_from_transceiver    :       std_logic;
31
        signal data_to_transceiver              :       std_logic;
32
        -- Configuration signals
33
        signal par_en                                   :       std_logic;
34
        -- uPC Interface
35
        signal tx_req                                   :       std_logic;
36
        signal tx_end                                   :       std_logic;
37
        signal tx_data                                  :       std_logic_vector(7 downto 0);
38
        signal rx_ready                                 :       std_logic;
39
        signal rx_data                                  :       std_logic_vector(7 downto 0);
40
 
41
        -- Testbench Signals
42
        signal uart_clk                                 :       std_logic := '0';
43
begin
44
 
45
        ----------------------------------------------
46
        -- Components Instantiation
47
        ----------------------------------------------
48
        uut:entity work.uart
49
        generic map(
50
                CLK_FREQ        => MAIN_CLK,                            -- Main frequency (MHz)
51
                SER_FREQ        => BAUD_RATE                            -- Baud rate (bps)
52
        )
53
        port map(
54
                -- Control
55
                clk                     => clk_50m,                                     -- Main clock
56
                rst                     => rst,                                         -- Main reset
57
                -- External Interface
58
                rx                      => data_from_transceiver,       -- RS232 received serial data
59
                tx                      => data_to_transceiver,         -- RS232 transmitted serial data
60
                -- RS232/UART Configuration
61
                par_en          => par_en,                                      -- Parity bit enable
62
                -- uPC Interface
63
                tx_req          => tx_req,                                      -- Request SEND of data
64
                tx_end          => tx_end,                                      -- Data SENDED
65
                tx_data         => tx_data,                                     -- Data to transmit
66
                rx_ready        => rx_ready,                            -- Received data ready to uPC read
67
                rx_data         => rx_data                                      -- Received data 
68
        );
69
 
70
        ----------------------------------------------
71
        -- Main Signals Generation
72
        ----------------------------------------------
73
        -- Main Clock generation
74
        main_clock_generation:process
75
        begin
76
                wait for MAIN_CLK_PER/2;
77
                clk_50m         <= not clk_50m;
78
        end process;
79
 
80
        -- UART Clock generation
81
        uart_clock_generation:process
82
        begin
83
                wait for (MAIN_CLK_PER*5208)/2;
84
                uart_clk        <= not uart_clk;
85
        end process;
86
 
87
        -- Reset generation
88
        rst     <=      RST_LVL, not RST_LVL after MAIN_CLK_PER*5;
89
 
90
end Behavioral;
91
 

powered by: WebSVN 2.1.0

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