Active HDL 12中Verilog顶层模块子模块无法连接无输出问题求助
故障原因
- 端口命名大小写不匹配:Verilog为大小写敏感语言,顶层模块定义的输入端口为
Mx1/Mx2/Mx3/Mx4(首字母M大写,第二个字母x小写),但在实例化And、Or子模块时,参数传入的是全大写的MX1/MX2/MX3/MX4,两者名称不匹配导致输入信号没有正确接入子模块,端口默认处于高阻态,最终无有效输出。 - Or模块逻辑实现错误:Or模块设计目标为实现或运算,但代码内赋值语句错误使用了与运算符
&,写为assign O2 = X1 & Y1;,应当替换为或运算符|,否则即使端口连接正确,输出逻辑也不符合设计预期。
修复代码片段
- 顶层模块实例化部分修改为:
And a1(.X (Mx1),.Y (Mx2),.O1 (interface1)); Or o1(.X1 (Mx3),.Y1 (Mx4),.O2 (interface2)); Xor x1(.X2 (interface1),.Y2 (interface2),.O3 (My));
- Or模块赋值语句修改为:
assign O2 = X1 | Y1;
内容的提问来源于stack exchange,提问作者MohammadReza
相关产品推荐
相关产品推荐

