verilog调用其他模块_Verilog重点解析(3)(task&function)

源自微信公众号 “数字芯片实验室”

task和function之间有什么区别?Verilog中的task和function都可以实现常用功能,有助于代码的清晰和可维护,避免在不同位置复制大量代码。 本质上,task和function都提供了在模块中不同位置重用相同代码段的“子程序”机制。
但是,task和function在以下方面有所不同:

7a0223bfd8bcc02e888a54f69d1c0f58.png

静态task和动态task有何不同?动态task在关键字task和名称之间有automatic关键字。 动态task在每个task调用期间,自动分配变量内存空间,即每次调用都不会覆盖这些值。没有automatic关键字,变量是静态分配的,这意味着这些变量在不同的task调用之间共享,因此可以被覆盖。
以下示例说明了关键字automatic的效果。 这是一个不可综合的代码。

f156bd94274efff33ae878342a2c8ef4.png

在上面的示例中,my_value是task中的局部变量
每当调用此task时,输入in_value在5个仿真时间单位之后赋值给局部变量。
在initia

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值