Line 79... |
Line 79... |
fifo_push : in std_logic; -- push data in exponent fifo
|
fifo_push : in std_logic; -- push data in exponent fifo
|
fifo_full : out std_logic; -- high if fifo is full
|
fifo_full : out std_logic; -- high if fifo is full
|
fifo_nopush : out std_logic; -- high if error during push
|
fifo_nopush : out std_logic; -- high if error during push
|
-- control signals
|
-- control signals
|
start : in std_logic; -- start multiplication/exponentiation
|
start : in std_logic; -- start multiplication/exponentiation
|
run_auto : in std_logic; -- single multiplication if low, exponentiation if high
|
exp_m : in std_logic; -- single multiplication if low, exponentiation if high
|
ready : out std_logic; -- calculations done
|
ready : out std_logic; -- calculations done
|
x_sel_single : in std_logic_vector (1 downto 0); -- single multiplication x operand selection
|
x_sel_single : in std_logic_vector (1 downto 0); -- single multiplication x operand selection
|
y_sel_single : in std_logic_vector (1 downto 0); -- single multiplication y operand selection
|
y_sel_single : in std_logic_vector (1 downto 0); -- single multiplication y operand selection
|
dest_op_single : in std_logic_vector (1 downto 0); -- result destination operand selection
|
dest_op_single : in std_logic_vector (1 downto 0); -- result destination operand selection
|
p_sel : in std_logic_vector (1 downto 0); -- pipeline part selection
|
p_sel : in std_logic_vector (1 downto 0); -- pipeline part selection
|
Line 151... |
Line 151... |
result_dest_op => result_dest_op,
|
result_dest_op => result_dest_op,
|
collision => collision,
|
collision => collision,
|
clk => clk
|
clk => clk
|
);
|
);
|
|
|
result_dest_op <= dest_op_single when run_auto = '0' else "11"; -- in autorun mode we always store the result in operand3
|
result_dest_op <= dest_op_single when exp_m = '0' else "11"; -- in autorun mode we always store the result in operand3
|
|
|
-- A fifo for auto-run operand selection
|
-- A fifo for auto-run operand selection
|
the_exponent_fifo : fifo_primitive
|
the_exponent_fifo : fifo_primitive
|
port map(
|
port map(
|
clk => clk,
|
clk => clk,
|
Line 176... |
Line 176... |
clk => clk,
|
clk => clk,
|
reset => reset,
|
reset => reset,
|
start => start,
|
start => start,
|
x_sel_single => x_sel_single,
|
x_sel_single => x_sel_single,
|
y_sel_single => y_sel_single,
|
y_sel_single => y_sel_single,
|
run_auto => run_auto,
|
run_auto => exp_m,
|
op_buffer_empty => fifo_empty,
|
op_buffer_empty => fifo_empty,
|
op_sel_buffer => fifo_dout,
|
op_sel_buffer => fifo_dout,
|
read_buffer => fifo_pop,
|
read_buffer => fifo_pop,
|
done => ready,
|
done => ready,
|
calc_time => calc_time,
|
calc_time => calc_time,
|