0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Verilog HDL语言中任务与函数的比较

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-07-02 10:24 次阅读

C语言类比,可以把任务理解成返回类型为void的子程序,把函数理解为带有返回值类型的子程序。

1、任务(task)

(1)任务定义的语法为:

task《任务名》; 《端口与类型说明》 《局部变量说明》 begin 《语句》 endendtask

需要注意的是,在第一行task语句中不能列出端口名列表;可以没有输入、输出端口和双向端口,也可以有一个或多个输入、输出端口和双向端口。

(2)任务的调用

《任务名》(端口1,端口2,。..,端口n);

任务的调用只能在过程块中进行。当被调用的任务具有输入或输出端口时,任务调用语句必须包含端口列表。这个列表内端口出现的顺序和类型必须与任务定义的顺序和类型一致。

2、函数(function)

函数的目的是通过返回一个值来响应输入信号的值。函数不能启动任务,但任务可以启动函数。在Verilog HDL中函数被当作操作符来使用,结果就是这个函数的返回值。

(1)函数的定义

function《返回值的类型和位宽》(函数名) 《端口与类型说明》 《局部变量说明》 begin 《语句》 endendfunction

其中,返回值的类型和位宽是可选项,如果缺省会返回一位寄存器类型数据。Verilog HDL认为函数的定义隐式地声明了与函数同名的寄存器。函数的定义把函数被返回值所赋值寄存器的名称初始化为与函数同名的内部变量。

(2)函数的调用

《函数名》(《输入表达式1》,《输入表达式2》,。..,《输入表达式n》);

其中,n个输入表达式要与函数定义结构中说明的各个端口一一对应,他们代表各个输入端口的输入数据,这些输入表达式的排列顺序及类型必须与各个输入端口在函数定义结构中的排列顺序及类型严格保持一致。

函数的调用不能单独作为一条语句出现,他只能作为一个操作出现在赋值语句内,不仅能够用于过程块内的赋值,还能够出现在assign语句中。

3、任务与函数的比较

(1)函数至少必须有一个输入端口,而任务可以有多个、一个或没有输入端口;

(2)函数不能有输出端口,而任务可以有多个、一个或没有输出端口;

(3)函数调用通过函数名返回一个返回值,而任务调用通过端口传递返回值;

(4)函数中不能调用任务,但任务中可以调用函数;

(5)函数调用不能作为一条语句出现,而任务调用可以;

(6)函数调用可以出现在过程块或者连续赋值语句中,而任务调用只能出现在过程块中。

文章出处:【微信公众号:FPGA之家】

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7227

    浏览量

    90333
  • C语言
    +关注

    关注

    180

    文章

    7621

    浏览量

    138963

原文标题:Verilog HDL语言(3) : 任务和函数

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    一文详解Verilog HDL

    Verilog HDL(Hardware Description Language)是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。现实生活中多用于专用集成电路
    的头像 发表于 03-17 15:17 507次阅读
    一文详解<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>

    浅谈Verilog和VHDL的区别

    Verilog和VHDL是两种广泛使用的硬件描述语言HDL),它们用于描述和模拟数字电路系统的行为和结构。这两种语言的主要作用是帮助工程师设计、仿真和验证集成电路(IC)和系统级芯片
    的头像 发表于 02-17 14:20 361次阅读
    浅谈<b class='flag-5'>Verilog</b>和VHDL的区别

    EE-128:C语言中的DSP:从C调用汇编类成员函数

    电子发烧友网站提供《EE-128:C语言中的DSP:从C调用汇编类成员函数.pdf》资料免费下载
    发表于 01-07 13:48 0次下载
    EE-128:C<b class='flag-5'>语言中</b>的DSP:从C调用汇编类成员<b class='flag-5'>函数</b>

    Verilog 与 ASIC 设计的关系 Verilog 代码优化技巧

    Verilog与ASIC设计的关系 Verilog作为一种硬件描述语言HDL),在ASIC设计中扮演着至关重要的角色。ASIC(Application Specific Integr
    的头像 发表于 12-17 09:52 515次阅读

    Verilog与VHDL的比较 Verilog HDL编程技巧

    Verilog 与 VHDL 比较 1. 语法和风格 VerilogVerilog 的语法更接近于 C 语言,对于有 C
    的头像 发表于 12-17 09:44 935次阅读

    数字系统设计与Verilog HDL

    数字系统设计与Verilog HDL 1.兼职职位 ,不坐班,等待公司分配任务,时间自由 2.薪资: 200-5000不等可具体协商 3.要求:国内985/211院校在读或毕业,或者国外前100的院校 4.英语水平:四级500+
    发表于 11-06 17:57

    Verilog硬件描述语言参考手册

    一. 关于 IEEE 1364 标准二. Verilog简介三. 语法总结四. 编写Verilog HDL源代码的标准五. 设计流程
    发表于 11-04 10:12 4次下载

    C语言中的socket编程基础

    数据 步骤6:关闭socket 创建socket 在C语言中,创建socket需要使用socket()函数。这个函数需要两个参数:域
    的头像 发表于 11-01 16:51 702次阅读

    system verilog语言简介

    ICer需要System Verilog语言得加成,这是ICer深度的表现。
    发表于 11-01 10:44 0次下载

    Verilog HDL的基础知识

    本文继续介绍Verilog HDL基础知识,重点介绍赋值语句、阻塞与非阻塞、循环语句、同步与异步、函数任务语法知识。
    的头像 发表于 10-24 15:00 792次阅读
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>的基础知识

    FPGA Verilog HDL有什么奇技巧?

    不同的代码段,方便进行代码的调试和不同配置的实现。 利用 always_ff 、 always_latch 等新的语法特性:在特定的场景下更清晰地表达电路的行为。 利用系统任务函数:如 **display
    发表于 09-12 19:10

    FPGA verilog HDL实现中值滤波

    与数据,并将verilog得到的滤波数据转换为图像,将二者进行比较 使用matlab自带的中值滤波函数medfilt2生成原图像的灰度图像的滤波数据; 将medfilt2函数
    发表于 06-18 18:50

    FPGA设计中 Verilog HDL实现基本的图像滤波处理仿真

    今天给大侠带来FPGA设计中用Verilog HDL实现基本的图像滤波处理仿真,话不多说,上货。 1、用matlab代码,准备好把图片转化成Vivado Simulator识别的格式,即每行一
    发表于 05-20 16:44

    有什么好用的verilog HDL编辑工具可用?

    有什么好用的verilog HDL编辑工具可用?最好能集成实时的verilog HDL语法检测、自定义模块识别触发等功能,最好能够免费;
    发表于 04-28 11:00

    fpga是用c语言还是verilog

    FPGA(现场可编程逻辑门阵列)开发主要使用的编程语言是硬件描述语言HDL),其中Verilog是最常用的编程语言之一。而C
    的头像 发表于 03-27 14:38 2522次阅读