Guten Abend
Ich arbeitet zur Zeit an einem kleinen VHDL-Projekt, leider bin ich im
Zusammenhang mit Funktionen auf ein Problem gestossen.
Die grobe Struktur meines Codes:
1 | LIBRARY IEEE;
|
2 | USE ieee.std_logic_1164.all;
|
3 | USE ieee.std_logic_unsigned.all;
|
4 | USE work.DefinitionsPKG.all;
|
5 | ENTITY Processor is PORT (
|
6 | ....);
|
7 | END Processor;
|
8 |
|
9 | ARCHITECTURE ProcessorARCH OF Processor IS
|
10 | ...
|
11 | END ProcessorARCH;
|
12 |
|
13 | PACKAGE parity IS
|
14 | FUNCTION parity_odd return std_logic; -- *
|
15 | END parity;
|
16 | --- body
|
17 | PACKAGE BODY parity IS
|
18 | FUNCTION parity_odd return std_logic IS
|
19 | -- return variable
|
20 | signal ret: std_logic:='0';
|
21 | BEGIN
|
22 | RETURN ret;
|
23 | END parity_odd;
|
24 | END parity;
|
In der mit einem * markierten Zeile tritt der erste Compiler-Error auf.
Error: CSVHDL0002: MICRO2.VHD: (line 379): syntax error, unexpected
IDENTIFIER, expecting TYPE_NAME or LIBRARY_NAME or PACKAGE_NAME
Ist es tatsächlich nicht erlaubt std_logic als Rückgabetyp für eine
Funktion zu verwenden?
Oder was mache ich falsch?
Vielen Dank für Eure Hilfe.
Gruss
Karsten