verilog之display

Posted on 2020-07-24 23:31  绿叶落秋风  阅读(7808)  评论(0编辑  收藏  举报

verilog之display

1、函数简介

$display是用于显示不同格式的变量的函数,用于测试过程中观察数据数据的特点。该观测不如波形图直观,但是如果可以详细的设置好观测点,有时可以达到事半功倍的效果。

2、实际测试

module display;
    
/* 数据类型简写
%h或%H 以十六进制数的形式输出
%d或%D 以十进制数的形式输出
%o或%O 以八进制数的形式输出
%b或%B 以二进制数的形式输出
%c或%C 以ASCII码字符的形式输出
%v或%V 输出网络型数据信号强度
%m或%M 输出等级层次的名字
%s或%S 以字符串的形式输出
%t或%T 以当前的时间格式输出
%e或%E 以指数的形式输出实型数
%f或%F 以十进制数的形式输出实型数
%g或%G 以指数或十进制数的形式输出实型数,无论何种格式都以较短的结果输出
*/    
/*转义字符
\n 换行
\t 横向跳格(即跳到下一个输出区)
\\ 反斜杠字符\
\" 双引号字符"
\o 1到3位八进制数代表的字符
%% 百分符号%
*/
/*功能区分
$display自动地在输出后进行换行,
$write则不是这样。如果想在一行里输出多个信息,可以使用$write
*/
/*具体例子
*/
reg [3:0] a;
initial begin
a=1'b1;
$display("\\ \" \t \o %d %% \n",a);
$display("a= %d",a);
$display("a= %d",a);
$write("a= %d",a);
$write("a= %d",a);
end
endmodule

3、测试结果

run -all
# \ "      o  1 % 
# 
# a=  1
# a=  1
a=  1a=  1

可以看到display显示分行,而write只是在同一行工作。一个成段,一个成句,基本功能还是一致的。