【SystemVerilog笔记(二)】过程块以及task/function

一、过程块
1. always

可综合,用于描述硬件时序电路和组合电路,可以在module或者interface中使用。

2. initial

不可综合,仿真一开始就会执行且只执行一次,可以在module、interface和program中使用。

二、function与task
1. function
  • 可以在参数列表指定输入(input)、输出(output)、输入输出(inout)或者引用参数(ref)。默认数据类型为logic,数组也可以作为形式参数进行传递。
  • 软件行为,在仿真的0时刻开始执行,可以返回数值也可以不返回数值(void)。
  • 内部不能有事件、延时、时序控制语句。
  • 可以调用其它function,但不能调用task。
2. task
  • 硬件行为,不可通过return返回结果,但可通过output或inout端口或者ref来返回
  • 仿真0时刻和非0时刻均可执行,可以内置耗时语句。
  • 既可以调用function,也可以调用其它task。
三、局部变量和全局变量
1. 局部变量
  • 生命周期与其所在域共存亡,如task/function调用结束后局部变量也就不复存在,∴局部变量的生命周期是动态的。
2. 全局变量
  • 生命周期贯穿程序开始执行到结束,∴全局变量的生命周期是静态的。
一般默认变量都是静态的,当然也可以通过static或者autostatic进行显式的声明。
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值