2011-03-08 58 views
3

在Verilog中执行并行循环吗?我需要多次调用一个模块,但他们必须同时执行。我一直在考虑使用for循环,而不是逐个写出来。它会一样吗?Verilog中的循环如何执行?

回答

4

Verilog描述了硬件,所以在这种情况下执行循环或调用模块时没有意义。如果我正确理解你的问题的意图,你希望有不同输入和输出的同一模块的多个实例。

要完成此任务,您可以使用Verilog的generate statements自动生成实例。您可以在Emacs的verilog-mode中使用auto_template functionality。我更喜欢这种方法,因为每个实例化都显式出现在我的源代码中,我发现检测错误更容易。

+0

所以你只是把生成之前的for循环?如果你不这样怎么办? – 2011-03-09 03:23:54

+0

我链接的页面有一个使用示例。如果你没有将循环和实例包含在generate/endgenerate块中,那么你的工具会发出抱怨 - 试试看看。 – jlf 2011-03-09 15:41:24

0

正如jlf回答,你正在寻找一个生成语句。您可以使用for-loop来对组合逻辑进行建模,例如遍历寄存器中的所有位并计算输出。这将在测试平台中的一个始终块或甚至一个初始块中。