4bit Adder and Subtractor(4비트 덧셈뺄셈기) Verilog HDL 코드

module Four_bit_adder_subtractor(S,C4,A,B,M);
    input [3:0] A,B;
    input M;
    output [3:0] S;
    output C4;
    reg [3:0]S;
    reg C4;

    always @ (A or B or M)
    begin
      if(M)
        begin
          S = A – B;
   if( A < B)
      C4 = 1’b0;
   else
            C4 = 1’b1;
        end

      else
        begin
          S = A + B;
          if( A+B > 5’b01111 )
            C4 = 1’b1;
          else
            C4 = 1’b0;
        end
    end
endmodule

위 코드는 4비트의 뺄셈과 덧셈이 동시에 가능한 모듈을 Verilog HDL코드로 작성한것으로

Behavior Model(동작수준모델)로 작성한것.

A와 B가 피 연산자 이고 결과는 4비트 S에 저장된다.

모드인 M에 따라서 덧셈 또는 뺼셈이 수행되는데, M이 1이면 뺄셈, M이 0이면 덧셈을 수행한다.

Always구문 안을 보자면

A 또는 B 또는 M이 변화할때 Always안의 블럭을 항상 수행하는데

M이 1이면 S = A – B를수행한다.

이때 A가 B보다 작으면 음수 결과가 나므로 Carry Out은 0 A가 B보다 크면 양수이므로 Carry Out 은 1로 나온다.

M이 0이면 S = A + B를 수행하는데, A와 B의 합이 4bit 1111를 넘어가면 Carry Out은 1

A와 B의 합이 4bit 1111보다 같거나 작으면 Carry Out은 0이다.

4bit Adder and Subtractor(4비트 덧셈뺄셈기) Verilog HDL 코드”의 4개의 댓글

  1. 로롱 댓글달기

    디지털 시스템 설계 실험에서 코딩이 필요했는데 단비같은 자료네요 ㅎㅎ
    고맙습니다 ^^

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.