Enum type as array range

Jul 14, 2004 2 Replies

Maybe I am being a little dense, but I can't find anything on this in my VHDL books and the LRM is pretty esoteric in this section.



I am writing some code to help me simplify simulation data display and I want to have some SLV constants in an array. These constants relate to defined states of a combination of signals and have names associated with them. To get the names to show up in the simulation, I want to use an enumerated type which then corresponds to the index of the constant array.



Can I directly use this enumerated type as the index? I am still a day or so from having some code to try. Am I barking up the wrong tree with this? Should I convert my enum variable to an int and use that as the array index?


subtype ALUSLV is SLV07; subtype ALUTyp is (AD, ADC, SU, SUC, CM, CMC, AN, LOR, LXR, SR, SC, AER);



type ALUstyles is array (ALUTyp) of ALUSLV := ( "00100XX", ...



Rick "rickman" Collins rick.collins@XYarius.com Ignore the reply address. To email me use the above address with the XY removed. Arius - A Signal Processing Solutions Company Specializing in DSP and FPGA design URL http://www.arius.com 4 King Ave 301-682-7772 Voice Frederick, MD 21701-3110 301-682-7666 FAX

yes

No, it's a good idea.

I see. Maybe like this:

------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; entity alu_test is end alu_test;

------------------------------------------------------------------------------- architecture sim of alu_test is subtype ALUSLV is std_logic_vector(7 downto 0); type ALUTyp is (AD, ADC, SU, SUC, CM, CMC, AN, LOR, LXR, SR, SC, AER); type ALUstyles is array (ALUTyp'left to ALUTyp'right) of ALUSLV; constant init : ALUstyles := (AD => x"42", ADC => x"ff", others => x"00"); begin

-- sim processes end architecture sim;

-- Mike Treseler

Thanks. Shortly ago, I got word back from a friend who had borrowed my one book that actually talked about this. But your example shows me I was mixing my type def with my constant declaration.

I am unusually tired tonight and am packing it in. I see I am making more errors than I am fixing :) I will hate to see what errors the simulator gives me when I try to compile tomorrow.

Rick "rickman" Collins rick.collins@XYarius.com Ignore the reply address. To email me use the above address with the XY removed. Arius - A Signal Processing Solutions Company Specializing in DSP and FPGA design URL http://www.arius.com 4 King Ave 301-682-7772 Voice Frederick, MD 21701-3110 301-682-7666 FAX

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required