library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; library work; use work.reg32.all; use work.task.all; entity task_rand is port ( clk : in std_logic; reset : in std_logic; address : in std_logic_vector( 3 downto 0 ); read : in std_logic; readdata : out std_logic_vector( 31 downto 0 ); write : in std_logic; writedata : in std_logic_vector( 31 downto 0 ); signal_write : out std_logic; signal_writedata : out std_logic_vector( 31 downto 0 ) ); end entity task_rand; architecture struct of task_rand is signal task_start : std_logic; signal task_state : work.task.State := work.task.TASK_IDLE; signal task_config : work.reg32.RegArray( 0 to 2 ); begin u_control: entity work.hardware_task_control port map ( clk => clk, reset => reset, address => address, read => read, readdata => readdata, write => write, writedata => writedata, task_start => task_start, task_state => task_state, task_config => task_config ); u_rand: entity work.rand port map ( clk => clk, reset => reset, task_start => task_start, task_state => task_state, seed => task_config( 0 ), signal_write => signal_write, signal_writedata => signal_writedata ); end architecture struct;