Printing and Displaying Output
Being able to print or display output is a fundamental capability in any programming or scripting language. This functionality enables debugging, demonstrates simulation results, and offers valuable feedback. In SystemVerilog, the $display system task is frequently used for printing
$display System Task
The $display system task allows you to print formatted output to the standard output, usually your console or terminal. The task works similarly to the printf function found in the C programming language.
Here's the syntax for $display:
$display(format_string, list_of_arguments);The format_string represents the text to be outputted, which can include format specifiers for variables. The list_of_arguments encompasses the variables to be printed, which correspond to the format specifiers in the format_string.
One key feature of the $display function is that it automatically appends a newline character at the end of its output, which means each $display call will output on a new line.
Consider the following example:
module MyModule;
integer a = 10;
integer b = 20;
initial begin
$display("The values of a and b are %d and %d respectively.", a, b);
end
endmoduleOutput:
The values of a and b are 10 and 20 respectively.In this example, the values of a and b will replace the %d format specifiers in the format_string, resulting in the output: "The values of a and b are 10 and 20 respectively."
Format Specifiers
Format specifiers determine the format of the variable values in the output. Some common format specifiers in SystemVerilog include:
%dor%0d: For decimal integer%b: For binary%h: For hexadecimal%o: For octal%s: For string%f: For real numbers
These specifiers can be used within the format_string in the $display task. For instance:
module MyModule;
integer a = 10;
real b = 20.5;
initial begin
$display("In decimal: a = %d, b = %f", a, b);
$display("In hexadecimal: a = %h", a);
$display("In binary: a = %b", a);
end
endmoduleOutput:
In decimal: a = 10, b = 20.500000
In hexadecimal: a = A
In binary: a = 1010The $display system task is essential in SystemVerilog programming. As you continue with this tutorial series, you will frequently use $display to print output and debug your code. Always remember the proper use of format specifiers to represent different types of variables in your output.
Have a Question?
Feel free to ask your question in the comments below.
Please Login to ask a question.
Login Now