기초전자공학 실험21. Title1. Encoder2. Decoder3. Multiplexer2. Name3. Abstract실험1)1.74LS153을 사용하여 4 to 1 MUX의 동작을 제작하여 검증하라.2.FPGA 보드를 사용하여 회로도를 작성하고 보드상에서의 동작을 확인하라.실험2)1. Dip S/W 0~9 를 입력함에 따라 7-segment LED에 해당숫자가 표시될 수 있는 회로를 제작하여 검증하라.2. FPGA 보드를 사용하여 회로도를 작성하고 보드상에서의 동작을 확인하라.실험3)1. 8 by 3 Encoder 를 gate를 이용하여 설계하고, 모의 실험을 통해 검증하라.2. FPGA 보드를 사용하여 회로도를 작성하고 보드상에서의 동작을 확인하라.실험4)1. 3 by 8 Decoder를 gate를 이용하여 설계하고, 모의실험을 통해 검증하라.2. FPGA 보드를 사용하여 회로도를 작성하고 보드상에서의 동작을 확인하라.4. Background디코더(decoder)란 n비트의 2진 코드(code) 값을 입력으로 받아들여 최대 2n개의 서로 다른 정보로 바꿔 주는 조합 회로를 말한다. 일반적으로 디코더는 n개의 입력선과 최대 2n개의 출력선을 가지며, 입력 값에 따라 선택된 하나의 출력선이 나머지 출력선들과 반대값을 갖는다. 그림 1에 입력선이 2개, 출력선이 22=4개인 2-to-4 디코더를 나타내었다. 그림에서 예를 들어 AB 입력 값이 01일 경우에는 출력선 D1만이 1이고 나머지 출력선 D0, D2, D3은 모두 0이 되며, 나머지 입력값의 조합에 대해서도 한 출력선이 나머지 출력선들과 다른 값을 가짐을 확인할 수 있다.그림1. 2-to-4 디코더2-to-4 디코더의 또 다른 형태로 그림 2와 같은 디코더가 있다. 그림 2의 디코더에 대한 진리표와 그림 1의 디코더에 대한 진리표를 비교해 볼 때 출력 값이 0은 1로, 1은 0으로 바뀌었음을 알 수 있는데, 이 디코더 역시 입력 값의 각 조합에 대해 한 출력선이 나머지 출력선들과 반대값을 가짐을 1111)되기 때문이다.그림 4. 무정의 조건을 이용해 표현한 진리표인코더(encoder)는 디코더의 반대되는 기능(입력과 출력이 바뀐 기능)을 수행하는 회로이다. 예로서 그림 6에 나타낸 4-to-2 인코더를 그림 1에 나타내었던 2-to-4 디코더와 비교해 보면 입력은 출력으로, 출력은 입력으로 바뀌었음을 알 수 있다. 그림 4-6의 인코더에서 입력 D0에 1이 들어오면 출력 AB는 00이 되고, 입력 D1에 1이 들어오면 출력 AB는 01이 되고, 입력 D2에 1이 들어오면 출력 AB는 10이 되고, 입력 D3에 1이 들어오면 출력 AB는 11이 된다. 물론 이 인코더는 4개의 입력중 어느 한 입력으로만 1이 들어오는 경우를 제외한 나머지 경우는 발생하지 않는다고 가정하여 설계된 것이다.그림 6. 4-to-2 인코더그림 6의 인코더 회로에서 진리표를 보면 입력신호가 D0, D1, D2, D3의 4개이다. 따라서 입력신호가 4개이면 총 24=16 가지의 입력조합이 생긴다. 그럼에도 불구하고 그림 6의 진리표에는 4가지 입력 경우만을 나타내었는데 이는 편의상 기능 중심으로 진리표를 나타내었기 때문이며, 완전한 진리표는 아래 그림 7에 나타내었다. 그림 7에는 완전한 진리표로 부터 각 출력에 대한 논리식을 구하는 카르노맵도 같이 나타내었다.그림 7. 4-to-2 인코더 설계그림 6에 나타내었던 4-to-2 인코더는 어느 한 순간에 입력들중 오직 한 입력만이 1이어야 정상적으로 동작할 수 있다는 제약을 가지고 있다. 예를 들어 입력 D1과 D2가 동시에 1이 되면 출력 AB=11이 되어 마치 입력 D3이 1인 것처럼 동작해 버린다. 따라서 이와 같은 문제점을 해결하기 위한 방안의 하나는 입력들 사이에 첨자가 큰 입력이 더 우선순위가 높다고 가정하고 회로를 설계하는 것이다. 즉, 예를 들어 D1과 D2가 동시에 1이 되면 D2가 D1에 비해 우선순위가 높으므로 D2만이 1이 된 것으로 생각하여 출력 AB를 10으로 내보내도록 설계한다. 그림 4-6 인코더 회로의 itting Diode)를 그림 12 (a)에서 같은 모양으로 집적 해 놓아서 우리가 보통 글자를 디스플레이 하는데 많이 사용되며, 현재는 여러 모양의 디스플레이들도 많이 있다. 그림 12 (b), (c)는 (a)의 부분을 펼쳐 놓은 것이다.그림 12. 7-세그먼트의 외부 모양 및 내부 구조? 7-세그먼트는 캐소드(Cathode)가 공통으로 묶여 있는 것이 있고, 애노드(anode)가 공통 으로 묶여 있는 것? 7-세그먼트에 숫자 "2"를 표시하고 싶으면, 그림 11-1(b)에서는 a, b, d, e, g 는 "1", c, f, dp는 "0"을 출력? common 단자 d, e, g 는 "0", c, f, d, p는 "1"을 출력하고, common 단자에는 "1"을 출력하여야 한다.5. Simulation실험1) 4 to 1 MUX1-1. 회로도1-2. 시물레이션실험2)Dip S/W 0~9 입력에 따른 7-segment LED2.1 회로도2-2. 시물레이션실험33-1. 회로도3-2. 시물레이션실험44-1. 회로도4-2. 시물레이션6.Experimental Results1. 실험1A. Data4 to 1 MUX 제작FPGA 보드 동작 테스트InputOutput1YSelectData1GNBA1C01C11C21C3XXXXXX10000XXX00001XXX0101X0XX0001X1XX0110XX0X0010XX1X0111XXX00011XXX101InputOutput1YSelectData1GNBA1C01C11C21C3XXXXXX10.13000XXX00.11001XXX04.7801X0XX00.1101X1XX04.7810XX0X00.1010XX1X04.7811XXX000.1011XXX104.79B. Discussion1GN의 Input값이 ‘0’일 때 MUX가 동작함을 알 수 있다. 그리고 SelectBA = '00'이 들어가면 1C0의 Data값이 나오고 BA = '01' 일 경우 1C1의 Data값이, BA = '10' 일 경우 1C2의 Data값이, BA = '11' 일N4N5N6N7NA2NA1NA0NGSNE0N1XXXXXXXX4.864.864.864.864.860111111114.644.634.634.640.120XXXXXXX00.130.120.110.134.670XXXXXX010.110.134.720.124.730XXXXX0110.124.730.090.094.730XXXX01110.134.664.660.134.660XXX011114.390.120.120.124.380XX0111114.630.124.630.134.660X01111114.734.730.120.134.660011111114.544.534.530.144.54B. Discussion위 회로에서는 E1N이 ‘0’일때만 동작을 하고 Input 1N에 ‘0’이 들어가면 Output A2N, A1n, A0N 에는 각각 ‘110’ 이 출력됨을 확인할수 있다.진리표에서 X는 (0 또는 1)을 나타내며 시물레이션과 진리표를 비교하여 보면일치함을 알 수 있다.4. 실험4A. Data3 by 8 Decoder 회로FPGA보드 동작 테스트InputOutputEnableSelectG1G1ANG2BNCBAY0NY1NY2NY3NY4NY5NY6NY7NX1XXX111111110XXXX*******************************************************************************************1*************1111110INPUTOUTPUTEnableSelectG1G1ANG2BNCBAY0NY1NY2NY3NY4NY5NY6NY7NX1XXX4.564.584.564.574.584.564.584.570XXXX4.644.634.644.634.624.634.624.63100000.074.784.734.784.784.774.764.78100014.760.144.764.784.744.744.764.78100104.774.770.134.764.784.764.744.78100114.684.694.670.124.664.674.684.67101004.647로 들어가는 Input 선이 된다. 모든 Input선에 Vcc가 물려있는 상태에서 스위치를 올리면 그 부분분이 GND와 연결이 되어 ‘0’이 입력되게 된다. 나머지는 ‘1’이 입력된다 할 수 있다. 예를들어 3번 스위치를 올리면 회로에는 ‘110111111’이 입력된다. 이때 저항이 없다면 스위치를 올렸을때 모든 선이 GND와 연결이 되게 되어 회로에는 항상 ‘0’만 Input이 되는 것이다. 이부분을 확실히 이해하지 못하여 실험시간내 완성을 하지 못하였다.FPGA보드 사용은 쿼터스로 스키메틱 회로를 그리고 아래와 같이 핀 맵핑을 하였다.Input은 스위치 1번부터 9번까지 사용하였으며 아웃풋은 7-Segement[0]을 사용하였고 사진은 Reference에 첨부하였다.실험3)8 by 3 Encoder 을 제작하는 실험으로 74ls148을 사용하였다.0N부터 7N, EIN 총 9개의 Input과 EON,GSN, A0N,A1N,A2N 5개의 Output이 있다. EIN은 항상 ‘0’을 넣어주어야 인코더 소자가 동작을 올바로 동작 하고, 0N에 ‘0’을 넣고 나머지는 ‘1’을 넣으면 A0N,A1N,A2N 은 ‘111’이 출력됨을 확인할수 있다.FPGA보드 사용은 쿼터스로 스키메틱 회로를 그리고 아래와 같이 핀 맵핑을 하였다.Input은 스위치 0번부터 8번까지 사용하였으며 Output은 LED로 확인을 하였다. 사진은 Reference에 첨부하였다.실험4)3 by 8 Decoder는 74ls138을 사용하였다. A,B,C 3개의 Input을 통해 Y0N, Y1N, Y2N, Y3N, Y4N, Y5N, Y6N, Y7N까지 8개의 Output을 가지고 있으며 G1은 ‘1’, G2AN과 G2BN Input은 항상 ‘0’을 넣어주어야 한다.0부터 9까지 2진수를 3비트로 표현하여 Input값을 주어 실험을 하였고만약 CBA 에 ‘110’을 넣으면 Y6N만 ‘0’의 값을 나타내었다.FPGA 보드에서는 스키메틱으로 회로를 그렸으며 핀맵핑은 아래와 같이 하였다.ABC는 스위 나타