본문내용
1. 디지털 논리 실험 및 설계
1.1. ALU 74181을 이용한 이진수 연산
1.1.1. 이진수 덧셈 구현
ALU 74181은 총 24개의 핀을 가지고 있으며, A0~A3와 B0~B3의 입력을 받아 이진수 연산을 수행할 수 있다. Cn으로 Carry in 값을 조절하고, M과 S0~S3로 모드를 선택하여 Cn+4로 Carry out 값을, F0~F3로 결과를 출력한다. 이때 A, B, F는 ACTIVE LOW로 작동하므로 유의해야 한다.
ALU의 덧셈 기능을 이용하기 위해서는 (M,S3,S2,S1,S0,Cn)에 (0,1,0,0,1,0)을 입력해야 한다. 예를 들어 (A3, A2, A1, A0)에 (1, 1, 1, 1)을 (B3, B2, B1, B0)에 (1, 1, 1, 0)을 입력하면, 이는 1111(2) + 1110(2)를 구현한 것이다. 그 결과 (Cout, F3, F2, F1, F0) = (1, 1, 0, 1, 1)이 출력되지만, F는 ACTIVE LOW로 작동하기 때문에 실제 결과는 10100(2)이다. 즉, ALU 74181을 활용하면 네 자리 이진수의 덧셈을 쉽게 구현할 수 있다.
1.1.2. 이진수 비교 및 판별
ALU 74181을 이용하여 두 개의 네 자리 이진수가 같은지를 판별할 수 있다. 이를 위해 XOR 기능을 사용한다. XOR 기능을 사용하면 두 입력이 같으면 1이 출력되고, 다르면 0이 출력된다. 이진수 A와 B가 입력되면 ALU 74181은 A와 B를 비교하여 그 결과를 출력한다.
이때 ALU 74181은 ACTIVE LOW로 작동하므로 주의해야 한다. 즉 A와 B가 같으면 출력인 F가 (1, 1, 1, 1)이 되고, A와 B가 다르면 (0, 0, 0, 0)이 된다. 따라서 ALU 74181의 XOR 기능을 이용하면 간단히 두 개의 네 자리 이진수가 같은지 판별할 수 있다.
예를 들어 A = (0, 1, 0, 0)과 B = (1, 0, 1, 0)을 입력하면 출력 F는 (0, 0, 0, 1)이 된다. F가 ACTIVE LOW이므로 이는 A와 B가 다르다는 것을 의미한다. 반면 A = (0, 1, 0, 0)과 B = (0, 1, 0, 0)을 입력하면 출력 F는 (1, 1, 1, 1)이 된다. 이는 A와 B가 같다는 것을 나타낸다.
따라서 ALU 74181의 XOR 기능을 활용하면 두 개의 네 자리 이진수가 같은지 여부를 쉽게 판별할 수 있다.
1.1.3. 이진수 뺄셈 구현
이진수 뺄셈은 2의 보수를 이용하여 구현할 수 있다. 음수를 보수로 표현하여 더하는 방식으로 뺄셈을 처리하는 것이다. 예를 들어 6(10) - 4(10) = 2(10)을 이진수로 표현하면 0110(2) - 0100(2) = 0010(2)이다. 이때 0100(2)를 2의 보수로 바꾸어 더하는 식으로 변환하면 0110(2) + 1100(2) = 10010(2)가 되며, 이때 MSB를 버리면 0010(2)의 올바른 결과를 얻을 수 있다.
이와 같이 복잡한 과정을 생략하고 ALU를 사용하여 네 자리 이진수 뺄셈을 구현할 수 있다. ALU의 'A MINUS B' 기능을 이용하기 위해서는 (M,S3,S2,S1,S0,Cn)에 (0,0,1,1,0,1)을 입력해주면 된다. 예를 들어 (A3, A2, A1, A0)에 (1, 0, 0, 1)을, (B3, B2, B1, B0)에 (1, 0, 1, 1)을 입력하면 0110(2) - 0100(2)를 구현한 것이다. 이 결과로 (F3, F2, F1, F0) = (1, 0, 1, 0)이 출력되며, F는 ACTIVE LOW로 작동하므로 실제 결과는 0010(2)이다.
1.1.4. 응용 실험 (1): A MINUS B MINUS 1
ALU 74181을 이용한 A MINUS B MINUS 1
ALU 74181은 다양한 산술 및 논리 연산을 수행할 수 있는 통합 회로이다. A MINUS B MINUS 1 기능을 구현하기 위해서는 ALU 74181의 모드 선택 핀(M, S0~S3)을 적절히 설정해야 한다.
구체적으로, A MINUS B MINUS 1 기능을 수행하기 위해서는 (M, S3, S2, S1, S0, Cn)에 (0, 0, 1, 1, 0, 0)을 입력해야 한다. 이때 A와 B는 ACTIVE LOW로 작동하므로 (A3, A2, A1, A0)에 (0, 1, 0, 0)을, (B3, B2, B1, B0)에 (1, 0, 1, 0)을 각각 입력한다.
이는 1011(2) - 0101(2) - 1(2)를 구현한 것이다. 즉, 10진수로 11 - 5 - 1 = 5를 계산하는 것과 동일하다.
그 결과, (F3, F2, F1, F0) = (1, 0, 1, 0)이 출력된다. F는 ACTIVE LOW로 작동하므로, 실제 결과는 0101(2)이다. 이는 1011(2) - 0101(2) - 1(2) = 0101(2)와 일치하는 것을 확인할 수 있다.
이처럼 ALU 74181을 이용하면 이진수 연산을 간단하게 구현할 수 ...