推荐答案
测试一下
题目
以下关于verilog function和task描述正确的是
A、Function结构中可以加入延时控制
B、Task结构中可以加入延时控制
C、Function中可以调用task
D、Task结构中可以调用function
参考答案与知识点
参考答案
正确选项为B和D。
解析:
- A: Function结构中可以加入延时控制(错误)。Verilog中function是组合逻辑电路模型,必须立即执行,不能包含任何延时控制(如#delay)、事件控制或非阻塞赋值。function的仿真时间必须为零,因此不允许加入延时。
- B: Task结构中可以加入延时控制(正确)。Task是过程性描述,可以包含延时控制、事件控制、阻塞赋值和非阻塞赋值,用于建模时序逻辑或复杂控制流。因此允许加入延时。
- C: Function中可以调用task(错误)。根据Verilog语法,function内部只能调用其他function,不能调用task。因为task可能包含延时或时序控制,而function要求立即返回且无时序依赖。
- D: Task结构中可以调用function(正确)。Task内部可以调用function,因为function是纯组合逻辑且无时序,符合task的任意调用需求。这也是常用的代码复用方式。
易错点:部分考生可能混淆function和task的调用规则,误以为function可以调用task;或忘记function的纯组合特性而误选A。
涉及知识点
- function与task的区别
- function不能包含延时控制
- task可以包含延时控制
- function不能调用task
- task可以调用function