Complete the code to define the UART transmitter entity name.
entity [1] is Port ( clk : in std_logic; tx_start : in std_logic; tx_data : in std_logic_vector(7 downto 0); tx_serial : out std_logic; tx_busy : out std_logic); end [1];
The entity name for the UART transmitter is uart_tx.
Complete the code to assign the serial output in the UART transmitter process.
process(clk) begin if rising_edge(clk) then if tx_start = '1' then tx_serial <= [1]; end if; end if; end process;
tx_data(7) instead of the least significant bit.The UART transmitter sends the least significant bit first, so tx_data(0) is assigned to tx_serial.
Fix the error in the UART receiver process sensitivity list.
process([1]) begin if rising_edge(clk) then -- UART receive logic end if; end process;
rx_serial to the sensitivity list causing unintended behavior.The process should be sensitive only to the clock signal clk for synchronous logic.
Fill both blanks to complete the UART transmitter state machine case statement.
case state is when [1] => if tx_start = '1' then state <= [2]; end if;
data_bits or stop_bit as the initial state.The transmitter starts in the idle state and moves to start_bit when transmission begins.
Fill all three blanks to complete the UART receiver data sampling condition.
if rx_serial = [1] and bit_count = [2] then data_reg([3]) <= rx_serial;
bit_count.The receiver samples the data bit when rx_serial is '0' (start bit), at bit count 7, and stores it in data_reg(bit_count).
