2 つの 8 ビット入力 (a と b) と 1 つの 2 ビット入力 (sel) を持つ、eightbit palu という Verilog モジュールを作成します。このモジュールの出力は、8 ビット信号 f と 1 ビット信号 ovf です。これらの出力の値は、操作を決定する sel 信号の値に基づいて変更する必要があります。
**s[1:0] f[7:0] ovf Description**
0 0 a + b (add) overflow a plus b
0 1 b (inv) 0 Bitwise inversion of b
1 0 a · b (and) 0 Bitwise AND of a and b
1 1 a | b (or) 0 Bitwise OR of a and b
上記の割り当てがあり、これまでのところ verilog にあるものは次のとおりです。
module eightbit_palu(input [7:0]a,
input [7:0]b,
input [1:0]sel,
output [7:0]f,
output ovf);
reg (f, ovf);
always @ (a, b, sel);
case(sel)
2’b00: f = a + b;
2’b01: f = ~b;
2’b10: f = a & b;
2’b11: f = a | b;
endcase
endmodule
私は Verilog を初めて使用するので、これが正しいかどうか、またはオーバーフロー値についてどうすればよいかわかりません。ヒント/提案はありますか?