아래 코드는 4bit Full Adder(덧셈기)를 표현한것으로
C0는 외부에서 들어오는 Carry 이고, 4bit A와 4bit B를 더해서
결과를 S, 거기에서 생기는 Carry를 C4에 넣는 코드이다.
아래 코드는 Behavior Level 로 작성한 코드이다.
Gate Level로 표현된 자료는 인터넷에 찾으면 된다.
module bit_adder(S,C4,A,B,C0);
input [3:0]A,B;
input C0;
output [3:0]S;
output C4;
input [3:0]A,B;
input C0;
output [3:0]S;
output C4;
reg [3:0]S;
reg C4;
always @ (A or B or C0)
begin
S = A + B + C0;
if ( A+B+C0 > 5’b01111)
C4 = 1’b1;
else
C4 = 1’b0;
end
endmodule
코드를 설명 하자면, A , B 또는 C0가 변경이 되면 아래에 있는 begin-end블럭을 실행
하게 되는데, A와 B 그리고 C0를 결과 S에 저장하고
그 셋 결과가 4 bit 1111보다 큰 결과가 나오면 Carry Out인 C4를 1로 출력하고
그보다 작으면 Carry Out인 C4를 0으로 출력하게 된다.
감사합니다 도움 많이 되었습니다.