Line 4... |
Line 4... |
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-- File : sorter_ctrl.vhd
|
-- File : sorter_ctrl.vhd
|
-- Author : Wojciech M. Zabolotny <wzab@ise.pw.edu.pl>
|
-- Author : Wojciech M. Zabolotny <wzab@ise.pw.edu.pl>
|
-- Company :
|
-- Company :
|
-- Created : 2010-05-14
|
-- Created : 2010-05-14
|
-- Last update: 2018-03-11
|
-- Last update: 2018-03-12
|
-- Platform :
|
-- Platform :
|
-- Standard : VHDL'93
|
-- Standard : VHDL'93
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-- Description:
|
-- Description:
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
Line 304... |
Line 304... |
--end if;
|
--end if;
|
when others => null;
|
when others => null;
|
end case;
|
end case;
|
end process p1;
|
end process p1;
|
|
|
|
sort_cmp_lt_1: entity work.sort_cmp_lt
|
|
port map (
|
|
clk => clk,
|
|
rst_n => rst_n,
|
|
v1 => s_l_val_i,
|
|
v2 => s_up_in_val,
|
|
lt => res_sort_cmp_lt_l_up);
|
|
|
|
sort_cmp_lt_2: entity work.sort_cmp_lt
|
|
port map (
|
|
clk => clk,
|
|
rst_n => rst_n,
|
|
v1 => s_l_val_i,
|
|
v2 => s_r_val_i,
|
|
lt => res_sort_cmp_lt_l_r);
|
|
|
|
sort_cmp_lt_3: entity work.sort_cmp_lt
|
|
port map (
|
|
clk => clk,
|
|
rst_n => rst_n,
|
|
v1 => s_r_val_i,
|
|
v2 => s_up_in_val,
|
|
lt => res_sort_cmp_lt_r_up);
|
|
|
p2 : process (clk) is
|
p2 : process (clk) is
|
begin -- process p2
|
begin -- process p2
|
if clk'event and clk = '1' then -- rising clock edge
|
if clk'event and clk = '1' then -- rising clock edge
|
if rst_n = '0' then -- asynchronous reset (active low)
|
if rst_n = '0' then -- asynchronous reset (active low)
|
ctrl_state <= CTRL_RESET;
|
ctrl_state <= CTRL_RESET;
|
s_ready_out <= '0';
|
s_ready_out <= '0';
|
addr <= (others => '0');
|
addr <= (others => '0');
|
s_up_in_val <= DATA_REC_INIT_DATA;
|
s_up_in_val <= DATA_REC_INIT_DATA;
|
s_l_val <= DATA_REC_INIT_DATA;
|
s_l_val <= DATA_REC_INIT_DATA;
|
s_r_val <= DATA_REC_INIT_DATA;
|
s_r_val <= DATA_REC_INIT_DATA;
|
res_sort_cmp_lt_l_up <= false;
|
|
res_sort_cmp_lt_l_r <= false;
|
|
res_sort_cmp_lt_r_up <= false;
|
|
--update_out <= '0';
|
--update_out <= '0';
|
--addr_out <= (others => '0');
|
--addr_out <= (others => '0');
|
else
|
else
|
res_sort_cmp_lt_l_up <= sort_cmp_lt(s_l_val_i, s_up_in_val);
|
|
res_sort_cmp_lt_l_r <= sort_cmp_lt(s_l_val_i, s_r_val_i);
|
|
res_sort_cmp_lt_r_up <= sort_cmp_lt(s_r_val_i, s_up_in_val);
|
|
s_ready_out <= s_ready_out_i;
|
s_ready_out <= s_ready_out_i;
|
ctrl_state <= ctrl_state_next;
|
ctrl_state <= ctrl_state_next;
|
addr <= addr_i;
|
addr <= addr_i;
|
s_up_in_val <= s_up_in_val_i;
|
s_up_in_val <= s_up_in_val_i;
|
s_l_val <= s_l_val_i;
|
s_l_val <= s_l_val_i;
|