설계실습 9. 4-bit adder 회로 설계요약논리회로의 기본적인 디지털 회로라고 할 수 있는 전가산기 회로에 대해 실험을 하였다. 전가산기 회로는 피가수, 가수, 자리올림수의 3가지 입력과 합, 자리올림수의 2가지 출력으로 이루어져있다. 우리 실험에서는 XOR Gate를 사용하여 전가산기 회로를 구성하였고 입력을 담당하는 스위치에는 5 V의 전압을 걸어주었다. 구성한 회로는 전가산기의 진리표처럼 잘 나왔고 전압을 측정하지 않았지만 LED가 켜진 부분은 5 V의 전압이 걸렸을 것이다. 전가산기의 기능은 입력들이 모두 다 0이면 출력은 모두 0이고, 입력들 중 하나가 1이면 S(합)만 1, 입력들 중 2개가 1이면 자리 올림수(Cout)만 1, 입력들이 모두 1이면 출력들이 모두 1이다.1. 서론전가산기는 피가수, 가수, 하위 자리에서 온 자리 올림수의 3개의 디지털 입력을 받고 합과 상위 자리로 갈 자리올림수의 2개의 디지털 출력을 생성한다. 전가산기 회로를 구성함에 있어서 XOR Gate 2개, AND Gate 2개, OR Gate 1개가 필요하였다. 입력과 출력의 관계를 식으로 표현해 보면 S = AOPLUS BOPLUS Cin이고 Cout = A·B + Cin·(AOPLUS B) 이다. 보고서에 사용된 그림은 브레드보드에 구성된 회로를 직접 촬영한 사진들이다.2. 설계실습 내용 및 분석9-4-2 설계한 전가산기 회로의 구현(XOR gate)설계실습계획서에서 그린 XOR gate를 이용한 다단계 전가산기 회로를 토글 스위치와 LED를 추가하여 설계 및 구현하여라. 구현된 회로의 입력 단자와 출력 단자의 전압을 측정하여 아래의 표에 기술하여라. 측정된 전압이 토글스위치와 LED 값과 일치하는지 확인하여라.→ [그림 1]과 같은 회로를 구성하였다. 사진에서 스위치의 빨간색 LED는 입력신호 A, B를 나타낸 것이고 스위치의 초록색 LED는 Cin을 나타낸 것이다. 또한 출력에서의 위쪽 LED는 S를 나타낸 것이고 아래 LED는 Cout을 나타낸 것이다. 스위치에는 5 V의 전압을 주었다.[그림 1] A = 0, B = 0, Cin = 0 / S = 0, Cout = 0[그림 2] A = 1, B = 0, Cin = 0 / S = 1, Cout = 0[그림 3] A = 0, B = 1, Cin = 0 / S = 1, Cout = 0[그림 4] A = 0, B = 0, Cin = 1 / S = 1, Cout = 0[그림 5] A = 1, B = 1, Cin = 0 / S = 0, Cout = 1[그림 6] A = 1, B = 0, Cin = 1 / S = 0, Cout = 1[그림 7] A = 0, B = 1, Cin = 1 / S = 0, Cout = 1[그림 8] A = 1, B = 1, Cin = 1 / S = 1, Cout = 1ABCinSCoutOFFOFFOFFOFFOFFOFFOFFONONOFFOFFONOFFONOFFOFFONONOFFONONOFFOFFONOFFONOFFONOFFONONONOFFOFFONONONONONONABCinSCout0**************************1011100111111[표 1] [전가산기의 진리표]→ [표 1]은 실험한 내용을 바탕으로 스위치에 따른 LED의 On Off를 나타낸 것이다. 실험을 하면서 입력 · 출력 전압을 측정하지는 못하였고 LED의 불이 켜지는지 꺼지는지를 확인하였다. LED가 On 일 때의 전압을 측정하면 약간의 오차는 발생할 수 있으나 약 5 V가 나올 것이다. [표 1]은 우리가 알고 있는 전가산기의 진리표와 동일함을 알 수 있다. (진리표의 0 = LED Off, 진리표의 1 = LED On) 이를 통해 알 수 있는 점은 첫 번째로 A = B = Cin = 0 이면 S = Cout = 0 임을 알 수 있고 두 번째는 A, B, Cin 중 하나면 1 이면 S = 1, Cout = 0인 점, 세 번째로는 A, B, Cin 중 2개가 1 이면, S = 0, Cout = 1인 점, 마지막으로는 A、B, Cin 모두 1 이면 S = Cout = 1인 점을 알 수 있었다.3. 결론 및 검토사항9-5-1 본 설계실습에서 무엇을 하였으며 그 결과는 어떤가? 수치를 포함하여 요약한다.→ 논리회로의 기초적인 디지털 회로인 전가산기 회로에 대해 실험을 하였다. 전가산기 회로는 A(피가수), B(가수), Cin(자리올림수)의 3가지 입력과 S(합), Cout(자리올림수)의 2가지 출력으로 이루어져있다. 우리 실험에서는 XOR Gate와 AND Gate, OR gate를 사용하여 전가산기 회로를 구성하였고 입력을 담당하는 스위치에는 5 V의 전압을 걸어주었다. 입력과 출력단자에 LED를 부착하고 3개의 스위치를 각각 ON, OFF 하며 8가지의 입력을 통해 실험을 하였다. 실험을 해보니 입력들이 모두 다 0이면 출력은 모두 0이고, 입력들 중 하나가 1이면 S(합)만 1, 입력들 중 2개가 1이면 자리 올림수(Cout)만 1, 입력들이 모두 1이면 출력들이 모두 1인 것을 알 수 있었다. 입력과 출력의 전압을 측정하지는 못했지만 대략 5 V의 전압이 측정될 것이라고 예상이 된다. 입력과 출력의 관계를 식으로 표현해 보면 S = AOPLUS BOPLUS Cin이고 Cout = A·B + Cin·(AOPLUS B) 이다.9-5-2 설계실습계획서에서 설계한 회로와 실제 구현한 회로의 차이점을 비교하고 이에 대한 이유를 서술한다.→ 큰 차이점은 없었으나 단지 XOR Gate나 AND Gate칩인 74HC86, 74HC08 안에 각각 4개씩 Gate가 있다. 따라서 1개의 칩을 사용하여 회로를 구성하였기 때문에 설계실습에서 설계한 회로처럼 크게 복잡한 형태는 나오지 않은 느낌이다.
설계실습13 결과보고서(패턴인식기 설계)2019.11.27 = 20 + 19 + 11 + 27 = 77 이지만 57로 설정. 57 = 111001(2)이다.State/output table111001(2)XMeaningS01ZipAA,0B,01BA,0C,011CA,0D,0111DE,0D,01110EF,0B,011100FA,0G,1111001GA,0C,0Transition/output table111001(2)XQ1 Q2 Q3S01000A000,0001,0001B000,0010,0010C000,0011,0011D100,0011,0100E101,0001,0101F000,0110,1110G000,0010,0Q1, Q2, Q3가 111인 경우일 때는 값을 알 수 없기 때문에 reset 시켜야 한다. Reset을 위해 active low reset을 사용하는 CLR단자에 Q1, Q2, Q3를 AND gate와 NOT gate를 이용하여 연결했다. 111이 나올 경우는 초기값으로 지정될 때 밖에 없다. 한번 reset되면 111은 나오지 않기 때문에 Karnaugh map에서 111일 경우를 모두 X(unknown)로 사용한다.D1의 Karnaugh mapQ2 Q3 X Q*************00010010111XX0100000D1 = X’Q1Q2’Q3’ + X’Q2Q3 + XQ1Q3D2의 Karnaugh mapQ2 Q3 X Q*************00010011110XX1100011D2 = XQ2 + XQ2’Q3D3의 Karnaugh mapQ2 Q3 X Q*************11010000110XX1100001D3 = Q1Q2’Q3’ + XQ2’Q3’ + XQ1’Q2MAX = XQ1Q2’Q3
설계실습11 예비보고서(카운터 설계)11-3 설계실습 계획서11-3-1 4진 비동기 카운터이론부의 그림 14-2의 비동기식 4진 카운터에 1MHz의 구형파를 인가할 때, Q1 신호의 주파수와 Q2 신호의 주파수를 구한다. 또한, 입력 신호, Q1 신호, Q2 신호의 파형을 함께 그린다.비동기식 4진 카운터에서 초기 상태가 Q1=Q2=Low일 때, 입력 클럭 신호에 주기를 T라고 하면 2T마다 (Q2, Q1)이 00 01 10 11 00의 순서로 반복된다. Q1 신호는 2T마다 바뀌고 Q2 신호는 4T마다 바뀌므로 비동기식 4진 카운터에 Q1 신호는 입력 클럭 신호의 1/2에 해당하는 주파수를 가지게 되고 Q2 신호는 입력 클럭 신호의 1/4에 해당하는 주파수를 가지게 된다.11-3-2 8진 비동기 카운터 설계8진 비동기 카운터의 회로도를 그린다. 단, CLK 입력에 클럭 입력 대신 버튼 스위치를 연결하여 버튼을 누를 때마다 카운트가 증가하도록 설계한다. 또한, Q1, Q2, Q3 출력 신호에 LED를 연결하여 카운터의 상태에 따라 LED에 불이 들어오도록 연결한다.8진 비동기 카운터는 3개의 flip flop을 이용하고 J, K가 High의 input을 고정적으로 가질 때 입력 클럭 신호로 Q의 값을 조절한다. 앞서 나온 flip fop의 출력값 Q가 다음 flip flop의 클럭 신호로 입력된다. 이 때 입력 클럭 신호에 버튼 스위치를 연결하면 버튼이 내려갔다가 올라올 때마다 입력 클럭 신호가 falling edge로 인식되어 (Q3, Q2, Q1)이 000 001 010 011 100 101 110 111 000을 반복하게 된다. 이 때 Q의 값이 1이면 해당 LED에 불이 들어온다. 이 8진 비동기 카운터 회로는 위와 같다.11-3-3 10진 비동기 카운터 설계16진 비동기 카운터와 리셋 회로를 이용하여 10진 비동기 카운터의 회로도를 그린다. 11-3-2의 경우와 마찬가지로 버튼 입력에 따라 카운트가 증가하도록 설계한다.11-3-2에서 설계한 8진 비동기 카운터에서 flip flop 하나를 더 추가하면 16진 비동기 카운터 회로가 된다. 16진 비동기 카운터의 출력인 (Q4, Q3, Q2, Q1)이 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000을 반복하게 된다. 이 16진 비동기 카운터를 10진 비동기 카운터로 만들려면 (Q4, Q3, Q2, Q1)이 1001이 되는 순간 flip flop들을 reset시켜 다음 값이 0000이 되게 해야 한다. 따라서 Q1, Q4 출력 단자를 AND gate로 연결하여 flip flop들의 clear단자로 입력시켜야 하는데 clear단자에 complement 표시가 있으므로 inverter gate를 추가한다. 이 AND gate와 inverter gate를 합쳐 NAND gate로 나타낼 수 있다. 이 10진 비동기 카운터 회로는 위와 같다.11-3-4 16진 동기 카운터 회로도그림 11-1의 8진 동기 카운터의 회로도를 참고하여 16진 동기 카운터의 회로도를 그린다. (동기 카운터의 경우, Function generator를 사용할 예정이므로 버튼 스위치는 필요 없음)동기 카운터는 비동기 카운터와 다르게 입력 클럭 신호를 모든 flip flop이 공유하고 J, K의 값에 따라 카운터가 동작하게 된다. 이전 flip flop의 출력값들이 모두 high이면 다음 flip flop의 J, K가 모두 high이므로 출력값이 변하게 되고 아니라면 다음 flip flop의 J, K가 모두 low이므로 출력값은 유지된다. 16진 동기 카운터는 4개의 flip flop을 가지므로 회로는 위와 같다. 입력 클럭 신호를 function generator를 사용해서 넣어주면 입력 클럭 신호의 falling edge마다 (Q4, Q3, Q2, Q1)이 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000을 반복하게 된다.
설계실습 7. 논리함수와 게이트요약 : 이번 실험은 논리 게이트 소자를 가지고 다른 논리 게이트 회로를 구성하고 값을 관찰하고 비교하는 실험이다. 먼저 AND, OR, NOT 소자를 가지고 NAND, NOR 회로를 구성하여 실험한 결과 진리표와 결과가 일치하였고 평균 0.151%의 오차를 보였다. 다음은 NAND 4개를 가지고 XOR회로를 구성하여 실험한 결과 진리표와 결과가 일치하였고 평균0.98%의 오차를 보였다. 디지털 회로 실험이라 그런지 오차가 평균 0.133%밖에 차이 나지 않아서 실험이 잘 되었다. 오차의 원인은 연결선들의 저항, DMM의 내부저항, LED의 저항 때문으로 생각된다.1. 서론이번 실험에서는 논리 게이트 소자를 이용하여 여러 논리 게이트 회로를 구성하고 예상한 진리표와 결과가 맞는지 확인해보는 실험이다. NAND, NOR, XOR 회로를 구성해보고 진리표와 실험결과가 맞는지 확인해보았다.2.실험결과7-4. 설계 실습 내용 및 분석7-4-1설계한 논리게이트 구현 및 동작(A) LOW(0) 값HIGH(1) 값, Vcc를 각각 0V, 5V, 5V로 설정한다. AND, OR, NOT 게이트를 사용하여 NAND. NOR, XOR 게이트의 진리표와 등가회로를 작성하고 두 입력의 모든 경우에 대해 출력 전압의 값을 측정한다.Ans) 이 항목에서는 NAND와 NOR만 실험하였다.NAND 회로의 사진은 다음과 같다. 그 밑에는 실험결과 사진을 첨부하였다.00011011실험을 토대로 진리표를 작성하면 다음과 같다.ABX001011101110NAND소자의 진리표와 실험 결과의 진리표가 일치하였다. HIGH(1) 값은 4.9896V, 4.9893V, 4.9912V로 5V에 거의 근접한 값을 보였고, 각각 0.208%, 0.214%, 0.176%의 오차를 보였다. LOW(0) 값은 0.0013V로 0V에 거의 근접한 값을 보였고, 0.13%의 오차를 보였다.NOR 회로의 사진은 다음과 같다. 다음장에 실험결과 사진을 첨부하였다.00011011실험을 토대로 진리표를 작성하면 다음과 같다.ABX001010100110NOR소자의 진리표와 실험 결과의 진리표가 일치하였다. HIGH(1) 값은 4.9907V로 5V에 거의 근접한 값을 보였고, 0.186%의 오차를 보였다. LOW(0) 값은 0.0004V, 0.0015V, 0.0010V로 0V에 거의 근접한 값을 보였고, 각각 0.04%, 0.15%, 0.1%의 오차를 보였다.(B) NAND 게이트만 사용하여 AND, OR, NOT 게이트의 등가회로를 구성한다. NAND, NOT 게이트를 사용하여 3입력 NAND 게이트의 등가회로를 구성한다.Ans) 이 항목에서는 NAND 게이트만 사용하여 XOR 게이트의 등가회로를 구성하는 실험만 하였다.XOR 회로의 사진은 다음과 같다. 다음장에 실험결과 사진을 첨부하였다.00011011실험을 토대로 진리표를 작성하면 다음과 같다.ABX000011101110XOR소자의 진리표와 실험 결과의 진리표가 일치하였다. HIGH(1) 값은 4.9891V, 4.9923V로 5V에 거의 근접한 값을 보였고, 각각 0.218%, 0.154%의 오차를 보였다. LOW(0) 값은 0.0001V, 0.0001V로 0V에 거의 근접한 값을 보였고, 0.01%의 오차를 보였다.7-5. 검토사항7-5-1 본 실험실습에서 무엇을 하였으며 그 결과는 어떤가?이번 실험에서는 AND, OR, NOT 소자를 이용하여 NAND, NOR 회로를 구성하고, NAND게이트 4개를 이용하여 XOR 회로를 구성하였다. 회로가 잘 작동하는지 LED와 DMM을 이용하여 관찰하였다. 3개의 회로 모두다 예상했던 결과와 일치하였다.7-5-2 설계 사양에 따라 설계실습계획서에서 설계한 회로가 실제 구현되었을 때에도 설계사양을 만족하는가? 그렇지 않았다면 그 이유를 분석하시오.설계한 사양은 HIGH(1)에서 5V, LOW(0)에서 0V가 나와야 한다. 실험에서 관찰한 결과, HIGH(1) 값은 평균적으로 0.193%, LOW(0) 값은 평균적으로 0.073%의 오차를 보였다. 따라서 0.2% 미만의 오차밖에 나오지 않은 좋은 실험을 하였다. 따라서 설계한 회로가 실제 구현되었을 때에도 설계사양을 만족하였다.7-5-3 설계 실습이 잘 되었다고 생각하는가? 잘 되었다면 그 근거는 무엇이며 잘 안되었다면 그 이유는 무엇인지 기술하시오.이번 설계 실습은 매우 잘 되었다. 초반에 오실로스코프의 문제로 LED불빛은 정상적으로 잘 나오는데 오실로스코프의 파형은 제대로 나오지 않아서 원인을 계속 분석하느라 시간이 지체되었는데 나중에 오실로스코프 기계의 문제로 판명되어서 다행이었다. 처음 스위치를 사용하였는데 헤매지 않고 바로 회로도를 설계하였고, 실험 결과도 오차가 평균 0.133% 밖에 나오지 않아서 매우 잘 된 실험이라고 생각한다. 이번학기 실험에서 아날로그 실험만 하다가 처음으로 디지털회로 실험을 하였는데 디지털회로라서 그런지 오차가 거의 없어서 좋았다.7-5-4 무엇을 느꼈는가? 또 이 설계실습을 통하여 무엇을 배웠는가?이번 실험을 통해 논리 게이트 소자를 이용하여 다른 논리 게이트 회로를 설계하고 그 결과를 확인하여 진리표를 작성하는 것을 배웠다. 실험 결과가 잘 나와서 기분이 좋았다. 장비의 문제로 인하여 실험이 지체되었는데, 다음에 실험을 할 때에는 연결선이나 소자의 이상유무 말고도 장비 작동 이상유무도 점검을 해봐야겠다는 생각이 들었다.3.결론이번 실험은 논리 게이트 소자를 가지고 다른 논리 게이트 회로를 구성하고 그 값을 확인하여 진리표와 일치하는지 확인해보는 실험이다. 먼저 AND, NOT 소자를 가지고 NAND 회로를 구성하여 실험한 결과 진리표와 결과가 일치하였고 평균 0.182%의 오차를 보였다. OR, NOT 소자를 가지고 NOR 회로를 구성하여 실험한 결과 진리표와 결과가 일치하였고 평균0.119%의 오차를 보였다. NAND 4개를 가지고 XOR회로를 구성하여 실험한 결과 진리표와 결과가 일치하였고 평균0.98%의 오차를 보였다. 디지털 회로 실험이라 그런지 오차가 평균 0.133%밖에 차이 나지 않았고 회로도를 구성하는 것도 어렵지 않아서 실험이 잘 되었다. 오실로스코프가 잘 작동하지 않아서 실험이 진전되지 못한 것이 아쉬웠다. 오차의 원인은 연결선들의 저항, DMM의 내부저항, LED의 저항 때문으로 생각된다.4.참고문헌1. 중앙대학교 전자전기공학부, “아날로그 및 디지털 회로 설계 실습”, 이론 10
예비보고서(설계실습 9. 4-bit Adder 회로 설계)아날로그 및 디지털 회로 설계실습설계실습 9. 4-bit Adder 회로 설계9-1. 실습목적 : 순차식 논리회로의 기본 소자인 래치와 플립플롭의 여러 종류에 대한 기능의 차이를 알아보고 동작 조건을 확인한다.9-2. 실습 준비물부품저항 330Ω, 1/2W, 5%10개Inverter 74HC046개NAND gate 74HC003개NOR gate 74HC025개AND gate 74HC085개OR gate 74HC325개XOR gate 74HC862개LED10개switch10개사용장비오실로스코프 (Oscilloscope)1대브레드보드 (Bread Board)1개파워서플라이 (Power Supply)1대함수발생기 (Function Generator)1대점퍼선다수9-3. 설계실습 계획서9-3-1 전가산기 설계(A) 전가산기에 대한 진리표를 작성한다.ABCinSCout0**************************1011100111111전가산기의 진리표는 다음과 같다.A와 B와 이전 가산기의 carry 인 Cin을 더해서, 첫째 자리의 수를 S라고 생각하고, 둘째 자리의 올림수를 carry 인 Cout 이라고 생각하면 위와 같이 나온다.(B) Karnaugh 맵을 이용하여 간소화 된 Sum of product 또는 Product of sum 형태의 불리언 식을 구한다.Cin AB*************11010S의 Karnaugh 맵은 다음과 같다. S는 더 이상 간략화되지 않는다.따라서 S의 불리언 식은 다음과 같다.S= bar { A}bar{B}C _{ i}+A bar{B}C_{i}+AB bar{C_{i}}+ABC_{i}=A OPLUS B OPLUS C_{i}Cin AB*************10111Cout의 Karnaugh 맵은 다음과 같다. Cout은 인접한 1끼리 색칠한 것으로 묶으면 간략화 된다.따라서 Cout의 불리언 식은 다음과 같다.C_{out} = BC_{i}+AC_{i}+AB=(A OPLUS B)C_{i}+AB(C) B에서 구한 간소화된 불리언 식에 대한 2-level AND-OR(NAND-NAND) 또는 OR-AND(NOR-NOR) 로직 회로를 설계한다.S= bar { A}bar{B}C _{ i}+A bar{B}C_{i}+AB bar{C_{i}}+ABC_{i}=A OPLUS B OPLUS C_{i}위 식대로 논리회로를 구성하면 다음과 같다.C_{out} = BC_{i}+AC_{i}+AB=(A OPLUS B)C_{i}+AB위 식대로 논리회로를 구성하면 다음과 같다.(D) XOR gate를 이용하여 보다 간소화된 다단계 조합 논리 회로를 설계한다.S= bar { A}bar{B}C _{ i}+A bar{B}C_{i}+AB bar{C_{i}}+ABC_{i}=A OPLUS B OPLUS C_{i}위 식대로 XOR 게이트를 이용하여 논리회로를 구성하면 다음과 같다.C_{out} = BC_{i}+AC_{i}+AB=(A OPLUS B)C_{i}+AB위 식대로 XOR 게이트를 이용하여 논리회로를 구성하면 다음과 같다.(E) 설계한 회로 중 하나를 선택하여 2-Bit 가산기 회로를 설계한다.(D)에서 설계한 대로, XOR 게이트를 이용하면 회로의 많은 부분이 중첩되므로 간단하게 설계할 수 있다. 논리식대로 회로를 구성하면 다음과 같다.2-Bit 가산기 회로는 2개의 Full adder로 구성되어있다. 따라서 2-Bit 가산기 회로를 만들기 위하여 2개의 Full adder를 아래와 같이 연결하여 회로를 구성한다.설계한 회로가 정상 동작하는지 확인해보기 위해 Full adder의 성능을 확인하자.다음과 같이 회로를 구성한다.입력 파형은 vstim을 이용하여 다음과 같이 한다.주기와 delay를 다르게 하여, 000 ~ 111 모든 경우를 관찰할 수 있게 하였다.그 뒤 시뮬레이션 한 결과는 다음과 같다.이를 다시 표로 정리하면 다음과 같다.