73,Verilog-2005标准篇:任务与函数简介

任务(task)和函数(function)提供了在verilog源文件中的多个不同位置执行相同逻辑功能的能力。它们还提供了一种将大型逻辑进程分解为较小逻辑进程的方法,使源代码描述更易于阅读和调试。从本篇开始,咱们将讨论任务和函数之间的区别,还介绍如何定义和调用任务和函数,并分别举例说明。

本篇咱们先介绍任务和函数的区别:

- 函数应在一个仿真时间单位内执行完毕,但任务可包含时间控制语句。

- 函数不能调用任务,但任务可以调用其他任务和函数。

- 函数必须至少有一个input类型参数,不得有outputinout类型参数,但任务可以有零个或多个任何类型的参数。

- 函数有一个返回值,但任务没有返回值。

函数的目的是通过返回单个值来响应输入值。一个任务可以支持多个目标,也可以计算多个结果值。不过,只有outputinout类型参数才会从任务调用中传回结果值。函数在表达式中用作操作数,操作数的值就是函数的返回值。

例如我们可以定义任务或函数来切换 16 位字中的高低字节。任务将在输出参数中返回切换后的字,因此,任务名为 switch_bytes 的源代码可以如下所示:

switch_bytes (old_word, new_word);

switch_bytes 任务将接收 old_word 中的字节,颠倒它们的顺序,并将颠倒后的字节放入 new_word 中。

而高低字切换函数会将切换后的字作为函数的返回值。因此,函数 switch_bytes 的函数调用可以如下例所示:

new_word = switch_bytes (old_word);

点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值