#rs232
set_location_assignment PIN_D22 -to txd
- set_location_assignment PIN_D23 -to rxd
+ #set_location_assignment PIN_D23 -to rxd
set_global_assignment -name FMAX_REQUIREMENT "33.33 MHz" -section_id sys_clk
set_instance_assignment -name CLOCK_SETTINGS sys_clk -to sys_clk
-- btnA
-- TODO: pins
-- rs232
- rxd : in std_logic;
+ --rxd : in std_logic;
txd : out std_logic;
-- vga
vsync_n : out std_logic;
-- debouncing
signal sys_res_n_sync : std_logic;
-- rs232
- signal rx_new, rxd_sync : std_logic;
- signal rx_data : std_logic_vector (7 downto 0);
+ --signal rx_new, rxd_sync : std_logic;
+ --signal rx_data : std_logic_vector (7 downto 0);
signal tx_new, tx_done : std_logic;
signal tx_data : std_logic_vector (7 downto 0);
- signal txd_out : std_logic;
begin
-- vga/ipcore
textmode_vga_inst : entity work.textmode_vga(struct)
s_backspace => s_backspace,
-- parser
do_it => do_it,
- finished => finished
+ finished => finished,
+ -- test: uart_tx
+ tx_data => tx_data,
+ tx_new => tx_new
);
-- ps/2
);
-- synchronizer fuer rxd
- sync_rxd_inst : entity work.sync(beh)
- generic map (
- SYNC_STAGES => 2,
- RESET_VALUE => '1'
- )
- port map (
- sys_clk => sys_clk,
- sys_res_n => sys_res_n_sync,
- data_in => rxd,
- data_out => rxd_sync
- );
+ --sync_rxd_inst : entity work.sync(beh)
+ --generic map (
+ -- SYNC_STAGES => 2,
+ -- RESET_VALUE => '1'
+-- )
+ --port map (
+ -- sys_clk => sys_clk,
+ -- sys_res_n => sys_res_n_sync,
+ -- data_in => rxd,
+ -- data_out => rxd_sync
+ --);
-- rs232-rx
- rs232rx_inst : entity work.uart_rx(beh)
- generic map (
- CLK_FREQ => 33330000,
- BAUDRATE => 115200
- )
- port map (
- sys_clk => sys_clk,
- sys_res_n => sys_res_n_sync,
- rxd => rxd_sync,
- rx_data => rx_data,
- rx_new => rx_new
- );
+ --rs232rx_inst : entity work.uart_rx(beh)
+ --generic map (
+ -- CLK_FREQ => 33330000,
+ -- BAUDRATE => 115200
+ --)
+ --port map (
+ -- sys_clk => sys_clk,
+ -- sys_res_n => sys_res_n_sync,
+ -- rxd => rxd_sync,
+ -- rx_data => rx_data,
+ -- rx_new => rx_new
+ --);
-- rs232-tx
rs232tx_inst : entity work.uart_tx(beh)
port map (
sys_clk => sys_clk,
sys_res_n => sys_res_n,
- txd => txd_out,
+ txd => txd,
tx_data => tx_data,
tx_new => tx_new,
tx_done => tx_done
s_backspace : out std_logic;
-- Parser
do_it : out std_logic;
- finished : in std_logic
+ finished : in std_logic;
+ -- test: uart-tx
+ tx_data : out std_logic_vector(7 downto 0);
+ tx_new : out std_logic
);
end entity scanner;
signal s_take_int, s_take_next : std_logic;
signal s_backspace_int, s_backspace_next : std_logic;
signal do_it_int, do_it_next : std_logic;
+ signal tx_data_int, tx_data_next : std_logic_vector(7 downto 0);
+ signal tx_new_int, tx_new_next : std_logic;
begin
s_char <= s_char_int;
s_take <= s_take_int;
s_backspace <= s_backspace_int;
do_it <= do_it_int;
+ tx_new <= tx_new_int;
+ tx_data <= tx_data_int;
process(sys_clk, sys_res_n)
begin
s_take_int <= '0';
s_backspace_int <= '0';
do_it_int <= '0';
+ tx_new_int <= '0';
+ tx_data_int <= (others => '0');
elsif rising_edge(sys_clk) then
-- internal
state_int <= state_next;
s_take_int <= s_take_next;
s_backspace_int <= s_backspace_next;
do_it_int <= do_it_next;
+ tx_new_int <= tx_new_next;
+ tx_data_int <= tx_data_next;
end if;
end process;
-- next state
- process(state_int, new_data, data, finished, s_done)
+ process(state_int, new_data, data, finished, s_done, tx_data_int)
begin
state_next <= state_int;
+ tx_new_next <= '0';
+ tx_data_next <= tx_data_int;
case state_int is
when SIDLE =>
end if;
when SENTER =>
if finished = '1' then
+ tx_new_next <= '1';
+ tx_data_next <= x"42";
state_next <= SIDLE;
end if;
end case;