Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Improve UART resource usage

Status
Not open for further replies.

promach

Advanced Member level 4
Joined
Feb 22, 2016
Messages
1,199
Helped
2
Reputation
4
Reaction score
5
Trophy points
1,318
Activity points
11,636
Could anyone think of ways to further reduce the resource usage compared to the original coding approach ?


Code VHDL - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
 
entity tiny_rs232_tx is
    Port ( clk         : in  STD_LOGIC;
       bit_tick    : in  STD_LOGIC;
       data        : in  STD_LOGIC_VECTOR(7 downto 0);
       data_enable : in  STD_LOGIC;
       tx          : out STD_LOGIC := '1';
       busy        : out STD_LOGIC );
end tiny_rs232_tx;
 
architecture Behavioral of tiny_rs232_tx is
signal shift_reg  : std_logic_vector(9 downto 0) := (others => '1');
signal i_busy     : std_logic;
 
begin
    busy <= i_busy;
    with shift_reg select i_busy <= '0' when "0000000000", '1' when others;
 
clk_proc: process(clk)
begin
    if rising_edge(clk) then
        if i_busy = '0' and data_enable = '1' then
            shift_reg <= '1' & data & '0';
        end if;             
 
        if bit_tick = '1' then
            if i_busy = '1' then
                tx <= shift_reg(0);
                shift_reg <= '0' & shift_reg(9 downto 1);
            end if;
        end if;
    end if;
end process;
end Behavioral;



Reference:
Reference link from StackExchange
**broken link removed**
 

That's pretty sparse as is. About the only thing I see is that TX is a register. If you take TX out of the clocked process, you could eliminate one register.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top