User guide

Digilab DIO2 Reference Manual Digilent, Inc.
www.digilentinc.com page 19 of 19
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
--
process(clk256)
begin
if clk256'event and clk256 = '1' then
count <= count + 1;
end if;
end process;
with count select
digit <= sseg_reg(7 downto 4) when "00",
sseg_reg(3 downto 0) when "01",
sseg_reg(15 downto 12) when "10",
sseg_reg(11 downto 8) when others;
with digit select
sseg1 <= "1001111" when "0001", --1
"0010010" when "0010", --2
"0000110" when "0011", --3
"1001100" when "0100", --4
"0100100" when "0101", --5
"0100000" when "0110", --6
"0001111" when "0111", --7
"0000000" when "1000", --8
"0000100" when "1001", --9
"0001000" when "1010", --A
"1100000" when "1011", --b
"0110001" when "1100", --C
"1000010" when "1101", --d
"0110000" when "1110", --E
"0111000" when "1111", --F
"0000001" when others; --0
with count select
ssegsel1 <= "1000" when "00",
"0100" when "01",
"0010" when "10",
"0001" when others;
--
-- Test mode
--
testentry <= switchs(0) and not switchs(7) and btns(14) and btns(7);
process (btns(0))
begin
if (btns(0)'event and btns(0) = '1') then testmode <= testentry;
end if;
end process;
leds <= not(leds_i) when testmode = '0' else not(btns(14)&btns(14 downto
1)&btns(1));
sseg <= sseg1 when testmode = '0' else switchs (6 downto 0);
ssegdp <= '1' when testmode = '0' else switchs(7);
ssegsel <= ssegsel1 when testmode = '0' else "1111";
end rtl;