在下面的模块中,理想情况下,cnt、width 和 start 应该是 inout 端口,而不是输出端口。
但我尝试将这些端口作为输出端口,但我仍然可以运行它而不会出现任何错误。那么在 Verilog 中 inout 和 output 端口可以互换使用吗?
如果不是,那么确切的标准是什么,必须使用 inout 端口(在这种情况下不能使用输出端口)?
module (clk, rst, cnt, start, width, signal);
input clk, rst, signal;
output reg [11:0] cnt, width;
output reg start;
always @(posedge clk or negedge rst)
begin
if(~rst)
begin
cnt <= 0;
start = 0;
width <= 'h271;
end
else
begin
if(signal)
begin
width <= (start) ? width : 'h271;
start = 1;
end
cnt <= (start) ? (cnt + 1) : cnt;
end
end
endmodule
注意 - 我知道,对于 inout 端口,我需要修改代码,因为 inout 端口不能是 reg 类型。但我在这里只询问端口类型。