1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | -- -- VHDL을 이용한 FPGA 설계 -- -- 3장. Section08. '1' 개수 카운터 -- library ieee; use ieee.std_logic_1164.all; entity OneCounter is port ( d : in std_logic_vector (7 downto 0); seg : out std_logic_vector (6 downto 0) ); end OneCounter; architecture arc of OneCounter is -- convert integer value to drive 7-segment -- function toSeg( in_value : in integer range 0 to 15 ) return std_logic_vector is begin case in_value is when 0 => return "1000000"; when 1 => return "1111001"; when 2 => return "0100100"; when 3 => return "0110000"; when 4 => return "0011001"; when 5 => return "0010010"; when 6 => return "0000010"; when 7 => return "1011000"; when 8 => return "0000000"; when 9 => return "0011000"; when 10 => return "0001000"; when 11 => return "0000011"; when 12 => return "0100111"; when 13 => return "0100001"; when 14 => return "0000110"; when 15 => return "0001110"; when others => return "1111111"; end case; end toSeg; begin process (d) variable oneCount : integer; begin oneCount := 0; for i in d'range loop if d(i) = '1' then oneCount := oneCount + 1; end if; end loop; seg <= toSeg(oneCount); end process; end arc; |
'book > VHDL을 이용한 FPGA 디지털 설계' 카테고리의 다른 글
n비트 가산/감산기 vhdl 설계 (0) | 2014.06.25 |
---|---|
lab06. 수의 정렬회로 설계 (0) | 2014.06.25 |
7-segment decoder (0) | 2014.06.05 |
xor을 이용한 전감산기 설계 (0) | 2014.06.04 |
xor을 이용한 전가산기 설계 (0) | 2014.06.04 |