0
0
VHDLprogramming~10 mins

Report statement for debug output in VHDL - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Report statement for debug output
Start Simulation
Execute VHDL Process
Encounter Report Statement
Display Message on Console
Continue Simulation or Stop if Severity is FAILURE
The report statement outputs a message during simulation for debugging, optionally stopping simulation on severe errors.
Execution Sample
VHDL
process
begin
  report "Starting process" severity note;
  wait for 10 ns;
  report "Process completed" severity warning;
  wait;
end process;
This code prints debug messages at different severity levels during simulation.
Execution Table
StepActionReport MessageSeveritySimulation Effect
1Start process executionSimulation runs
2Execute report statementStarting processnoteMessage printed, simulation continues
3Wait for 10 nsSimulation waits 10 ns
4Execute report statementProcess completedwarningMessage printed, simulation continues
5Wait indefinitelySimulation waits forever
6End of processProcess suspended, simulation continues
💡 Simulation continues unless severity is FAILURE or ERROR
Variable Tracker
VariableStartAfter Step 2After Step 4Final
Simulation Time (ns)001010
Last Report Message"""Starting process""Process completed""Process completed"
Last Severity""notewarningwarning
Key Moments - 2 Insights
Why does the simulation not stop after the report statement with severity warning?
Because only severity levels ERROR or FAILURE stop simulation; WARNING and NOTE just print messages and continue, as shown in steps 2 and 4.
What happens if severity is FAILURE in a report statement?
Simulation stops immediately after printing the message, unlike the WARNING or NOTE severities seen in the execution table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the simulation time after the first report statement?
A0 ns
B10 ns
CAfter wait
DIndefinite
💡 Hint
Check the 'Simulation Time (ns)' row in variable_tracker after Step 2.
At which step does the simulation wait for 10 ns?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the 'Action' column in execution_table for waiting periods.
If the severity in the second report was FAILURE, what would happen?
ASimulation continues normally
BSimulation prints message and stops
CMessage is not printed
DSimulation pauses but does not stop
💡 Hint
Refer to key_moments about severity effects on simulation.
Concept Snapshot
VHDL report statement syntax:
report "message" severity level;
Severity levels: NOTE, WARNING, ERROR, FAILURE.
NOTE and WARNING print messages and continue simulation.
ERROR and FAILURE print messages and stop simulation.
Used for debug output during simulation.
Full Transcript
The VHDL report statement is used to print messages during simulation for debugging. It has a severity level that controls whether simulation continues or stops. Severity levels NOTE and WARNING print messages but allow simulation to continue, while ERROR and FAILURE stop simulation after printing. In the example, two report statements print messages at NOTE and WARNING levels, so simulation continues. The execution table shows each step, including message printing and waiting. Variables like simulation time and last message update accordingly. Understanding severity effects helps control simulation flow during debugging.