Prozeduraufruf

Sequentielle Anweisungen – Prozeduraufruf

ENTITY hello IS
PROCEDURE hello IS
BEGIN
ASSERT false REPORT "Hello world!"
SEVERITY note;
END hello ;
END hello;

ARCHITECTURE behave OF hello IS
BEGIN
PROCESS
BEGIN
hello;

WAIT;
END PROCESS;
END behave;
Hier wird eine Prozedur ohne Argumente innerhalb eines Prozesses aufgerufen.
ENTITY time_monitor IS
PROCEDURE reporting
(CONSTANT a:IN string:="Hello World!") IS
BEGIN
ASSERT false REPORT a
SEVERITY note ;
END reporting ;
END time_monitor;

ARCHITECTURE behave OF time_monitor IS
BEGIN
PROCESS
BEGIN
reporting;

WAIT FOR 10 ns;
reporting ("Die Zeit sit 10 ns");

WAIT FOR 10 ns;
reporting (a => "Die Zeit ist nun 20 ns");

WAIT;
END PROCESS;
END behave;
Hier wird eine Prozedur mit Argument verwendet. Die drei Aufrufe zeigen die drei möglichen Varianten vom Umgang mit Argumenten:
  • Der erste Aufruf verwendet den Default-String (''Hello World!''),
  • der zweite Aufruf gibt das Argument direkt an (positional association),
  • der dritte Aufruf schließlich verwendet eine named association.