Verilog 任务2024 年 8 月 29 日 | 阅读 3 分钟 一个函数旨在对输入进行一些处理并返回一个值。 相比之下,一个任务更通用,可以计算多个结果值,并使用 输出 和 输入输出 类型的参数返回它们。 任务可以包含耗时的模拟元素,例如 @、posedge 等。任务用于所有编程语言,通常被称为过程或子例程。 数据被传递给任务,完成处理,并返回结果。它们必须被特别调用,并带有输入和输出数据,而不是仅仅连接到一般网表中。 包含在代码主体中,它们可以被多次调用,从而减少代码重复。
一个任务必须用语句明确调用。 它不能像函数那样在表达式中使用。 语法 一个任务以关键字 task 开始,以关键字 endtask 结束。 输入和输出在关键字 task 之后声明。 局部变量在输入和输出声明之后声明。 关键字 automatic 将使任务变为 可重入 任务。 否则,它将默认为静态。 如果一个任务是静态的,则其所有成员变量将在已并发启动的同一任务的不同调用之间共享。 注意:分层引用无法访问自动任务项。调用任务如果任务不需要任何参数,则可以避免参数列表。 如果任务需要参数,它们可以在与其调用相同的语句中提供。 任务使能参数 (x, y, z) 对应于任务定义的参数 (a, b, c)。 由于 a 和 b 是输入,因此 x 和 y 的值将分别放置在 a 和 b 中。 由于 c 被声明为输出,并在调用期间与 z 连接,因此总和将自动从 c 传递到变量 z。 全局任务在所有模块外部声明的任务被称为全局任务,因为它们具有全局作用域,可以在任何模块内调用。 执行完上面的代码后,会产生以下输出。 函数和任务的区别
下一主题Verilog Case 语句 |
我们请求您订阅我们的新闻通讯以获取最新更新。