목차
1. 실험 목표
2. 실험 준비물
3. 예비 이론
4. 실험 방법 및 시뮬레이션
5. 고찰
2. 실험 준비물
3. 예비 이론
4. 실험 방법 및 시뮬레이션
5. 고찰
본문내용
록의 주기는 60ns로 하시오.
우선 VHDL로 설계하면 다음과 같다.
7474 소자를 사용하여 회로를 구성하면 다음과 같다.
시뮬레이션을 해보면 다음과 같다.
클록이 상승할 때 트리거가 발생하는 경우로 하였다. 4비트 레지스터의 경우 출력파형을 보면 클록이 상승될 때마다 입력 데이터의 값이 출력 데이터 그대로 출력됨을 확인할 수 있다. 이는 결과적으로는 D 플립플랍을 이용한 것과 같다. 파형을 보면 클록이 상승될 때에만 출력값이 변하는 것을 볼 수 있고 클록이 올라가기 전까지는 그 이전의 값을 유지하고 있다. 위에서 보면 클록의 한 주기만큼 그 이전의 값을 저장하고 있는 것이다. 따라서, 4비트 레지스터는 클록의 한 주기 동안에만 데이터를 저장한다는 점을 알 수 있다.
[예비실험 1-②] 그림 10.5의 로드가 있는 레지스터 회로를 VHDL로 설계하고 회로를
구성하여 출력을 확인하여 보시오. 클록의 주기를 60ns로 하시오.
우선 VHDL로 설계하면 다음과 같다.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
출력 Q를 BUFFER로 설정하고 클록이 상승할 때 트리거가 발생하는 경우로 하였다. LOAD를 사용하는 이유는 데이터를 원하는 클록시간 동안 유지하기 위함이다. 출력파형을 보면 Q3의 경우 클록이 활성화 될 때 입력신호에 따라 출력이 1로 바뀐 뒤 계속 1을 유지하는 것을 알 수 있다. 한번 바뀌고 나서 Q3와 LOAD신호의 상승 타이밍이 한번도 맞지 않아 계속 1을 유지하는 것이다. Q2와 Q1, Q0의 경우는 입력값과 LOAD의 타이밍이 맞아 떨어지고 클록이 활성화 될 때만 출력값이 바뀐다. 그러므로 LOAD가 있는 4비트 레지스터는 LOAD 신호를 조절함으로써 데이터를 원하는 클록시간 동안 유지할 수 있음을 알 수 있다.
[예비실험 1-③] 그림 10.8의 쉬프트 레지스터를 VHDL로 설계한 후에 회로를 구성하고
출력을 확인하시오. 클록의 주기를 60ns로 하시오.
우선 VHDL로 설계하면 다음과 같다.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
클록이 상승할 때 트리거가 발생하는 경우로 하였다. Q0는 마지막 네 번째 플립플랍의 출력이다. 출력파형을 보면 Q0의 출력값은 DATA가 1로 상승하고 클록이 네 번째 상승할 때 출력값이 변함을 알 수 있다. 즉, 입력값 DATA가 주어지면 4개의 플립플랍을 지난 뒤에 그 결과값이 출력됨을 알 수 있다.
[예비실험 2] 그림 10.1의 4 비트 레지스터 회로를 구성하시오.
각 플립플랍의 출력은 LED에 연결하여 확인하시오.
이 때의 클록은 임의로 느리게 설정하여 LED의 움직임을 관찰하시오.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
위 회로는 D 플립플랍 소자 7474를 2개 이용해 4비트 레지스터를 만든 것이다. 클록이 활성화 될 때마다 입력 데이터의 값이 출력 데이터 그대로 출력되어 지는 D 플립플랍의 작동과 동일하게 나타남을 확인할 수 있다. 특히하게 소자의 Propagation delay로 인해 데이터를 저장하는 기간이 클록의 한 주기가 약간 모자라는 걸 확인할 수 있다. LED는 입력신호를 넣어준 후 클록이 활성화 될 때 처음 불이 들어오고 그 이후 일정한 간격으로 깜빡거릴 것이다. 클록의 주기를 느리게 하는 건 클록의 주기만큼 데이터를 저장한다는 것을 확인하기 위해서 임을 알 수 있다.
[예비실험 3] 그림 10.5의 로드가 있는 레지스터 회로를 구성하여 출력을 확인하여 보시오.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
출력파형을 보면 Q3의 경우 클록이 활성화 될 때 입력신호에 따라 출력값이 1로 변한 뒤 계속 1을 유지하는 것을 알 수 있고 Q2와 Q1, Q0의 경우는 입력값과 LOAD의 타이밍이 맞아 떨어져 클록이 활성화 될 때만 출력값이 바뀌는 것을 확인할 수 있다. 출력 LED는 Q3의 경우 입력 신호를 준 후 클록이 활성화 될 때 불이 들어온 후 계속해서 불이 켜져 있을 것이다. Q2, Q1, Q0의 경우 입력 신호를 준 후 클록이 활성화 될 때 처음 불이 들어왔다가 일정한 주기로 깜빡거릴 것이다. 위와 같이 주기를 줄 경우에는 Q2에서 Q1으로 갈수록 불이 깜빡거리는 주기는 길어질 것이다.
[예비실험 4] 그림 10.8의 쉬프트 레지스터 회로를 구성하고 출력을 확인하시오.
LED로 연결하여 출력을 조사하시오.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
출력파형을 보면 Q0의 출력값은 DATA가 1로 상승하고 4개의 플립플랍을 지난 후에 출력값이 변함을 알 수 있다. 이전 플립플랍의 출력이 다음 플립플랍의 입력으로 전달됨을 회로도를 통해서 볼 수 있다. LED는 DATA값에 입력신호를 넣어줄 경우 네 개의 플립플랍을 통과하는 동안 불이 들어오지 않다가 네 개의 플립플랍을 지난 시간 이후 불이 들어올 것이다.
5. 고찰
이번에는 레지스터에 관해 알아보았다. 레지스터는 플립플랍의 조합으로 이루어진 메모리 소자라는 걸 Max+plus ll 시뮬레이션을 통해 알 수 있었다. 레지스터는 총 3가지가 있는데, 4비트 병렬 레지스터, 로드 신호를 이용한 레지스터, 그리고 쉬프트 레지스터이다. 실험을 통해 3가지 레지스터의 동작과 각기 다른 회로적 개념을 정확하게 이해해야 할 것이다. Simulation을 통해서 4비트 병렬 레지스터는 클록의 주기만큼 데이터를 저장한다는 걸 알 수 있었고, 로드 신호를 이용한 레지스터는 로드 신호를 컨트롤 하면서 데이터 저장시간을 조정할 수 있었다. 그리고 쉬프트 레지스터는 클록이 공통으로 연결되어 있어서 1번째 입력이 Flipflop에 들어가면 클록이 활성화 될 때마다 그 출력이 다음 Flipflop으로 이동하고 다음으로 최종 Flipflop을 거쳐서 출력값이 나타난다는 사실을 확인하였다. 이번 실험의 주 개념은 순차 회로에 대한 개념이다. 순차회로에 대한 회로구성과 작동개념을 잘 숙지하고 예비보고서를 작성할 때 공부한 것을 바탕으로 실제 시험을 할 때 신속하고 정확하게 회로구성을 할 수 있도록 해야 하겠다.
우선 VHDL로 설계하면 다음과 같다.
7474 소자를 사용하여 회로를 구성하면 다음과 같다.
시뮬레이션을 해보면 다음과 같다.
클록이 상승할 때 트리거가 발생하는 경우로 하였다. 4비트 레지스터의 경우 출력파형을 보면 클록이 상승될 때마다 입력 데이터의 값이 출력 데이터 그대로 출력됨을 확인할 수 있다. 이는 결과적으로는 D 플립플랍을 이용한 것과 같다. 파형을 보면 클록이 상승될 때에만 출력값이 변하는 것을 볼 수 있고 클록이 올라가기 전까지는 그 이전의 값을 유지하고 있다. 위에서 보면 클록의 한 주기만큼 그 이전의 값을 저장하고 있는 것이다. 따라서, 4비트 레지스터는 클록의 한 주기 동안에만 데이터를 저장한다는 점을 알 수 있다.
[예비실험 1-②] 그림 10.5의 로드가 있는 레지스터 회로를 VHDL로 설계하고 회로를
구성하여 출력을 확인하여 보시오. 클록의 주기를 60ns로 하시오.
우선 VHDL로 설계하면 다음과 같다.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
출력 Q를 BUFFER로 설정하고 클록이 상승할 때 트리거가 발생하는 경우로 하였다. LOAD를 사용하는 이유는 데이터를 원하는 클록시간 동안 유지하기 위함이다. 출력파형을 보면 Q3의 경우 클록이 활성화 될 때 입력신호에 따라 출력이 1로 바뀐 뒤 계속 1을 유지하는 것을 알 수 있다. 한번 바뀌고 나서 Q3와 LOAD신호의 상승 타이밍이 한번도 맞지 않아 계속 1을 유지하는 것이다. Q2와 Q1, Q0의 경우는 입력값과 LOAD의 타이밍이 맞아 떨어지고 클록이 활성화 될 때만 출력값이 바뀐다. 그러므로 LOAD가 있는 4비트 레지스터는 LOAD 신호를 조절함으로써 데이터를 원하는 클록시간 동안 유지할 수 있음을 알 수 있다.
[예비실험 1-③] 그림 10.8의 쉬프트 레지스터를 VHDL로 설계한 후에 회로를 구성하고
출력을 확인하시오. 클록의 주기를 60ns로 하시오.
우선 VHDL로 설계하면 다음과 같다.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
클록이 상승할 때 트리거가 발생하는 경우로 하였다. Q0는 마지막 네 번째 플립플랍의 출력이다. 출력파형을 보면 Q0의 출력값은 DATA가 1로 상승하고 클록이 네 번째 상승할 때 출력값이 변함을 알 수 있다. 즉, 입력값 DATA가 주어지면 4개의 플립플랍을 지난 뒤에 그 결과값이 출력됨을 알 수 있다.
[예비실험 2] 그림 10.1의 4 비트 레지스터 회로를 구성하시오.
각 플립플랍의 출력은 LED에 연결하여 확인하시오.
이 때의 클록은 임의로 느리게 설정하여 LED의 움직임을 관찰하시오.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
위 회로는 D 플립플랍 소자 7474를 2개 이용해 4비트 레지스터를 만든 것이다. 클록이 활성화 될 때마다 입력 데이터의 값이 출력 데이터 그대로 출력되어 지는 D 플립플랍의 작동과 동일하게 나타남을 확인할 수 있다. 특히하게 소자의 Propagation delay로 인해 데이터를 저장하는 기간이 클록의 한 주기가 약간 모자라는 걸 확인할 수 있다. LED는 입력신호를 넣어준 후 클록이 활성화 될 때 처음 불이 들어오고 그 이후 일정한 간격으로 깜빡거릴 것이다. 클록의 주기를 느리게 하는 건 클록의 주기만큼 데이터를 저장한다는 것을 확인하기 위해서 임을 알 수 있다.
[예비실험 3] 그림 10.5의 로드가 있는 레지스터 회로를 구성하여 출력을 확인하여 보시오.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
출력파형을 보면 Q3의 경우 클록이 활성화 될 때 입력신호에 따라 출력값이 1로 변한 뒤 계속 1을 유지하는 것을 알 수 있고 Q2와 Q1, Q0의 경우는 입력값과 LOAD의 타이밍이 맞아 떨어져 클록이 활성화 될 때만 출력값이 바뀌는 것을 확인할 수 있다. 출력 LED는 Q3의 경우 입력 신호를 준 후 클록이 활성화 될 때 불이 들어온 후 계속해서 불이 켜져 있을 것이다. Q2, Q1, Q0의 경우 입력 신호를 준 후 클록이 활성화 될 때 처음 불이 들어왔다가 일정한 주기로 깜빡거릴 것이다. 위와 같이 주기를 줄 경우에는 Q2에서 Q1으로 갈수록 불이 깜빡거리는 주기는 길어질 것이다.
[예비실험 4] 그림 10.8의 쉬프트 레지스터 회로를 구성하고 출력을 확인하시오.
LED로 연결하여 출력을 조사하시오.
7474 소자를 사용하여 회로를 구성하고 시뮬레이션 해보면 다음과 같다.
출력파형을 보면 Q0의 출력값은 DATA가 1로 상승하고 4개의 플립플랍을 지난 후에 출력값이 변함을 알 수 있다. 이전 플립플랍의 출력이 다음 플립플랍의 입력으로 전달됨을 회로도를 통해서 볼 수 있다. LED는 DATA값에 입력신호를 넣어줄 경우 네 개의 플립플랍을 통과하는 동안 불이 들어오지 않다가 네 개의 플립플랍을 지난 시간 이후 불이 들어올 것이다.
5. 고찰
이번에는 레지스터에 관해 알아보았다. 레지스터는 플립플랍의 조합으로 이루어진 메모리 소자라는 걸 Max+plus ll 시뮬레이션을 통해 알 수 있었다. 레지스터는 총 3가지가 있는데, 4비트 병렬 레지스터, 로드 신호를 이용한 레지스터, 그리고 쉬프트 레지스터이다. 실험을 통해 3가지 레지스터의 동작과 각기 다른 회로적 개념을 정확하게 이해해야 할 것이다. Simulation을 통해서 4비트 병렬 레지스터는 클록의 주기만큼 데이터를 저장한다는 걸 알 수 있었고, 로드 신호를 이용한 레지스터는 로드 신호를 컨트롤 하면서 데이터 저장시간을 조정할 수 있었다. 그리고 쉬프트 레지스터는 클록이 공통으로 연결되어 있어서 1번째 입력이 Flipflop에 들어가면 클록이 활성화 될 때마다 그 출력이 다음 Flipflop으로 이동하고 다음으로 최종 Flipflop을 거쳐서 출력값이 나타난다는 사실을 확인하였다. 이번 실험의 주 개념은 순차 회로에 대한 개념이다. 순차회로에 대한 회로구성과 작동개념을 잘 숙지하고 예비보고서를 작성할 때 공부한 것을 바탕으로 실제 시험을 할 때 신속하고 정확하게 회로구성을 할 수 있도록 해야 하겠다.