write函数_Verilog语法之十二:系统函数和任务

本文首发于微信公众号“花蚂蚁”,想要学习FPGA及Verilog的同学可以关注一下。

Verilog HDL语言中共有以下一些系统函数和任务:

$bitstoreal, $rtoi, $display, $setup, $finish, $skew, $hold,

$setuphold, $itor, $strobe, $period, $time, $printtimescale,

$timefoemat, $realtime, $width, $real tobits, $write, $recovery,

在Verilog HDL语言中每个系统函数和任务前面都用一个标识符$来加以确认。这些系统函数和任务提供了非常强大的功能。下面对一些常用的系统函数和任务逐一加以介绍。

注意:对于初学者来说任务函数和任务不是首要必须掌握的,可以以后慢慢理解。

1.$display和$write任务

格式:

$display(p1,p2,....pn);
$write(p1,p2,....pn);

这两个函数和系统任务的作用是用来输出信息,即将参数p2到pn按参数p1给定的格式输出。参数p1通常称为“格式控制”,参数p2至pn通常称为“输出表列”。

这两个任务的作用基本相同。$display自动地在输出后进行换行,$write则不是这样。如果想在一行里输出多个信息,可以使用$write。在$display和$write中,其输出格式控制是用双引号括起来的字符串,它包括两种信息:

  • 格式说明,由"%"和格式字符组成。它的作用是将输出的数据转换成指定的格式输出。格式说明总是由“%”字符开始的。对于不同类型的数据用不同的格式输出。下表中给出了常用的几种输出格式。

e2286f72ee746a147241b6a034f28306.png
  • 普通字符,即需要原样输出的字符。其中一些特殊的字符可以通过下表中的转换序列来输出。下面表中的字符形式用于格式字符串参数中,用来显示特殊的字符。

0c0fcd16b148d89d68107ae4c638c68c.png

在$display和$write的参数列表中,其“输出表列”是需要输出的一些数据,可以是表达式。下面举几个例子说明一下。

[例1]:

module disp;
initial
    begin
        $display("t%%n"123");
    end
endmodule

输出结果为

%
"S

从上面的这个例子中可以看到一些特殊字符的输出形式(八进制数123就是字符S)。

[例2]:

module disp;
reg[31:0] rval;
pulldown(pd);
initial
    begin
    rval=101;
    $display("rval=%h hex %d decimal", rval, rval);
    $display("rval=%o otal %b binary", rval, rval);
    $display("rval has %c ascii character value",rval);
    $display("pd strength value is %v",pd);
    $display("current scope is %m");
    $display("%s is ascii value for 101",101);
    $display("simulation time is %t",$time);
    end
endmodule

其输出结果为:

rval=00000065 hex
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值