58 lines
1.3 KiB
VHDL
58 lines
1.3 KiB
VHDL
|
-- 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;
|