Digital clock chip - SELECTOR & DIVIDER Blocks
- 최초 등록일
- 2011.06.06
- 최종 저작일
- 2010.05
- 11페이지/ 한컴오피스
- 가격 1,500원
소개글
디지털 시스템 Digital clock chip - SELECTOR & DIVIDER Blocks
목차
1. Purpose
2. Problem statement
3. Sources & Results
본문내용
1. Purpose
이번 실습에서는 digital clock chip 에 있어 사용되는 SELECTOR와 DIVIDER BLOCK을 VHDL로 설계한다.
2. Problem statement
① Describe what is the problem.
Digital Clock Chip 에서 사용되는 SELECTOR와 DIVIDER BLOCK 을 설계하고자 한다. 먼저 SELECTOR BLOCK 은 ALARM BLOCK과 FOUR_TO_ONE BLOCK으로 나뉜다. ALARM에서는 ALARM을 설계하고 FOUR_TO_ONE에서는 각 모드에 따라 어떤 값들이 출력될 것인지 선택하게 된다. DIVIDER BLOCK은 SELECTOR BLOCK의 OUTPUT 값들을 십진수의 값으로 변환하여 출력하기 위한 BLOCK이다. 이 두 개의 코드를 작성한 후 각각을 테스트 벤치 코드를 이용하여 시뮬레이션 해본 후 앞에서 했던 과제들의 코드를 가져와 DIGITAL CLOCK이라는 전체적인 코드를 시뮬레이션 해본다.
② Describe how do you solve the problem.
1) SELECTOR block
SELECTOR는 ALARM을 생성하고 MODE(크게 4개의 모드)에 따라 어떤 값들을 선택할지를 결정하게 된다. 여기서는 PROCESS 문을 두 개가 필요하다. 하나는 ALARM_SET 부분이고 다른 하나는 FOUR_TO_ONE 부분이다.
먼저 ALARM_SET에서는 일단 MODE1="11"일 때만 동작하게 된다. 즉, ALARM모드 일때만 동작하는 것이다. 이 모드에서 INCREASE가 1이면 MODE2에 따라 알람 시간의 HOUR와 MIN을 증가시킨다. MODE2="01"이면 ALARM_HOUR를 하나 증가시키게 된다. 여기서 이미 ALARM_HOUR의 값이 23이라면 0으로 RESET시킨다. 비슷하게 MODE2="10"이면 ALARM_MIN의 값을 하나 증가시키게 된다. 여기서도 이전의 ALARM_MIN의 값이 59라면 0의 값으로 RESET시킨다. MODE1,2, INCREASE를 입력받아 어떤 기능을 실행할지 결정한다. 그리고 ALARM이 SET되고 실제 HOUR와 MIN의 값이 각각 ALARM_HOUR와 ALARM_MIN의 값과 같다면 ALARM을 실행시킨다. 그다음 SET버튼을 누르게 되면 (SET=`1`) ALARM은 꺼져야 한다.
두 번째로 FOUR_TO_ONE 에서는 각각의 MODE에 따라 display될 OUTPUT을 결정하게 된다. CASE문을 이용하여 각 모드에 따른 OUTPUT (OUT_H, OUT_M, OUT_S)의 값을 결정한다. 아래의 표와 같이 MODE1에 따른 값을 출력으로 해준다.
참고 자료
없음