본문내용
1. 디지털 시스템 설계 및 실험
1.1. 기본적인 Combinational Circuit
1.1.1. Decoder 설계
디코더는 디지털 시스템에서 binary 코드로 표현된 정보를 최대 2^n개의 서로 다른 정보로 변환해주는 조합 회로이다. n비트의 2진 코드는 2^n개의 서로 다른 정보를 표현할 수 있으며, 디코더는 이 n비트를 최대 2^n개의 출력으로 해독한다. 즉, n개의 입력 변수에 대해 n개 변수로 된 2^n(또는 적은)개의 minterm들을 생성하는 것이 디코더의 목적이다.
예를 들어 3비트 입력을 가진 3-to-8 디코더의 경우, 3개의 입력 변수에 대해 8개의 출력으로 해독된다. 3개의 인버터가 입력들의 보수를 제공하고, 8개의 AND 게이트 각각이 minterm들 중 하나를 산출한다. 이러한 3-to-8 디코더는 2진수를 8진수로 변환하는 데 사용될 수 있다.
디코더는 디지털 시스템에서 다양하게 활용된다. BCD-to-7세그먼트 디코더와 같은 코드 변환기에 결합되어 사용되기도 하며, n비트 코드를 2^n개의 출력으로 변환함으로써 효율적인 정보 표현과 처리가 가능하다. 이처럼 디코더는 디지털 회로의 핵심 구성요소로서, 복잡한 디지털 시스템을 구축하는 데 필수적인 회로 중 하나이다.
1.1.2. Binary-to-BCD Convertor 설계
Binary-to-BCD Convertor 설계는 4비트 바이너리 수를 10진수 BCD 코드로 변환하는 것이다. 이를 위해서는 Shift and Add-3 알고리즘을 사용하여 구현할 수 있다.
우선 4비트 바이너리 수를 BCD로 변환하는 진리표를 작성한다. 진리표를 보면 10 이상의 숫자에서는 BCD 코드의 1의 자리가 000x로 표현되므로, 이를 보정하기 위해 b0110을 더해주면 1의 자리를 얻을 수 있다. 이렇게 하면 앞의 3자리가 0이 되도록 할 수 있다. 이 알고리즘이 Shift and Add-3 알고리즘이다.
이를 바탕으로 라인 디코더를 이용하여 4비트 binary-to-BCD 컨버터 회로를 설계할 수 있다. 4비트 입력 b3b2b1b0에 대해 1의 자리 p0, 10의 자리 p1, 100의 자리 p2, 1000의 자리 p3, 10000의 자리 p4를 출력하도록 하는 회로를 Verilog 코드로 구현할 수 있다. 이때 진리표는 다음과 같다:
p0 = b0
p1 = b1b3' + b1'b2b3
p2 = b2b3' + b1b2
p3 = b1'b2'b3
p4 = b2b3 + b1b3
이러한 Shift and Add-3 알고리즘을 활용한 4비트 binary-to-BCD 컨버터 설계는 디지털 시스템 설계에서 자주 활용되는 중요한 기술이다.
1.2. FPGA 및 Verilog의 이해, Verilog를 통한 FPGA 프로그래밍 방법 이해
1.2.1. FPGA(...
...