Term Project – 4 bit ALU DEGITAL LOGIC CIRCUIT 1
Jan 21, 2016
Term Project – 4 bit ALUDEGITAL LOGIC CIRCUIT
1
Contents
I. 디지털 시스템 설계 대상 선정
II. 디지털 시스템 설계 과정
III. 설계된 논리도
IV. Pspice 시뮬레이션
V. 하드웨어 제작
VI. 결과 고찰
2
시스템 설계 대상 선정
3
설계 대상 선정
• 조합논리회로와 동기식 순차논리회로를 종합적으로 포함하고 있음 .
• ALU 는 기초적인 디지털 계산기에서부터 컴퓨터의 CPU 에 이르기까지 마이크로 프로세서라 불릴 수 있는 곳에는 빠질 수 없는 소자 .
• CPU 에 가장 기본적인 부분인 ALU 부분을 제작하기로 함 .
① clock 에 의해 하나씩 증가되는 4bit 의 이진수 A, B 에 대해서 산술연산과 논리연산을 수행할 수 있는 회로를 설계
② 연산선택단자와 출력선택단자에 5 비트 카운터를 연결하여 입력한 두수에 대해서 14 가지의 연산결과를 보여줄 수 있도록 제작
디지털 시스템 설계 과정
1. 조합 논리 회로 설계
4
Arithmetic unit
• ALU 는 세 개의 영역으로 구분질 수 있다 . 그 중 하나가 연산을 담당 .
• 4× 1Multiplexer 와 Full Adder 로 구성 .
• A+B, A+B+1, A-B-1, A-B, Transfer A, Increment A, Decrement A, Transfer A 로 총 8 가지의 연산을 수행
디지털 시스템 설계 과정
1. 조합 논리 회로 설계
5
Arithmetic unit
D[0..3]
Co
B2
0
S0
0
0
D2A2
U1B
74HC04
3 4
Multiplexer_1
<Value>
S0S1
0123
Y
U1C
74HC04
5 6
B0
Ci
D3
A[0..3]
B[0..3]
0
0
FA_4
Full Adder
A
B
Ci
Co
D
1
D0
0
0
Multiplexer_3
<Value>
S0S1
0123
Y
0
0
0
1
D[0..3]
1
FA_1
Full Adder
A
B
Ci
Co
D
U1D
74HC04
9 8
B3
1
1 FA_3
Full Adder
A
B
Ci
Co
D
A3
Multiplexer_4
<Value>
S0S1
0123
Y
S1
1
0
FA_2
Full Adder
A
B
Ci
Co
D
S1DSTM3
A0
0
D1A1
A[0..3]
0
Multiplexer_2
<Value>
S0S1
0123
Y
B1
1
U1E
74HC04
11 10
U1A
74HC04
1 2
B[0..3]
0
0
디지털 시스템 설계 과정
1. 조합 논리 회로 설계
6
Arithmetic unit
Ci
A
U3B
74HC08
4
56
U3A
74HC08
1
23
U2A
74HC386
1
23
D
Co
U2B
74HC386
5
64B
U4A
74HC32
1
23
U13
AND3
142
3
3
U10
AND3
142
3U11
OR4
12
5342
U6D
74HC04
98
S0
U12
AND3
142
3
1
Y
U6E
74HC04
1110
0
S1
U9
AND3
142
3
Multiplexer
FullAdder
디지털 시스템 설계 과정
1. 조합 논리 회로 설계
7
Logic Unit 설계
• 논리 연산을 담당하는 Logic unit
•. 두 수의 AND, OR, EX-OR, NOT 연산을 수행
•연산하고자 하는 비트만큼의 해당 GATE 들과 4× 1 Multiplexer 로 이루어진다 .
디지털 시스템 설계 과정
1. 조합 논리 회로 설계
8
Logic Unit 설계
E[0..3]
S1S0
B[0..3]
A[0..3] A3
B3
A0
A1
A2
1
B[0..3]
0
B0
1
E3
B1
B2
E[0..3]
E2
0
E1
0
E0
0
U5A
74HC08
1
23
U4B
74HC32
45 6
U1F
74HC04
13 12
U2C
74HC386
89 10
A[0..3]
0
1
U2D
74HC386
12
13 11
U6A
74HC04
1 2
1
0
0
U4C
74HC32
91
0 8
U5B
74HC08
4
56
0
U7A
74HC386
12 3
U6B
74HC04
3 4
0
1
1
U4D
74HC32
12
13 11
U5C
74HC08
9
108
0
Multiplexer_2
<Value>
S0S1
0123
Y
Multiplexer_1
<Value>
S0S1
0123
Y
Multiplexer_3
<Value>
S0S1
0123
Y
Multiplexer_4
<Value>
S0S1
0123
Y
U7B
74HC386
56 4
U8A
74HC32
12 3
U6C
74HC04
5 6
0
0
0
U5D
74HC08
12
1311
1
디지털 시스템 설계 과정
1. 조합 논리 회로 설계
9
Shifter 설계
• 비트 Shift 연산은 low 레벨 language 프로그래밍에서 필수적으로 빈번히 사용되는 연산중의 하나
• 연산속도에 영향을 미치므로 ALU 에 포함되는 것이 일반적
디지털 시스템 설계 과정
1. 조합 논리 회로 설계
10
Shifter 설계
S2
SH[0..3]
A[0..3] MUX
MUX
S201
Y
0
MUX_3
MUX
S201
Y
MUX_2
MUX
S201
Y
MUX_1
MUX
S201
Y
S1DSTM2
S1DSTM1
0
A1
A0
A3
A2
SH3
SH2
SH1
SH0
0
A2
0
A1
디지털 시스템 설계 과정
1. 조합 논리 회로 설계
11
QUAD-MUX 설계
• Arithmetic, Logic, Shift 이 3 가지 연산을 수행하고 이들 값 중에 한가지를 출력
디지털 시스템 설계 과정
2. 순차 논리 회로 설계
12
selection input 설계
• 상태 천이도
Present State Next State Flip Flop inputs
S3 S2 S1 S0 Cin S3 S2 S1 S0 Cin D4 D3 D2 D1 D0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1
0 0 0 0 1 0 0 0 1 0 0 0 0 1 0
0 0 0 1 0 0 0 0 1 1 0 0 0 1 1
0 0 0 1 1 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 1 0 1 0 0 1 0 1
0 0 1 0 1 0 0 1 1 0 0 0 1 1 0
0 0 1 1 0 0 0 1 1 1 0 0 1 1 1
0 0 1 1 1 0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 1 0 0 1 0 1 0
0 1 0 1 0 0 1 1 0 0 0 1 1 0 0
0 1 1 0 0 0 1 1 1 0 0 1 1 1 0
0 1 1 1 0 1 0 0 0 0 1 0 0 0 0
1 0 0 0 0 1 1 0 0 0 1 1 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
• 상태표
00 01 11 10
00
01
11 X X 1
10 X X
디지털 시스템 설계 과정
2. 순차 논리 회로 설계
13
selection input 설계
• 14 진 카운터의 입력조건
• 각 플립플롭에 대한 입력조건을 카르노맵으로써 간소화
S3 = 0
00 01 11 10
00 1 X X X
01 X X X X
11 X X X X
10 X X X
S3 = 1
D4 = S0S1S2S3' + S0'S1'S2'S3
디지털 시스템 설계 과정
2. 순차 논리 회로 설계
14
설계된 디지털 시스템의 출력 F 에 대한 진리표 Next State
Outputs
F[0..3]S3 S2 S1 S0 Cin
0 0 0 0 0 A + B
0 0 0 0 1 A + B + 1
0 0 0 1 0 A - B - 1
0 0 0 1 1 A - B
0 0 1 0 0 Transfer A
0 0 1 0 1 Increment A
0 0 1 1 0 Decrement A
0 0 1 1 1 Transfer A
0 1 0 0 0 A AND B
0 1 0 1 0 A OR B
0 1 1 0 0 A XOR B
0 1 1 1 0 A'
1 0 0 0 0 shift right
1 1 0 0 0 shift left
디지털 시스템 설계 과정
2. 순차 논리 회로 설계
15
설계된 디지털 시스템의 출력 F 에 대한 진리표
•Selection 에 의해서 S1, S0 가 각각 HIGH, LOW 로 변하면서 연산 수행 .•S2 는 입력 A 를 shift 시키는데 사용된다 . S3, S2 는 Arithmetic 연산과 Logic 연산의 출력을 결정하여 최종 출력 .
•Cin 은 Arithmetic 연산을 수행하는 동안 여러 가지 연산 수행 .
디지털 시스템 설계 과정
2. 순차 논리 회로 설계
16
설계된 Selection 회로도
디지털 시스템 설계 과정
3. 설계된 회로도
17
설계한 각 부분의 회로를 하나의 회로도로 설계
•4bit 버스선를 이용하여 X[0..3] 까지 입력을 결정 .
•Selection 에 의해 수행해야 할 연산을 선택
•Arithmetic, Logic, Shift 회로에서 연산 .
•결과 값을 QUAD_MUX 에 의해서 출력 .
디지털 시스템 설계 과정
3. 설계된 회로도
18
설계한 각 부분의 회로를 하나의 회로도로 설계
S4DSTM2
Implementation = B
S4DSTM1
Implementation = A
V
V
V
V
V
V
V
V
Arithmetic
Arithmetic
A[0..3]
B[0..3]
CiCo
S0
S1
D[0..3]
A[0..3]
B[0..3]
Ci
X
Selection
Sel
Ci
S0
S1
S2
S3
S0
X
S1
X
D[0..3]
Logic
Logic
A[0..3]
B[0..3]
S0
S1
E[0..3]E[0..3]
Shift
Shift
A[0..3]
SH[0..3]
S2SH[0..3]
S2
QUAD_MUX
QUAD
S2
S3
D[0..3]
E[0..3]
SH[0..3]
SH[0..3]
F[0..3]
S3X
F[0..3]
X
CoX
PSPICE Simulation
1. PSPICE simulation
19
완성된 회로의 simulation
•입력 A, B 를 각각 4, 1 로 하고 Selection 에서 14 가지 연산에 대한 값을 14 진 카운터로 만들어내고 Selection 이 변화함에 따라 각각의 연산을 수행한다 .
PSPICE Simulation
2. PSPICE simulation result
20
완성된 회로의 simulation 결과
하드웨어제작
1. 하드웨어 제작
21
Arithmetic unit 제작
•4× 1Multiplexer 와 Full Adder 로 구성
소요재료
종류 재료명 수량
Logic IC chip
74LS04 1EA
74LS08 2EA
74LS32 1EA
74LS86 2EA
74LS153 2EA
기 타
16PIN 소켓 8EA
지지대 4SET
동판 1EA
하드웨어제작
1. 하드웨어 제작
22
Logic unit 제작
•4× 1Multiplexer 와 AND, OR, XOR, NOT 게이트로 구성
소요재료
종류 재료명 수량
Logic IC chip
74LS04 2EA
74LS08 2EA
74LS32 2EA
74LS86 2EA
74LS153 4EA
기 타
16PIN 소켓 12EA
지지대 4SET
동판 1EA
하드웨어제작
1. 하드웨어 제작
23
Shift unit 제작
• 2× 1Multiplexer 로 구성 (2× 1Multiplexer 게이트로써 구성 )
소요재료
종류 재료명 수량
Logic IC chip
74LS04 1EA
74LS08 2EA
74LS32 1EA
기 타
16PIN 소켓 4EA
지지대 4SET
동판 1EA
하드웨어제작
1. 하드웨어 제작
24
QUAD_MUX unit 제작
• 4× 1Multiplexer 로 구성
소요재료
종류 재료명 수량
Logic IC chip 74LS153 4EA
기 타
16PIN 소켓 4EA
지지대 4SET
동판 1EA
하드웨어제작
1. 하드웨어 제작
25
Selection unit 제작
• D 플립플롭 , AND, OR 게이트로 구성
소요재료
종류 재료명 수량
Logic IC chip
74LS74 4EA
74LS32 1EA
74HC21 5EA
74LS11 3EA
74HC08 2EA
74HC4075 1EA
HEF4072BP 1EA
기 타
16PIN 소켓 17EA
지지대 4SET
동판 1EA
하드웨어제작
2. 전체 하드웨어 제작
26
4Bit ALU unit 제작
• 위에서 제작한 각 부분을 조합하여 ALU unit 제작
• 4 단 QAUD_MUX unit, 3 단 Arithmetic unit, 2 단 Shift unit, 1 단 Logic unit, 스위치회로
• 전체 하드웨어 제작 모습
결과고찰
27
Arithmetic, Logic, Shift, Selection, QUAD_MUX 5 가지 부분으로 나누어서 생각 하면서 각각의 세부회로를 구성 .
회로 설계 중 산술 , 논리 연산 부분은 Mutiplexer, Full Adder, 게이트로써 설계하였는데 강의시간에 언급되었던 사항을 기초로 하여 설계하는데 도움이 되었다 .
앞으로는 곱셈 , 나눗셈 연산을 추가하고 메모리에 저장하는 기능도 추가해서 제작을 해보면 더 좋은 경험이 되리라 생각된다 .
Thank you
28