← 2024 · 小米 · 2025硬件提前批(芯片) 笔试
推荐答案
测试一下
题目
关于 SYSTEM VERILOG 中的 Function 和 Task,下列说法错误的是()
A. Function 可以通过 return 返回值,Task 一般通过 output 返回值
B. Task 可以调用 Function
C. Function 可以直接调用 Task
D. Function 中至少有一个输入变量,Task 中可以没有输入变量
参考答案与知识点
参考答案
C。选项C错误,因为Function不能直接调用Task。在SystemVerilog中,Function被设计为组合逻辑或简单行为,必须在一个仿真时间步内完成,不能包含任何时序控制语句(如延时、事件等待等);而Task可以包含时序控制,因此Function内部无法调用Task,否则会导致编译错误。选项A正确:Function可以通过return语句返回一个值,而Task则通过output或inout参数传递结果。选项B正确:Task内部可以调用Function,这是允许的。选项D正确:Function必须至少有一个输入变量(除非声明为void function,但即便如此通常也建议有输入),而Task可以没有任何输入变量。考点:Function与Task的核心区别在于是否允许时序控制、返回值方式、调用规则。易错点:混淆Function和Task的调用限制,误以为Function可以调用Task;或忽略Function必须在一个时间步内完成的要求。
涉及知识点
- Function不能包含时序控制
- Task可以包含时序控制
- Function不能调用Task
- Task可以调用Function
- Function通过return返回值
- Task通过output参数返回值