-- std package
library ieee;
-use ieee.std_logic_1164.all;
-USE IEEE.numeric_std.ALL;
+USE IEEE.std_logic_1164.ALL;
+USE IEEE.std_logic_ARITH.ALL;
USE IEEE.std_logic_UNSIGNED.ALL;
package trb_net_std is
function get_bit_position (arg : std_logic_vector)
return integer;
+
+ function is_time_reached (timer : integer; time : integer; period : integer)
+ return std_logic;
end package trb_net_std;
return 0;
end get_bit_position;
-
+ function is_time_reached (timer : integer; time : integer; period : integer)
+ return std_logic is
+ variable i : integer range 0 to 1 := 0;
+ variable t : std_logic_vector(16 downto 0) := conv_std_logic_vector(timer,17);
+ begin
+ i := 0;
+ if period = 10 then
+ case time is
+ when 640000 => if t(16) = '1' then i := 1; end if;
+ when 80000 => if t(13) = '1' then i := 1; end if;
+ when 10000 => if t(10) = '1' then i := 1; end if;
+ when 1200 => if t(7) = '1' then i := 1; end if;
+ when others => if timer = time/period then i := 1; end if;
+ end case;
+ else
+ if timer = time/period then i := 1; end if;
+ end if;
+ if i = 1 then return '1'; else return '0'; end if;
+ end is_time_reached;
end package body trb_net_std;