verilog中的$display和$wirte

Verilog中的$display$write任务

1、格式

       $display(p1,p2, ,pn);html

       $write(p1,p2, ,pn);网络

这两个函数和系统任务的做用都是用来输出信息,即将参数p2pn按参数p1给定的格式输出。参数p1一般称为:“格式控制”,参数p2pn一般称为“输出列表”。ide

$display自动地在输出后进行换行,$write则不是这样。若是想在一行里输出多个信息,可使用$write如:$display(“%d”,10) $display(“%d\n”,10) 效果相同函数

$display$write中,其输出格式控制是用双引号括起来的字符串,它包括如下两种信息:spa

1、格式说明,由”%”和格式字符组成。它的做用是将输出的数据转换成指定的格式输出。格式说明老是由”%”字符开始的。下面是几种经常使用的输出格式。orm

       1)、 %h%H        以十六进制的形式输出htm

       2)、 %d%D        以十进制的形式输出ci

       3)、 %o%O        以八进制的形式输出字符串

       4)、 %b%B        以二进制的形式输出get

5)、 %c%C        ASCII码字符的形式输出

6)、 %v%V       输出网络型数据信号强度

7)、 %m%M       输出等级层次的名字

8)、 %s%S        以字符串的形式输出

9)、 %t%T        以当前的时间格式的形式输出

10)、 %e%E        以指数的形式输出实型数

11)、%f%F        以十进制的形式输出实型数

12)、%g%G        以指数或者十进制的形式输出实型数,不管何种格式都以较短的结果输出。

13)、%x   十六进制

14)、%i    读入十进制,八进制,十六进制,在编译时经过数据前置来区分

如:%i0x31 表示为十六进制  %i031 表示为八进制 %i31 表示为十进制

15)、%u   无符号十进制数

2、普通字符,即须要原样输出的字符。其中包括一些转义字符,下面的字符形式用于格式字符串参数中,用来显示特殊的字符。

       1)、 \n    换行

       2)、 \t  至关于按一个Tab

       3)、 \\  反斜杠字符\

4)、 \”   双引号字符

       5)、 \0  八进制数表明的字符

       6)、 \0x  十六进制数表明的字符

       7)、 %%  百分符号%

Verilog 中, 转义符 必定是使用在双引号括起来的字符串中!

 

 

 

 

2%v %m %t

1%v用于打印一个线网类型变量的信号强度,它不能打印矢量变量的信号强度,而只能打印标量变量,或者矢量变量的指定位的信号强度。信号强度用3个符号输出表示,前两个符号表示信号强度,而第三个符号表示信号的逻辑值。信号强度和逻辑值的意义分别以下面两个表所示:

  信号逻辑值表示:

逻辑值 表示意义
0
表示逻辑0
1
表示逻辑1
X
表示逻辑不定态
Z
表示逻辑高阻态
L
表示逻辑0值,或者逻辑高阻态
H
表示逻辑1值,或者逻辑高阻态

  信号强度表示:

标记符 强度名 强度值表示
Su 电源
级驱动(Supply drive) 7
St
强驱动(Strong drive) 6
Pu
上拉级驱动(Pull drive) 5
La
大容性(Large caPACitor) 4
We
弱驱动(Weak drive) 3
Me
中级容性(Medium capacitor) 2
Sm
小容性(Small capacitor) 1
Hi
高容性(High capacitor) 0

%v打印一个信号的强度时,前两个符号除了用上表中的信号强度标志符表示信号强度外,也能够用两个数字表示信号强度。关于信号强度和逻辑值的建模在后续章节进行详细介绍。

2、使用%m,能够打印当前打印语句所在的模块层次。 3%t 一般用于打印当前的仿真时间,固然也能够用于打印其余数据。该转义符表示把对应的变量使用当前使用的时间表示格式进行打印。Verilog提供 系统函数 $time得到当前的仿真时间信息,该系统函数输出值为64比特表示的整数。Verilog还提供系统函数$timeformat用于设定当前的时间格式。关于$time$timeformat的使用也放在后续章节说明。

能够显示全层次路径名,包括模块实例、任务、函数、命名块。
如:能够具体到某个模块的某个函数

 

如:$display(“%t”,$time) 输出当前的仿真时间

4、若是输出列表中的表达式的值包含不肯定的值或高阻值,其结果遵循如下原则:

1)、在输出格式为十进制的状况下:

若是表达式的全部位均为不定值,则输出结果为小写的x

若是表达式的全部位均为高阻值,则输出结果为小写的z

若是表达式的部分位为不定值,则输出结果为大写的X

若是表达式的部分位为高阻值,则输出结果为大写的Z

如:$display(“%d”,xxx)   输出为x

       $display(“%d”,1x1)   输出为X

高阻值相似

2)、在输出格式为十六进制和八进制的状况下:

4位二进制数为一组表明一位十六进制数,每3位二进制数为一组表明一位八进制数,

规则和(1)相似,举例说明

$display(“%d”, 1’ bx);     输出结果为 x

$display(“%h”, 14’ bx0_1010);  输出结果为:xxXa

$display(“%h %o”, 12’ b001x_xx10_1x01, 12’ b001_xxx_101_x01);

输出结果为: XXX 1x5X

相关文章
相关标签/搜索