오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문
Section 03 비교기 비교기 진리표와 카르노 맵 2입력 일치 회로 2입력 불일치 회로 : EXOR 회로 그 자체 2비트 비교기
Section 03 비교기
Section 03 비교기 비교기의 VHDL 기술 데이터 플로우 모델
Section 03 비교기 동작 레벨
Section 03 비교기 입력 버스 폭을 확장한 비교기 비트수가 많은 비교기에서는 1비트 비교기를 확장하는 것도 하나의 방법 1-비트 비교기
Section 03 비교기 입력 버스 폭을 확장한 비교기 반비교기의 기능 강화 : 여러 개의 비트를 조사 가능하도록 기능강화 동작: 1. 반비교기 LG=1 이면 하위비트 무시 LG_OUT만 1 2. 반비교기 SM=1 이면 하위비트 무시 SM_OUT만 1 3. 반비교기 EQ=1 이고 하위비트 LG=1 이면 LG_OUT만 1 하위비트 SM=1 이면 SM_OUT만 1 하위비트 EQ=1 이면 EQ_OUT만 1
Section 03 비교기 전비교기를 응용한 4비트 비교기 동작: 1. 반비교기 LG=1 이면 하위비트 무시 LG_OUT만 1 2. 반비교기 SM=1 이면 하위비트 무시 SM_OUT만 1 3. 반비교기 EQ=1 이고 하위비트 LG=1 이면 LG_OUT만 1 하위비트 SM=1 이면 SM_OUT만 1 하위비트 EQ=1 이면 EQ_OUT만 1 X>Y => LG=1 X<Y => SM=1 X=Y => EQ=1
Section 03 비교기 전비교기 및 4비트 비교기의 VHDL 기술 전비교기를 부프로그램화 function 문은 1개의 값을 반환할 때 사용 procedure 문은 여러 개의 값을 반환할 때 사용 function 문 variable 문
Section 03 비교기
Section 03 비교기
Section 03 비교기 procedure 문
Section 03 비교기 procedure 문
Section 03 비교기 procedure 문
Section 03 비교기 동작 레벨
Section 03 비교기 테스트 벤치
Section 03 비교기 시뮬레이션 결과
Section 04 인코더 인코더(encoder, 부호기) : 입력에 대응하는 부호를 만들어 내는 회로 전반의 명칭 디코더(decoder, 복호기) : 어느 부호로부터 원래의 신호를 재생하는 회로 10진-BCD 코드 단점 입력 [IN0]를 사용하고 있지 않기 때문에 스위치가 전부 OFF이거나 스위치 [0]이 ON이 되면 출력은 모두 ‘0’. 결국, 이 회로는 이러한 2개의 상태를 식별할 수 없음 2개 이상의 스위치를 동시에 눌렀을 때 문제 발생 (스위치 2, 5 동시에 누르면 출력은 7)
Section 04 인코더
Section 04 인코더 문제를 해결한 인코더 (입력3 출력 2의 경우) 스위치가 아무것도 눌려 있지 않았을 때나 여러 개의 스위치가 눌려 있을 때는 [OUT1]='1', [OUT0]='1‘ 스위치가 1개만 눌려 있을 때는 스위치 번호를 [OUT0], [OUT1]에 출력
Section 04 인코더
Section 04 인코더 10진-BCD 인코더의 시뮬레이션 동작 레벨 When문을 이용하여 각각의 문장에 해당하는 처리 스위치를 2개 누르거나, 전부 눌러지지 않았을 경우 “1111”을 출력
Section 04 인코더 테스트 벤치 반복 처리에 for 문을 사용하여 if 문과 연결자[&]로 기술
Section 04 인코더 시뮬레이션 결과
Section 04 인코더 패키지 호출과 타입 변환 함수 VHDL에서는 데이터 타입이 다른 신호를 직접 대입이 불가능 따라서, 서로 다른 데이터 타입을 대입하려면 타입 변환 함수를 사용해서 데이터 타입을 동일하게 해야 함 타입 변환 함수는 종류에 따라 새롭게 호출할 패키지가 각기 다르므로, [std_logic_1164]의 패키지만으로는 컴파일시 오류가 발생 지금까지 사용한 [std_logic_1164]은 일반적인 회로 기술이나 시뮬레이션 기술에서 사용하는 기본 패키지이지만, 이 밖에도 ·std_logic_signed: 부호가 있는 연산 ·std_logic_unsigned: 부호가 없는 연산 ·std_logic_arith: 부호 혼재 연산 타입 변환 함수와 관련된 대표적인 패키지 conv_std_logic_vector(값, 비트 폭); Integer 형을 std_logic_vector 형으로 변환하는 함수 std_logic_arith 패키지를 호출 conv_integer(값); std_logic_vector 형을 integer형으로 변환하는 함수 std_logic_unsigned 패키지를 호출 사용할 때는 필요한 패키지 호출 방법 use IEEE.호출할 패키지. all;
Section 05 디코더 디코더 : 인코더 등으로 부호화한 데이터를 원래의 신호로 되돌리는 회로 BCD-10진 디코더
Section 05 디코더 BCD 코드에서는 10 ~ 15를 사용안함
Section 05 디코더 BCD-10진 디코더
Section 05 디코더 BCD-10진 디코더 테스트 벤치
Section 05 디코더 BCD-10진 디코더의 시뮬레이션
Section 06 7-세그먼트 디코더의 설계 7-세그먼트의 동작
Section 06 7-세그먼트 디코더의 설계 진리표, 카르노 맵, 논리식, 회로도
Section 06 7-세그먼트 디코더의 설계 진리표, 카르노 맵, 논리식, 회로도
Section 06 7-세그먼트 디코더의 설계 7-세그먼트 디코더의 시뮬레이션
Section 06 7-세그먼트 디코더의 설계 7-세그먼트 디코더의 시뮬레이션
Section 06 7-세그먼트 디코더의 설계 7-세그먼트 디코더의 시뮬레이션
Section 07 패리티 회로 패리티(parity) 4비트 패리티 생성기 데이터 전달시 잡음 등의 영향으로 데이터가 올바르게 전달될 수 없을 경우를 대비하기 위한 것으로, 데이터 오류를 검출하는 방법 4비트 패리티 생성기 짝수 패리티 경우
Section 07 패리티 회로 5비트 패리티 검사기 짝수 패리티 경우 홀수 패리티 경우 Odd_out: A~D 입력 1의수 홀수 :1 1의수 짝수 :0 정상동작: 입력 1의 개수 짝수 비정상동작 : 입력 1의 개수 홀수 정상동작: 입력 1의 개수 홀수 비정상동작 : 입력 1의 개수 짝수
Section 07 패리티 회로 4비트 짝수 패리티 생성기의 시뮬레이션 데이터 플로우 레벨의 기술
Section 07 패리티 회로 for-loop 문에 의한 동작 레벨의 기술
Section 07 패리티 회로 시뮬레이션 결과
Section 07 패리티 회로 시뮬레이션 결과