verilog中多个模块的引用
先在顶层模块中引用一个数码管动态显示的模块:
led_disp led
(
.clk(clk),
.disp_num(dis_num),
.ledseg(ledseg),
.ledcs(ledcs)
);
然后在这个led_disp动态显示的模块中再引用一个产生方波的模块,周期是10ms:
// MSEC:half cycle ,value range 0-255
wave_signal #(.MSEC(5)) w1
(
.clk(clk),
.reset_n(reset_n),
.signal_out(timeflag)
);
在led_disp里面,用wave_signal的输出信号signal_out作为动态刷新数码管的驱动信号,编译过程也没有错误,但是实际运行的时候就不行了,数码不亮。
然后我改了一下,直接在顶层定义波形发生的模块,然后把输出信号signal_out引入到数码管动态显示的模块中,如下:
wire timeflag;
wave_signal #(.MSEC(5)) w1
(
.clk(clk),
.reset_n(reset_n),
.signal_out(timeflag)
);
led_disp led
(
.clk(clk),
.disp_num(dis_num),
.ledseg(ledseg),
.ledcs(ledcs),
.timeflag(timeflag)
);
于是乎,这样就可以了,正常工作。
为什么wave_signal 、led_disp要并行才可以,led_disp中再用wave_signal就不行了?模块不能嵌套吗?
先谢谢各位。 |