티스토리 뷰

Verilog HDL를 주제로 한 열네번째 포스팅은 D-Day module에 대한 계산과정 디테일을 리뷰하고

보완설계를 완성해보겠습니다.

 

 

먼저 최종적인 인터페이스는 다음과 같습니다.

<Interface>

최종적으로 세븐세그먼트 6개를 이용하여 D-Day에 대한 count를 표시하였습니다.

 

 D-Day module모듈의 설계제안 과정에서는 디먹스를 이용한 타겟 날짜의 셋팅을 고안하였습니다.

그리고 Year_Month_Day 모듈의 아웃풋인 현재 날짜와의 합차연산으로 구한 D-Day값을 세븐세그먼트를 통해

출력하기로 하였습니다.

 

타겟날짜의 셋팅과정속에서 push버튼을 이용하여 count up을 할수있는 카운터 3개를 어싸인하고,

디먹스를 이용하여 push버튼의 신호를 3개의 카운터에 분배해줄 계획을 세웠습니다.

 

이과정을 종합한 최종 회로는 아래와 같습니다.

 

<D-Day module 최종>

메인이 되는 D-day calc 모듈은 중앙에 배치하였습니다. 이를 기준으로 좌측에 붉은 박스로 표시한 두 영역이 D-day로

타겟팅할 날짜를 셋팅하기 위한 모듈의 아웃풋 날짜 값과 Year_Month_Day모듈의 아웃풋인 현재 날짜 값입니다.

 

좌측 하단의 큰 박스 먼저 살펴 보겠습니다.

먼저 count up에 사용되는 push버튼은 key1단 하나 입니다. 이 하나의 버튼을 mod - 3 counter의 count out값으로 클럭을 잡아 shift할수 있도록 설계해 보았습니다.

 

그리고 Day와 Month카운터의 우측 아웃풋을 살펴보면 와이어를 통해 인풋으로 다시 들어가는 과정 중에 +1을 해주었습니다. 이는 일과 월의 값에 0이 없기때문입니다. 0월 1일 이나 1월 0일이 없는것 과 같죠.

 

그후 D-day calc모듈을 통하여 6개의 아웃풋 신호로 변환시켰습니다 D, -, 1000자리, 100자리, 10자리, 1자리 순입니다.

이는 아웃풋 먹스를 통하여 set신호가 들어오지 않는다면 계산된 D-day의 값을, 신호가 들어온다면 타겟으로 설정할 날짜값을 출력 합니다.

set신호를 올려 날짜가 출력될때는 count를 push버튼으로 조작하여 날짜를 셋팅하고 set신호가 내려간다면

현재 날짜와 타켓날짜의 차이만큼인 D-day count값을 세븐세그먼트에 출력하는 것입니다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
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
31
글 보관함