논리회로 설계 및 실험 3주차
3주차 목표 목표 1. Encoder와 Decoder 및 가산기에 대한 이해 2. 반가산기와 전가산기를 이용하여 구조적 설계를 이해하고 이를 활용한 HDL 모듈의 확장 실습
Encoder와 Decoder Encoder Decoder Encoder의 예 어떤 정보의 형태나 형식을 부호화(encoding)하여 다른 형태나 형식으로 변환하는 장치 처리속도 향상이나 데이터 압축 또는 데이터의 손실 방지를 위해서도 사용됨 Decoder Encoder로 변환한 정보를 그에 대응하는 원래의 정보로 복호화(decoding)하여 주는 장치 Encoder의 예 디지털 사진을 찍으면 실제로는 렌즈에 맺힌 상(analog)이 픽셀정보(digital)로 변환되어 저장됨 지난 2주차 실험에서는 십진수 정보를 이진수 형태(BCD code)로 변환하는 변환기를 구현함 Decimal to Binary . d0 d1 b3 d9 d2 b2 b1 b0 Decimal-to-Binary 변환기의 심벌
Encoder Simple Encoder Priority Encoder Simple Encoder는 one-hot code를 binary 정보로 변환함 이때 2n개의 입력에 있어서 n개의 출력이 나옴 Priority Encoder 입력 bits의 MSB부터 출발하여 0이 아닌 첫 번째 bit의 index가 출력값이 됨 이때 해당 bit가 아닌 다른 bit 값들은 무시되며 압축(손실)이 일어남
가산기 가산기 (Adder) 덧셈 연산을 수행하는 논리회로 한 자릿수 연산을 위해서는 Half adder, Full adder 등이 있음 멀티비트의 연산을 위해서는 Ripple carry adder, Carry look ahead adder 등이 있음 5
반가산기 + 반가산기 (Half adder) 1 1 A B C S 1 A B C S 1 A B C S A B C S 1 A B 한 자릿수 덧셈을 수행하고 합(Sum)과 자리올림수(Carry)를 출력 Carry는 AND gate, Sum은 XOR gate와 결과가 같음 1 1 반가산기의 진리표 A A B C S 1 A B C S 1 A B C S A B C S 1 A B C S 1 1 + B 1 1 S 1 C 반가산기의 논리회로 6
전가산기 + 전가산기 (Full adder) 1 1 1 1 1 1 한 자릿수 덧셈을 수행할 때 이전 자리의 연산 결과로 받은 자리올림수(Carry)를 함께 연산하는 회로 두 개의 반가산기와 1개의 OR gate로 구성할 수 있음 전가산기의 진리표 1 Cin1 Cin0 A B Cin Cout S 1 1 1 A1 A0 1 + B1 B0 S1 S0 전가산기의 논리회로 1 1 Cout1 Cout0 7
4bit Ripple carry adder의 구조 리플 캐리 가산기 리플 캐리 가산기 (Ripple carry adder) 복수의 전가산기를 이용하여 복수 비트의 덧셈 연산을 할 수 있는 가산기 간단한 구조이지만 전가산기의 입력이 이전 전가산기의 출력이므로 전달 지연이 발생함 4bit Ripple carry adder의 구조 8
실습 Symbolian을 이용한 심벌 생성
Symbolian Symbolian 실행(1/2) ① [Analyze All]을 실행 ①
Symbolian Symbolian 실행(2/2) ① [Execute] -> [Symbol Editor]클릭 ② ①
Symbolian Symbol 생성 ① [File] -> [Synchronize]클릭 ② Symbol로 만들 .psr파일 선택 ③ Symbol 생성 ① ② ③
Symbolian Symbol 저장 ① [File] -> [Save]선택 ② .icn파일 저장 ① ②
Symbolian Symbol 사용 ① Schmian에 자동으로 .icn파일이 추가됨 ② 일반 게이트와 같은 방법으로 사용 가능 ① ②