1818-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1919-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2020-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21- -- SOFTWARE.
21+ -- SOFTWARE.
22+ --
23+ -- Website: https://github.com/jakubcabal/uart_for_fpga
2224--------------------------------------------------------------------------------
2325
2426library IEEE;
@@ -30,15 +32,15 @@ end UART_TESTBENCH;
3032
3133architecture FULL of UART_TESTBENCH is
3234
33- signal CLK : std_logic := '0' ;
34- signal RST : std_logic := '0' ;
35- signal tx_uart : std_logic ;
36- signal rx_uart : std_logic := '1' ;
37- signal tx_valid : std_logic ;
38- signal tx_data : std_logic_vector (7 downto 0 );
39- signal rx_valid : std_logic ;
40- signal rx_ready : std_logic ;
41- signal rx_data : std_logic_vector (7 downto 0 );
35+ signal CLK : std_logic := '0' ;
36+ signal RST : std_logic := '0' ;
37+ signal tx_uart : std_logic ;
38+ signal rx_uart : std_logic := '1' ;
39+ signal data_vld : std_logic ;
40+ signal data_out : std_logic_vector (7 downto 0 );
41+ signal data_send : std_logic ;
42+ signal busy : std_logic ;
43+ signal data_in : std_logic_vector (7 downto 0 );
4244
4345 constant clk_period : time := 20 ns ;
4446 constant uart_period : time := 8696 ns ;
@@ -53,18 +55,18 @@ begin
5355 CLK_FREQ => 50e6 -- set system clock frequency in Hz, default is 50 MHz
5456 )
5557 port map (
56- CLK => CLK, -- system clock
57- RST => RST, -- high active synchronous reset
58- -- UART INTERFACE
59- TX_UART => tx_uart ,
60- RX_UART => rx_uart ,
58+ CLK => CLK, -- system clock
59+ RST => RST, -- high active synchronous reset
60+ -- UART RS232 INTERFACE
61+ TX_UART => TX_UART ,
62+ RX_UART => RX_UART ,
6163 -- USER TX INTERFACE
62- TX_DATA => tx_data ,
63- TX_VALID => tx_valid, -- when TX_VALID = 1, data on TX_DATA are valid
64+ DATA_OUT => data_out ,
65+ DATA_VLD => data_vld, -- when DATA_VLD = 1, data on DATA_OUT are valid
6466 -- USER RX INTERFACE
65- RX_DATA => rx_data ,
66- RX_VALID => rx_valid , -- when RX_VALID = 1, data on RX_DATA are valid
67- RX_READY => rx_ready -- when RX_READY = 1, you can set RX_VALID to 1
67+ DATA_IN => data_in ,
68+ DATA_SEND => data_send , -- when DATA_SEND = 1, data on DATA_IN will be transmit, DATA_SEND can set to 1 only when BUSY = 0
69+ BUSY => busy -- when BUSY = 1 transiever is busy , you must not set DATA_SEND to 1
6870 );
6971
7072 clk_process : process
@@ -101,19 +103,19 @@ begin
101103
102104 test_tx_uart : process
103105 begin
104- rx_valid <= '0' ;
106+ data_send <= '0' ;
105107 RST <= '1' ;
106108 wait for 100 ns ;
107109 RST <= '0' ;
108110
109111 wait until rising_edge (CLK);
110112
111- rx_valid <= '1' ;
112- rx_data <= data_value;
113+ data_send <= '1' ;
114+ data_in <= data_value;
113115
114116 wait until rising_edge (CLK);
115117
116- rx_valid <= '0' ;
118+ data_send <= '0' ;
117119
118120 wait until rising_edge (CLK);
119121
0 commit comments