library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity lab2 is
Port ( clk : in STD_LOGIC;
fc : in STD_LOGIC;
rst : in STD_LOGIC;
pb : inout STD_LOGIC_VECTOR (8 downto 0);
lb : inout STD_LOGIC_VECTOR (6 downto 0);
lbs : inout STD_LOGIC_VECTOR (5 downto 0));
end lab2;
architecture arch_lab2 of lab2 is
signal cnt : STD_LOGIC_VECTOR (4 downto 0);
signal zero : STD_LOGIC_VECTOR (5 downto 0);
signal lbs_check : STD_LOGIC;
begin
process(clk, rst) is
begin
if rst'EVENT and rst = '1' then
pb <= (others => 0) ;
lb <= (others => 0) ;
lbs <= (others => 0) ;
elsif (clk'EVENT and clk = '1') then
if fc = '1' then
cnt <= cnt + 1;
if zero = "000001" then
lbs_check <= '1';
end if
else
zero <= zero + '1';
-- fc = 0
if zero > '1' then
if lbs_check = '1' then
lbs <= lbs + '1';
lbs_check <= '0';
elsif (cnt > 2 and cnt < 5) then
pb <= pb + '1';
elsif (cnt > 6 and cnt < 13) then
lb <= lb + '1';
end if
zero <= (others => 0);
cnt <= (others => 0);
end if
end if
end process
end arch_lab2;