Search code examples
compiler-errorssyntax-errorvhdlhdl

Error 10500 directed at alias declaration


The code I'm having trouble with spits a control word into several pieces so they can be used by their respective circuits.

When I attempt to compile this code, I get two 10500 errors for each alias line: "Near text "alias"; expecting "end", or "(" or an identifier, or a concurrent statement" "Near text "is"; expecting ";", or "generic".

I tried adding an "end;" and "end alias" after the alias declarations, but it still returned the same errors.

I also attempted adding "signal" in various parts of the declaration, but this also still resulted in the same error.

Origially I had converted the std_logic_vector to bit_vector before ths block, and the alias output were bit types instead of std_logic, but I changed it to std_logic thinking the type conversion was the problem.

--Splits control word into specific sections.
    Architecture split of t11214 is
            Begin
                Alias enable_input: std_logic is instruction(1);
                Alias enable_output: std_logic is instruction(2);
                Alias select_accumulator: std_logic is instruction(3);
                Alias select_operand: std_logic_vector(1 to 2) is instruction(4 to 5);
                Alias select_prcmp: std_logic_vector(1 to 2) is instruction(6 to 7);
                Alias select_prenot: std_logic_vector(1 to 2) is instruction(8 to 9);
                Alias select_function: std_logic_vector(1 to 2) is instruction(10 to 11);
                Alias select_rng: std_logic is instruction(12);
                Alias shift: std_logic_vector(1 to 4) is instruction(13 to 16);
    End architecture split;

Solution

  • The Alias is part of the declarations, so it must be before the Begin, thus like:

    Architecture split of t11214 is
      ...
      Alias enable_input: std_logic is instruction(1);
      ...
    Begin
      ...
    End architecture split;