Altera_Forum
Honored Contributor
17 years agoUsing package in VHDL
Hi,
I am wondering if anybody could give me any hints how get this work. I write a function in a package and try to use it. The function is 7 segment decoder which gets in decimal number. --------------------------------------------------------------------- PACKAGE SevenSegmentDecoding IS Type SevenSegment is array (7 downto 1) of bit; signal Seven_Segment : SevenSegment; FUNCTION Integer2SevenSegment (i: IN INTEGER RANGE 0 to 15) RETURN SevenSegment; END PACKAGE SevenSegmentDecoding; PACKAGE BODY SevenSegmentDecoding IS FUNCTION Integer2SevenSegment (i: IN INTEGER RANGE 0 to 15) RETURN SevenSegment is begin CASE i IS WHEN 0 => Seven_Segment <= "0000001"; WHEN 1 => Seven_Segment <= "1001111"; WHEN 2 => Seven_Segment <= "0010010"; WHEN 3 => Seven_Segment <= "0000110"; WHEN 4 => Seven_Segment <= "1001100"; WHEN 5 => Seven_Segment <= "0100100"; WHEN 6 => Seven_Segment <= "0100000"; WHEN 7 => Seven_Segment <= "0001111"; WHEN 8 => Seven_Segment <= "0000000"; WHEN 9 => Seven_Segment <= "0001100"; WHEN 10=> Seven_Segment <= "1100000"; WHEN 11=> Seven_Segment <= "0110001"; WHEN 12=> Seven_Segment <= "1000010"; WHEN 13=> Seven_Segment <= "0110000"; WHEN 14=> Seven_Segment <= "0110000"; WHEN 15=> Seven_Segment <= "0111000"; END CASE; END Integer2SevenSegment; END SevenSegmentDecoding; LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; use work.SevenSegmentDecoding.all; ENTITY sjuseg IS PORT ( input : IN INTEGER RANGE 0 to 15; output : OUT SevenSegment ); END sjuseg; ARCHITECTURE behave OF sjuseg IS BEGIN input<=4; output<=Integer2SevenSegment(input); END behave;