Verilog的打印系统函数(3)
上一篇 /
下一篇 2006-04-06 23:09:10 / 天气: 晴朗
/ 心情: 高兴
/ 个人分类:Verilog及工具
同其他高级语言相比,Verilog提供了几种跟硬件设计相关的特殊输出格式转义符:%v、%m、%t。
%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打印一个信号的强度时,前两个符号除了用上表中的信号强度“标志符”表示信号强度外,也可以用两个数字表示信号强度。关于信号强度和逻辑值的建模在后续章节进行详细介绍。
使用%m,可以打印当前打印语句所在的模块层次。
%t通常用于打印当前的仿真时间,当然也可以用于打印其他数据。该转义符表示把对应的变量使用当前使用的时间表示格式进行打印。Verilog提供系统函数$time获得当前的仿真时间信息,该系统函数输出值为64比特表示的整数。Verilog还提供系统函数$timeformat用于设定当前的时间格式。关于$time和$timeformat的使用也放在后续章节说明。
例2-3为这几个转义符简单使用的一个例子。
// Filename: exe_2_3.v
// This module is writen by YiTurn Zhao
// Module Purpose : $display 和 $write的部分特殊功能
module exe_2_3();
reg [7:0] a;
integer i;
wire x;
pulldown(x);
initial begin
#2;
$display("%m");
$display("Simulation Time now is : %t",$time);
$display("%%t Usage 2:%t",200);
$display("x's strength is : %v",x);
end
exe_2_3_sub exe_2_3_sub();
endmodule
module exe_2_3_sub;
wire [1:0] x;
initial begin
# 4;
$display("%m");
$display("Simulation Time now is : %t",$time);
$display("x[1]'s strngth is :%v",x[1]);
end
endmodule
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG:
Verilog及工具