verilog中,对一个模块的多次调用,比如前一个调用还没有结束的情况下,就再次调用,后者是否会覆盖前者?

我的设计想多次降低图像的分辨率,就是说调用同一个分辨率降低模块,分几次调用后达到目的。而且在前一个处理到一定程度后,后面的低分辨率层就可以调用同样的模块来处理了。所以我只定义一个模块是不是会被覆盖?那么思路是什么?比如降低6次,难道我要定义6个相同的降低模块么?

Verilog中的模块都是电路,只能称之为例化,不能称之为调用。 如果你需要重复例化多个同样的模块,可以使用generate for语句:
generate
genvar i;
for (i=0;i<N;i=i+1)
begin : inst_gen
....
end
endgenerate追问

请问,generate可以综合么?for语句中的N是不是不可综合?

追答

是可以综合的语句。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-19
你的功能用C语言比较合适。在Verilog中所以模块都是电路,并行处理所有信号,当然状态机可以调整信号时序,但不如CPU的顺序执行方便。
第2个回答  2012-05-20
你可以去了解一下pipeline的原理,把你的模块分为多级去处理。
相似回答