일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 디지털회로설계
- 자습포스팅
- 반도체교육
- 베르
- Rectifier
- 회로개발
- 게임개발
- pn junction
- 반도체소자교육
- ASIC설계
- 전자공학
- SoC설계
- 물리전자
- diode
- 언리얼엔진4
- 참고
- 개인스터디
- 반도체기초교육
- UE4
- 전자공학부
- 하이포2기
- 다이오드
- 전자회로
- 반도체물성
- 자습
- SK하이닉스
- UnrealEngine4
- 베르의게임개발유튜브
- 반도체공정교육
- 자습목적포스팅
- Today
- Total
호경
[개인스터디] 4-bit parallel Adder 본문
※시작에 앞서, 해당 내용은 서적 "VHDL과 반도체 회로설계"의 내용을 토대로 작성됐다.
※나는 Verilog HDL 코드로 작성해서 스터디를 진행했다.
1. 4-bit parallel Adder
A. Full Adder
Adder는 대부분 디지털회로에서 산술연산기로 사용이 되고 있다. Parallel Adder는 효율적인 덧셈기 중 하나에 해당한다.
우선 Full Adder의 논리회로는 다음과 같다.
내용은 쉬우므로, 조금 색다른 내용(책에서 나온)을 다뤄 보고자 한다.
[Gate 개수 세기]
- XOR : 3 Gates
- AND, OR : 2 Gates
따라서 한 개의 Full adder에 들어가는 게이트는 12 Gates가 된다.
[Delay]
1개의 FA 당 두 개의 논리 회로를 지나가서 총 두번의 동작 과정이 필요하다.
B. 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
4-bit Parallel Adder는 초창기에는 거의 모든 회로에서는 사용됐으나,
최근 들어서는 Delay 시간과 효율성을 고려한 여러 좋은 알고리즘을 가진 회로들이 있어 사용하지는 않는다. 그래도 매우 기초적인 내용이니 연습해 봤다.
'디지털회로설계 > SoC,ASIC 설계' 카테고리의 다른 글
[개인스터디] Loadable Counter and Test Bench (0) | 2023.01.08 |
---|---|
[개인스터디] CLA와 16-bit GCLA (0) | 2023.01.05 |
[개인스터디] Mux using NAND (0) | 2023.01.02 |
[연구심화실습] Altera Cyclone II를 이용한 연습 프로젝트 (0) | 2023.01.01 |
[시스템 IC] 팀 프로젝트 - 저전력 칩 설계 (1) | 2023.01.01 |