Functions can be used for implementing frequently used algorithms in your code. It takes zero or more values and always returns a value.


You can only use If, Case or For, because the function has to run in one cycle.

If While and Wait are needed for the algorithm you will have to use SeqFunction


Function add_two (return INTEGER; value_in : INTEGER)
VARIABLE example_var : INTEGER;
example_var := value_in;
For(i IN 0 TO 1)
example_var := example_var + 1;
return example_var;

If you want to use the function with signal declarations, write the Function in AttributeDeclaration to keep the order of the declarations (first function and than signal)

Last updated on by Hendrik Mennen