被加數 SW[3:0]
加數 SW[11:8]
前一級進位 SW[17]
和 LEDG[3:0]
進位 LEDG[4]
//需 Import pin assignments DE2_115_pin_assignments
module FA_4bit(
input [17:0] SW, // Toggle Switch[17:0]
output [8:0] LEDG, // LED Green
output [17:0] LEDR // LED Red
);
assign LEDR=SW;
full_add4(SW[3:0],SW[11:8],SW[17],LEDG[3:0],LEDG[4]);
endmodule
// Ch04 full_adder1.v
// 4位元全加法器 (閘層敘述)
module full_add4(A, B, Ci, S, Co);
input [3:0]A, B;
input Ci; // A, B, Ci 一位元輸入
output Co;
output [3:0]S; // S 和, Co 進位
wire [3:1] C;
fulladder fa1(A[0],B[0], Ci, S[0], C[1]) ;
fulladder fa2(A[1],B[1], C[1], S[1], C[2]) ;
fulladder fa3(A[2],B[2], C[2], S[2], C[3]) ;
fulladder fa4(A[3],B[3], C[3], S[3], Co ) ;
endmodule
module fulladder(A, B, Ci, S,Co );
input A, B, Ci; // A, B, Ci 一位元輸入
output Co, S; // S 和, Co 進位
and (AB, A, B);
and (ACi, A, Ci);
and (BCi, B, Ci);
or (Co, AB, ACi, BCi);
xor (S, A, B, Ci);
endmodule
沒有留言:
張貼留言