本帖最后由 XLDZZ 于 2011-8-4 17:00 编辑
verilog 顶层模块调用子模块 子模块调用子模块的疑问
问题是这样的 我写了3个模块 M1 M2 M3
其中M1,2是子模块 M3是顶层模块
设计思想是想把输入信号SYSCLK,JDL(顶层模块定义的输入端口)通过M1模块产生CLK,JDL_N_O,
JDL_P_O,的输出信号(M1的输出信号 即通过内部wire连接到M2的输入端口,产生M2的输出信号
ST,在把ST通过内部wire连接到顶层模块M3的输出口
顶层模块的输入(即综合编译后的模块)口是SYSCLK,JDL(SYSCLK,JDL是子模块M1的输入端口)
输出口是ST(ST是子模块M2的输出端口).
子模块M1的输入口的信号是SYSCLK,JDL. 输出信号是CLK,JDL_N_O,JDL_P_O;
M1输出信号是子模块M2的输入信号(M2的输入信号是CLK,N1,P1) M2的输出信号
是顶层模块的输出信号ST
M1 I_M1
(
.SYSCLK (SYSCLK), //此信号在顶层模块信号列表中定义 在内部定义为wire
.JDL (JDL), //此信号在顶层模块信号列表中定义 在内部定义为wire
.CLK (CLK), //此信号在顶层模块信号列表中没有定义
//在内部定义为wire 用于驱动M2模块的时钟
.JDL_N_O (N), //此信号在顶层模块信号列表中没有定义 内部信号
//在内部定义为wire 用于M2模块的输入信号激励
.JDL_P_O (P) //此信号在顶层模块信号列表中没有定义 内部信号
//在内部定义为wire 用于M2模块的输入信号激励
);
M2 I_M2
(
.CLK (CLK), //内部信号
.N1 (N1 ), //内部信号
.P1 (P1 ), //内部信号
.ST (ST ) //M3顶层模块的输出
);
现在编译报错Error: Node instance "I_M2" instantiates undefined entity "M2"
以上还请高手指点 本人比较笨也比较菜鸟 |