以下のモジュールでは、理想的には cnt, width & startを出力ポートではなく、入力ポートにする必要があります。
しかし、これらのポートを出力ポートとして試してみましたが、それでもエラーなしで実行できます。では、Verilog では 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 タイプにできないため、コードを変更する必要があることはわかっています。しかし、私はここでポートの種類だけについて尋ねています。