打印

求助,verilog中多个模块的引用

[复制链接]
2636|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flyriz|  楼主 | 2012-10-24 15:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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就不行了?模块不能嵌套吗?
先谢谢各位。

相关帖子

沙发
Backkom80| | 2012-10-24 16:36 | 只看该作者
我是不是可以这么理解,你的第一种方法中wave_signal模块是包含在led这个模块中的?
那么有一疑问,wave_signal模块的reset_n这个复位端口在你led模块中是如何接的?
猜测第一种方法中wave_signal模块的reset_n没有接,该模块一直复位着

使用特权

评论回复
板凳
flyriz|  楼主 | 2012-10-24 17:46 | 只看该作者
2# Backkom80 果然是这个原因。唉,是我粗心把这里落掉了,居然也能编译通过。非常感谢!

使用特权

评论回复
地板
Backkom80| | 2012-10-25 08:00 | 只看该作者
呵呵,:)

使用特权

评论回复
5
GoldSunMonkey| | 2012-10-25 17:10 | 只看该作者
呵呵,:)
Backkom80 发表于 2012-10-25 08:00
贝壳,厉害啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

100

主题

439

帖子

7

粉丝