2015-05-09 325 views
0

如果我们有一个顶级模块将代码中的所有实例连接在一起,那么如果我们试图重复(重申)多次是顶级模块的整个代码,我们如何以综合的方式完成这项工作使用for循环? 实施例以说明:如何重复顶层模块代码N次verilog代码? (综合方法)

for(i=0;i<13;i++){ 

module(1) 
module(2) 
module(3) 
module(4) 
module(N)} 

我已经从1一个模块(模块顶部)的连接模块,以N,但现在的问题,如何能重复一次12次? 在此先感谢!

+1

你可以添加一个更详细的例子,你正在尝试做什么?并解释你为什么不想使用'generate-for'循环。 –

+0

为(I = 1; I <13;我++){ 模块1 模块2 单词数 单词数} 我已经通过顶部module..Now枝条代码(1-4)如何可以repeate他们12次? ? 在此先感谢! @ dave_59 – user2014

+0

我想用verilog代码重复N次模块12次..但我认为for.loop它不是合成..不是吗?那么最佳方式是什么? @ dave_59 – user2014

回答

1

for-loops是可综合的,因此它们可以静态展开。

module top(/*...*/); 
// nets 

genvar idx_g; 
generate 
    for(idx_g=0; idx_g<12; idx_g=idx_g+1) begin : looplabel 
    moduledef1 inst1(.*); 
    moduledef2 inst2(.*); 
    // ... 
    moduledefN instN(.*); 
    end : looplabel 
endgenerate 
endmodule