FPGA基础知识-任务和函数

这篇具有很好参考价值的文章主要介绍了FPGA基础知识-任务和函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

学习目标

学习内容

1.任务和函数的区别

2.任务

3.函数

学习时间

学习总结


学习目标:

1.理解任务和函数之间的区别。

2.理解定义任务所需的条件,学会任务的声明和调用。

3.理解定义函数所需的条件.学会函数的声明和调用。


学习内容:

提示:这里可以添加要学的内容

1.任务和函数的区别

     在 Verilog中,任务和函数用于不同的日的。我们将在下面的几节中,对两者进行更详细的讨论。但是,在学习之前,理解两者之间的区别是很重要的,中,我们对两者的不同点进行了概括。 在verilog中,任务和函数用于不同的日的.我们将在下面的几节中,对两者进行更详细的讨论.但是,在学习之前,理解两者之间的区别是很重要的,我们对两者的不同点进行了概括。

FPGA基础知识-任务和函数

     任务可以具有输人、输出和输入J输出(双向)变量,而函数只有输入变量。另外,可以在任务和函数中声明局部变量,如寄存器、时间、整数、实数和事件,但是不能声明线网类型的变量。在任务和函数中只能使用行为级语句,但是不能包含always和 initial 块。设计者可以在always块、initial块以及其他的任务和函数中调用任务和函数。 

2.任务

       任务使用关键字task和endtask进行声明.如果子程序满足下面任意一个条件,则必须使用任务而不能使用函数:

1.于程序中包含有延迟、时序或者事件控制结构。

2.没有输出或者输出变量的数目大于1。

3.没有输入变量。

    根据所使用的变量类型,使用关键字input,output 或inout对任务的端口进行声明。input(输入)类型和 inout(输入/输出)类型的变量从外部传递到任务中,input(输入)类型的变量在任务所包含的语句中进行处理。当任务执行完成时,output (输出)类型和inout(输人/输出)类型的变量传回给任务调用语句中相应的变量。除了在模块中,任务也可以在其他任务或函数中被调用(函数能调用另一个函数,但不能调用另一个任务。

     虽然在任务中也使用关键字input,output 或inout进行输人/输出变量的声明,就像在模块中声明端口一样,但是两者在本质上是有区别的:模块的端口用来和外部信号相连接,而任务的IO〔输入/输出)变量则用来向任务中传入或从任务中传出变量。

3.函数

   1.Verilog使用关键字function和endfunction 来进行函数声明。对于一个子程序来说,如果下面的所有条件全部成立,则可以使用函数来完成。

  2.在子程序内不含有延迟、时序或者控制结构。·子程序只有一个返回值。

 3.·至少有一个输入变量。·没有输出或者双向变量。不含有非阻塞赋值语句。

       函数具有-些独特的性质。当函数声明的时候,在 Verilog 的内部隐含地声明了一个名为function_identifier(函数标识符)的寄存器类型变量,函数的输出结果将通过这个寄存器类型变量被传递回来。函数的调用通过指明函数名和输人变量来进行。在函数执行结束时,返回值被传回到调用处。可选项range_or_type(类型或范围)说明了内部寄存器的位宽。如果没有指定返回值的类型或位宽、则默认位宽为1。Verilog 中的函数和FORTRAN中的函数非常类似。

   注意在函数声明中必须至少有一个输入声明,同时由于隐含的寄存器变量function_identifier

包含了函数的返回值,因此函数是没有输出变量的。另外,在函数中不能调用任务,只能调用其他函数。


 

学习时间:

20230616


学习总结

提示:这里统计学习计划的总量

      任务和函数都用来对设计中多处使用的公共代码进行定义。使用任务和函数可以将模块分割成许多个可独立管理的子单元,增强了模块的可读性和可维护性。它们和C语言中的子程序起着相同的作用

      任务可以具有任意多个输人、输人/输出( inout)和输出变量。在任务中可以使用延迟、事件和时序控制结构,在任务中可以调用其他的任务和函数;

     可重入任务使用关键字automatic进行定义,它的每--次调用都对不同的地址空间进行操作。因此,在被多次并发调用时仍然可以获得正确的结果;

      函数只能有一个返回值、并且至少要有一个输入变量。在函数中不能使用延迟、事件和时序控制结构。在函数中可以调用其他函数,但是不能调用任务;

     递归函数使用关键字automatic进行定义,递归函数的每一次调用都拥有不同的地址空间。因此对这种函数的递归调用和并发调用可以得到正确的结果;

    任务和函数都包含在设计层次中,可以通过层次名对它们进行调用。文章来源地址https://www.toymoban.com/news/detail-498009.html

到了这里,关于FPGA基础知识-任务和函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UNIX基础知识:UNIX体系结构、登录、文件和目录、输入和输出、程序和进程、出错处理、用户标识、信号、时间值、系统调用和库函数

            所有的操作系统都为运行在其上的程序提供服务,比如:执行新程序、打开文件、读写文件、分配存储区、获得系统当前时间等等         从严格意义上来说,操作系统可被定义为一种软件,它控制计算机硬件资源,提供程序运行的环境。我们通常将这种软件称为

    2024年02月13日
    浏览(43)
  • 系统学习Python——装饰器:函数装饰器-[添加装饰器参数:基础知识]

    分类目录:《系统学习Python》总目录 前面文章介绍的计时器装饰器有效运行,但是如果它可配置性更强的话,就会更好一一一例如提供一个输出标签并且可以打开或关闭跟踪消息,这些在一个多用途工具中可能很有用。装饰器参数在这里派上了用场:对它们适当编写后,我们

    2024年02月22日
    浏览(31)
  • Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API

    Java 是一种由 Sun Microsystems 于 1995 年首次发布的编程语言和计算平台。Java 是一种通用的、基于类的、面向对象的编程语言,旨在减少实现依赖性。它是一个应用程序开发的计算平台。Java 快速、安全、可靠,因此在笔记本电脑、数据中心、游戏机、科学超级计算机、手机等领

    2024年03月24日
    浏览(75)
  • [FPGA] 7系列FPGA的基础知识

    Virtex-7 Family是Xilinx公司推出的一系列FPGA器件,采用了28纳米工艺制造。它是Xilinx公司的第一个采用28纳米工艺的FPGA系列,提供了高性能、低功耗和灵活性的特点。 Virtex-7 Family提供了不同规模的器件,包括Virtex-7 XT、Virtex-7 HT、Virtex-7 H580T、Virtex-7 VXT和Virtex-7 VX系列,每个系列都

    2024年02月09日
    浏览(34)
  • FPGA基础知识

    FPGA是在PAL、PLA和CPLD等可编程器件的基础上进一步发展起来的一种更复杂的可编程逻辑器件。它是ASIC领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。 由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过

    2024年02月03日
    浏览(30)
  • 第一篇 FPGA基础知识

    FPGA的全称为Field-ProgrammableGateArray,即现场可编程门阵列。 在开始学习FPGA之前,同学们首先应该清楚地了解FPGA的概念,明白FPGA到底是什么东西,可以用来做什么。FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制

    2024年02月07日
    浏览(51)
  • FPGA基础知识点

    基础知识 逻辑值 逻辑0:表示低电平,也就是对应电路GND 逻辑1:表示高电平,也就是对应电路VCC 逻辑X:表示未知,有可能是高电平也有可能是低电平 逻辑Z:表示高阻态,外部没有激励信号,是一个悬空状态 数字进制格式 Verilog数字进制格式包括 二进制(b) , 八进制(

    2024年02月03日
    浏览(40)
  • 全面解析FPGA的基础知识

    FPGA(Field- Programmable Gate Array),即现场可编程门阵列,它是在 PAL、GAL、CPLD等可编程器件的基础上进一步发展出来的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA 普遍用

    2024年01月25日
    浏览(31)
  • FPGA基础知识-行为级建模

    目录 学习目标 学习内容 1.结构化过程语句 2.过程赋值语句 3.时序控制 4.条件语句 5.多路分支语句 6.循环语句 7.顺序块和并行块      8.生成块 学习时间 学习产出 解释结构化过程always和initial在行为级建模中的重要性, 定义阻塞( blocking〉和非阻塞( non-blocking )过程性赋值语句

    2024年02月12日
    浏览(40)
  • FPGA基础知识-开关级建模

    目录 学习目标 学习内容 1.MOS开关 2.CMOS开关 3.双向开关  4.电源和地 5.阻抗开关 6.开关中的延迟说明 学习时间 学习总结 提示:这里可以添加学习目标 1.能够描述基本 MOS开关:nmos.pmos和cmos。 2.理解双向传输开关、电源和地的建模方法。 3.识别阻抗MOS开关。 4.解释在基本MOS 开关

    2024年02月10日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包