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及工具

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar