当前位置:首页 > EDA > 电子设计自动化
[导读]task和function说明语句的区别task和function说明语句分别用来定义任务和函数。利用任务和函数可以把一个很大的程序模块分解成许多较小的任务和函数便于理解和调试。输入、输出和总线信号的值可以传入或传出任务和函

task和function说明语句的区别

task和function说明语句分别用来定义任务和函数。利用任务和函数可以把一个很大的程序模块分解成许多较小的任务和函数便于理解和调试。输入、输出和总线信号的值可以传入或传出任务和函数。

任务和函数往往是大的程序模块中在不同地点多次用到的相同的程序段。学会使用task和function语句可以简化程序的结构,使程序明白易懂,是编写大型模块的基本功。

任务和函数有些不同,主要的不同有以下4点。

(1)函数只能与主模块共用同一个仿真时间单位,而任务可以定义自己的仿真时间单位。

(2)函数不能启动任务,而任务能启动其他任务和函数。

(3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量。

(4)函数返回一个值,而任务则不返回值。

函数的目的是通过返回一个值来响应输入信号的值。任务却能支持多种目的,能计算多个结果值,这些结果值只能通过被调用的任务的输出或总线端口送出。Verilog HDL模块使用函数时是把它当作表达式中的操作符,这个操作的结果值就是这个函数的返回值。下面让我们用例子来说明。

例如,定义一任务或函数对一个16位的字进行操作让高字节与低字节互换,把它变为另一个字(假定这个任务或函数名为:switch_bytes)。

任务返回的新字是通过输出端口的变量,16位字的字节互换任务的调用源码如下:

switch_bytes(old_word,new_word);

任务switch_bytes把输入old_word的字的高、低字节互换放入new_word端口输出。

而函数返回的新字是通过函数本身的返回值,16位字的字节互换函数的调用源码如下:

new_word = switch_bytes(old_word);

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在数字电路和系统设计的领域中,Verilog HDL(硬件描述语言)凭借其强大的描述和建模能力,成为了工程师们不可或缺的工具。Verilog HDL是一种用于描述电子系统,特别是数字系统设计和模拟的文本形式的语言。本文将...

关键字: Verilog HDL 硬件描述语言

“验证很多人都清楚,验证技术一直在发展,个人技术成长不进则退。于是采用最新的验证方法和趋势是很多验证牛人趋之若鹜的事情。一旦验证大佬尝试了某个事情,可能很快就会在团队传播起来,这就是偶像效应。这时候,这项技术仿佛就是经过...

关键字: BUG EDA VERILOG 编程语言

前言:一转眼从事前端已经6年了,从当时的小白到如今大厂的技术专家,中间也走过不少弯路,从今天开始我会持续更新前端技术文章,并且整体的文章会进行体系梳理,整个知识体系分为:基础精讲,框架讲解,框架及工具原理,前端面试题精讲...

关键字: 函数 GE FUNCTION APP

来源:射频百花谭规范很重要工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己写的...

关键字: VERILOG 时钟 计数器 仿真验证

摘要:VerilogHDL硬件描述语言是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,具有灵活性高、易学易用等特点。VerilogHDL可以在较短的时间内学习和掌握,FPGA的VeilogHDL基础语法总结,看...

关键字: FPGA HDL

2021年5月21日-24日,第八届“鼎阳杯”全国高校电工电子基础课程实验教学案例设计竞赛复赛,在南昌大学顺利举办。

关键字: 鼎阳杯 Arduino Verilog HDL

关注、星标 嵌入式客栈 ,精彩及时送达 [导读] 基于FPGA的SOC在嵌入式系统应用越来越广了,往往一个复杂系统使用一个单芯片基于FPGA的SOC就搞定了。比较流行的方案主要有Altera/xilinx两家的方案。要用...

关键字: HDL

[导读] 基于FPGA的SOC在嵌入式系统应用越来越广了,往往一个复杂系统使用一个单芯片基于FPGA的SOC就搞定了。比较流行的方案主要有Altera/xilinx两家的方案。要用这样的方案,首要需要掌握的是硬件描述语言...

关键字: HDL

在上一篇《从一笔交易来看ETH与BTC之异同》中,我们从一笔交易来概略说明了ETH与BTC转帐交易的不同之处,本篇文章我们要来谈以太坊智能合约。不会谈到实作部分,而是希望能从实际应用场景切入来说

关键字: 区块链 智能合约 FUNCTION 编译

写在前面 Java8中一个很牛逼的新特性就是方法引用和构造器引用,为什么说它很牛逼呢?往下看! 方法引用 当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!这里需要注意的是:实现抽象方法的参数列表,必...

关键字: JAVA BSP INTEGER FUNCTION
关闭
关闭