wk_sbs_hdl/hw/beh/hu.vhd

58 lines
1.3 KiB
VHDL
Raw Normal View History

-- hu
-- Update H using stream of weights
use work.pkg_sbs.all;
entity hu is
port (
clk, rstn : in bit;
cfg_hu : in bit_vector(BW_HU_CFG -1 downto 0); -- Config
ena_w : in bit; -- New weight
is_ini : in bit; -- First vector (get w and h when ena)
is_fst : in bit; -- Fist component in vector
ena_ho : out bit; -- Signal a valid ho value
wi : in real; -- stream of weights
hi : in real; -- stream of state
ho : out real); -- stream of states
end entity hu;
architecture rtlf of hu is
signal ctr_hu : bit_vector(BW_HU_CTR-1 downto 0);
signal loc_h : bit_vector(ADDR_H_MAX-1 downto 0);
signal eps : real;
begin -- architecture rtlf
i_hu_dp: entity work.hu_dp
port map (
clk => clk,
rstn => rstn,
eps => eps,
ctr_hu => ctr_hu,
loc_h => loc_h,
wi => wi,
hi => hi,
ho => ho);
i_hu_ctr: entity work.hu_ctr
port map (
clk => clk,
rstn => rstn,
eps => eps,
cfg_hu => cfg_hu,
loc_h => loc_h,
ena_w => ena_w,
is_ini => is_ini,
is_fst => is_fst,
ena_ho => ena_ho,
ctr_hu => ctr_hu);
end architecture rtlf;