호경

[개인스터디] 4-bit parallel Adder 본문

디지털회로설계/SoC,ASIC 설계

[개인스터디] 4-bit parallel Adder

rlaghrud1234 2023. 1. 2. 17:25

※시작에 앞서, 해당 내용은 서적 "VHDL과 반도체 회로설계"의 내용을 토대로 작성됐다.

※나는 Verilog HDL 코드로 작성해서 스터디를 진행했다.

 

1. 4-bit parallel Adder

A. Full Adder

Adder는 대부분 디지털회로에서 산술연산기로 사용이 되고 있다. Parallel Adder는 효율적인 덧셈기 중 하나에 해당한다.

 

우선 Full Adder의 논리회로는 다음과 같다.

Full adder

내용은 쉬우므로, 조금 색다른 내용(책에서 나온)을 다뤄 보고자 한다.

 

[Gate 개수 세기]

  • XOR : 3 Gates
  • AND, OR : 2 Gates

따라서 한 개의 Full adder에 들어가는 게이트는 12 Gates가 된다.

 

[Delay]

1개의 FA 당 두 개의 논리 회로를 지나가서 총 두번의 동작 과정이 필요하다.

 

B. 4-bit parallel adder

4-bit parallel adder

A 목차에서 셌던 Gate의 개수는 아래와 같다.

 

[Gate 개수 세기]

  • XOR : 3 Gates
  • AND, OR : 2 Gates

Full adder가 4개가 parallel 한 형태로 들어가 있기 때문에, 4 bit x 12 gates를 해서 총 48 gates의 회로를 구성하게 된다.

 

 

A 목차에서 계산했던 Delay는 아래와 같다.

 

[Delay]

1개의 FA 당 두 개의 논리 회로를 지나가서 총 두번의 동작 과정이 필요하다.

 

Full adder가 4개가 parallel한 형태로 들어가 있기 때문에, 2x4 = 8번의 동작 과정이 계산에 필요하다.

 

2. Verilog HDL

//4-bit Parallel Adder
module Parallel_Adder(
	 A0, A1, A2, A3,
	 B0, B1, B2, B3,
	 Ci,
	 S0, S1, S2, S3,
	 Cout
	 );
	 
	input A0, A1, A2, A3;
	input B0, B1, B2, B3;
	input Ci;
	
	output S0, S1, S2, S3;
	output Cout;
	
	wire C0, C1, C2;
	
	F_A FA1(A0, B0, Ci, S0, C0);
	F_A FA2(A1, B1, C0, S1, C1);
	F_A FA3(A2, B2, C1, S2, C2);
	F_A FA4(A3, B3, C2, S3, Cout);

endmodule

//Full Adder
module F_A(
	A0, B0, Ci,
	Sum, Carry
	);

	input A0;
	input B0;
	input Ci;
	
	output Sum;
	output Carry;
	
	wire s1;
	wire c1;
	wire c2;
	
	//wire
	xor(s1, A0, B0);
	and(c1, s1, Ci);
	and(c2, A0, B0);
	
	//Sum
	xor(Sum, s1, Ci);
	
	//Carry
	or(Carry, c1, c2);

endmodule

 

3. RTL Viewer

RTL Viewer

 

4-bit Parallel Adder는 초창기에는 거의 모든 회로에서는 사용됐으나,

최근 들어서는 Delay 시간과 효율성을 고려한 여러 좋은 알고리즘을 가진 회로들이 있어 사용하지는 않는다. 그래도 매우 기초적인 내용이니 연습해 봤다.

Comments