你能幫我們做一個32位ALU並解釋一些事情嗎? 想做的事:32位ALU的Verilog設計
0 bitwise AND: out = inA & inB.
1 bitwise OR: out = inA | inB.
2 addition: out = inA + inB.
6 subtraction: out = inA – inB //2's complement
7 Set On Less Than: out = ((inA < inB)?1:0)
12 NOR: out = ~(inA | inB)
迄今所做的:
module ALU #(parameter N=32)(ALUOut, Zero, ALUinA, ALUinB, ALUop);
output [N-1:0] ALUOut;
reg [N-1:0] ALUOut;
output Zero;
reg Zero;
input [3:0] ALUop;
input [N-1:0] ALUinA, ALUinB;
always @(ALUinA or ALUinB or ALUop)
begin
case (ALUop)
4'b0000: ALUOut = ALUinA & ALUinB ; // 0:AND
目前尚不清楚你卡在哪裏以及你不明白的東西。 – abrunet
想要做其他代碼,不知道該怎麼做,因爲我對我看過的所有這些視頻/帖子有點困惑。不知道好的verilog也知道我的代碼是否正確:/另外我不知道如何使用verilog中的2完成來編寫se減法 –
這與之間有什麼區別: 4'b0010:ALUOut [N-1 :0] = ALUinA [N-1:0] + ALUinB [N-1:0]; 而這個: 4'b0010:ALUOut = ALUinA + ALUinB; –