今私はクロックゲーティングを以下のように実装しようとしています。 しかし、なぜ私はDe信号を扱うのか理解できません。シーケンシャルのalwaysブロックにelse文が必要ですか?
module ClockGating(
input wire rst_n,
input wire clk,
input wire De,
input wire InReg,
output reg OutReg
);
always @(posedge clk or negedge rst_n)
begin
if (!rst_n) begin
OutReg <= 0;
end
else begin
if (De) begin
OutReg <= InReg;
end
else
OutReg <= OutReg;
end
end
endmodule
しかし、私はelse文なしで使用するかどうか知りたいですか? else文なしで使用できますか?
module ClockGating(
input wire rst_n,
input wire clk,
input wire De,
input wire InReg,
output reg OutReg
);
always @(posedge clk or negedge rst_n)
begin
if (!rst_n) begin
OutReg <= 0;
end
else begin
if (De) begin
OutReg <= InReg;
end
end
endmodule
これは私の生徒がしばしば苦労する質問です。 –
はい、 'else'文を削除することができます。' OutReg'は、 'reg' –