티스토리 뷰

Verilog HDL를 주제로 한 아홉번째 포스팅에서는 년,월,일을 카운팅하는 Year-Month-Day counter모듈에 이어

디지털 달력의 요일계산 모듈을 다루어 보겠습니다.

 

 

먼저 탑모듈의 회로도를 살펴보겠습니다.

우측 상단에 Day_calc라 정의해둔 모듈이 바로 요일계산 모듈입니다.

 

<Top module>

Day_calc모듈에서는 년,월,일의 값을 각값마다 분리하여 이진코드로 인풋을 취합니다.

만약 98년 10월 22일 이라면 98,10,22 이렇게 3개의 신호가 인풋으로 설정되는겁니다.

그리고 아웃풋으로 7개의 LED를 이용하여 요일을 표시하게됩니다.

예시는 다음과 같습니다.

 

 

     <일요일>

월 화 수 목 금 토

■ □

     <월요일>

 월 화 수 목 금 토

    

     <화요일>

 월 화 수 목 금 토

     

 

...

...

...

 

     <토요일>

 월 화 수 목 금 토

     

 

요일의 구분은 위와 같이 LED의 위치를 이용하여 각 요일을 표시하는 방법으로 채택하였습니다.

 

다음은 회로도를 살펴 보겠습니다. 프로젝트 제안 과정에서의 요일계산모듈 내부회로도는 아래의 그림과 같습니다.

 

위그림에서의 회로의 흐름을 말씀드리겠습니다.

 

먼저 2진코드로 년,월,일 값을 cal_to_day모듈의 인풋으로 취합니다.

그러면 기준일로 세운 값에서 부터 차일을 계산하여 to_day_num모듈로 보내주고 to_day_num모듈에서

0부터6까지의 7가지 숫자로 모든 케이스를 분류합니다.

이때 인풋으로 들어온 날짜에 알맞은 요일의 숫자 케이스로 변환되는 것 입니다.

 

마지막으로 day_printer모듈을 이용하여 각 케이스의 숫자를 LED에 표현가능한 신호로 변환하여 아웃풋을 취합니다.

 

프로젝트의 제안과정에서는 간단하게 방향성만 제시 해두고 중간과정이나 최종과정에서 상세히 풀어나가겠습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함