代码连接了端口但依然提示 design has unconnected port
一个奇怪的警告,字面意思很清晰,有个端口未连接。
顶层
-
module
Top
-
(
-
input
wire wSysClk50M ,
-
input
wire wRstKey_n ,
-
...
-
input
wire wSDO //出问题 wire
-
);
-
-
...
-
-
Ctrl
Ctrl_inst
-
(
-
.wSysClk50M
(wSysClk50M ),
-
.wRstKey_n
(wRstKey_n ),
-
...
-
.wSDO
(wSDO ) //这里 端口 wSDO 连接到顶层模块的 wSDO
-
)
-
endmodule
Ctrl模块
-
module
Ctrl
-
(
-
input
wire wSysClk50M ,
-
input
wire wRstKey_n ,
-
...
-
input
wire wSDO
-
);
-
-
...
-
-
endmodule
根据代码,wSDO是连接到模块Ctrl的wSDO端口上的。但综合警告Ctrl_inst 的端口wSDO未连接。
发现是Vivado把Ctrl模块的 wire wSDO 优化掉了,但是端口依然存在。
解决办法 在Ctrl模块定义 wSDO语句前加(* DONT_TOUCH = "1" *) ,防止其被优化。
关于防止综合优化参考 Vivado防止信号被综合掉的三种方法。