0
以下是我的1位ALU,經驗證可以正常工作。現在我想將這個1位aLU用於8位alu,它需要通過一個測試平臺。到目前爲止,我編譯了一個8位的ALU代碼,但它似乎沒有工作。任何幫助?在Verilog中將ALU 1位轉換爲ALU 8位
module ALUSlice(A,B,CI,M,S,F,CO); //Code for 1-bit
input A,B,CI,M,S;
output F,CO;
wire [3:0] TF;
wire [3:0] TC;
FullAdder F1(TF[3],TC[3],A,B,CI);
assign TF[0] = A & B;
assign TF[1] = A | B;
assign TF[2] = ~A;
assign TC[2:0] = 0;
Dual4to1Mux Mux1(F,CO,{M,S},TF,TC);
endmodule
module ALU8Bit(S1,S0, A, B, CarryIn, CarryOut, F);//What I have so far
input [7:0] A,B;
input S1,S0,CarryIn;
output [7:0] F;
output CarryOut;
wire [7:0] C;
ALUSlice A0(F[0],C[0],A[0],B[0],CarryIn,S0,S1);
ALUSlice A1(F[1],C[1],A[1],B[1],C[0],S0,S1);
ALUSlice A2(F[2],C[2],A[2],B[2],C[1],S0,S1);
ALUSlice A3(F[3],C[3],A[3],B[3],C[2],S0,S1);
ALUSlice A4(F[4],C[4],A[4],B[4],C[3],S0,S1);
ALUSlice A5(F[5],C[5],A[5],B[5],C[4],S0,S1);
ALUSlice A6(F[6],C[6],A[6],B[6],C[5],S0,S1);
ALUSlice A7(F[7],CarryOut,A[7],B[7],C[6],S0,S1);
endmodule
因此對於下面的代碼行,我會用括號中的1s而不是0代碼編寫完全相同的代碼。 – itstgtc
仍然收到錯誤 – itstgtc
@itstgtc對於你的第一個問題,基本上是的。不像你在問題中那樣使用端口順序連接線,而是使用上面給出的語法顯式連接它們。雖然不是所有東西都只是一個'X [n]',你有'CarryIn'和'CarryOut',並且確保正確連接你的進位鏈。我不知道現在怎麼了,你能發佈關於你所看到的錯誤的更多細節嗎? – Unn