如何在verilog中使用任务?
问题描述:
有时我们需要调用一个可综合代码中的任务,这是我们多次将参数传递给一个任务。 ,让我们说或我们的通话任务太长 那么如果我们多次调用任务 所以我的问题是,在每次它创建调用任务的实例我们只是传递参数?如何在verilog中使用任务?
答
在模块,接口,程序或包中定义的任务默认为默认为静态的 。这些项目应该在同时执行的任务的所有用途 *享。在课堂上定义的任务是始终自动的 。
在自动任务中声明的所有项目都是为每个调用动态分配的。所有形式参数和局部变量都存储在堆栈中。
任务可能同时启用多次。在每个并发任务调用上复制自动任务的所有变量应为以存储特定于该调用的状态。
静态任务的所有变量应静态在应有对应于每一个变量在一个模块实例声明的局部变量,无论并发激活任务的的数量。
但是,模块不同实例中的静态任务应该具有彼此独立的存储。
有关详细信息,请访问System Verilog LRM的主题13.3。
我认为当'Task'定义中使用'automatic'关键字时,它会每次创建一个调用任务的新实例,但是当没有指定'automatic'时,它只会创建一个实例并将其用于其他调用。 –
所以你的意思是它不会在每个声明中产生硬件,它只会将值传递给只有一个硬件,这将是我们的任务 – Mayur
我认为这是如此,只是改变硬件输入信号。等待专家的回答。 –