[토끼] VHDL로 구현한 [시계와 스톱워치가 내장된 자동차 연료 잔류량 표시기] 텀프로젝트
- 최초 등록일
- 2013.01.17
- 최종 저작일
- 2010.06
- 43페이지/ 한컴오피스
- 가격 5,000원
소개글
응용논리 학기 말 텀프로젝트 : 소스코드, 핀맵 첨부.
목차
1. 주 제 설 명
2. 역 할 분 담
3. 기 능 정 의 및 설 명
4. PIN MAPPING
5. Source Code
6. Testbench code
7. Synthesis gate description
8. Analysis
9. Reference
본문내용
8. Analysis
우리조가 자동차 연료 잔류량 표시기를 구현하기 위해 필요했던 것은 크게 세 가지로 볼 수 있다. 시계, 스탑워치, 그리고 자동차 연료 잔류량 표시 이다. 그리고 이 세 가지를 한군데로 연결시켜주는 것도 중요했다.
처음 주제는 ‘시한 폭탄’ 이였다. 하지만 작년에 이 주제를 가지고 이미 한 조가 있다는 사실을 알았고 일단 교수님이 올려주신 스톱워치 코딩을 기반으로 3일간 밤을 새면서 작업을 하였으나 30%정도밖에 구현을 못해서 주제를 바꾸게 되었다. C와는 달리 VHDL은 오히려 익숙치 않아 에러가 나지 않고 컴파일이 되도 제대로 동작 하지 않는 경우가 많았다.
시계를 구동하고 스탑워치를 구동하기 위해서는 클럭이 필요하다. FPGA DE2보드에는 27MHz와 50MHz의 내부 클럭이 존재한다. 이 내부클럭을 우리가 이용하기에는 주파수가 지나치게 높고 사용하기에는 불가능하다. 그래서 이 내부클럭을 분주하여 우리가 원하는 100Hz를 만들어 내는 것이 일차적인 해결과제였다. CLK.VHD 블록에서 보면 499,999일 때 0으로 넘겨주고 255,554에서 신호를 바꾸어 주면서 50% 듀티비를 만들어 100Hz 분주 주파수를 만들어 낸 것을 확인할 수 있겠다. 또한 MODE.VHD에서 5Hz 주파수도 분주하여 사용하였다. 졸업 작품의 경우 분주회로를 만들기 위해 수많은 트랜지스터 레이아웃과 씨름 하였다면 이번의 경우는 단 몇 줄의 코드만으로 구현이 가능해서 재미가 쏠쏠하였다.
MODE.VHD 블록에서 state 설정과 두 가지 모드의 생성을 볼 수 있다. mode1의 경우 시계에서 스톱워치로, 그리고 거기서 다시 타이머를 통해 알람까지 가는 mode 설정을 5Hz로 분주된 주파수를 이용하여 SW1 모드 변경 입력에 따라 변하도록 해주었다. mode2의 경우 SW1과 SW2의 값에 따라 signal인 mod2_value 값이 변하도록 하여서 세부 설정 제어를 해주었다. MOD1 값에 따라서 state 설정을 달리하도록 소스 코딩을 하였다. 처음계획은 state의 수를 대폭늘려 LCD표현도 다양하게 하려고 하였지만 역시 생각처럼 쉽지가 않아서 단지 두종류만 구현하기로 하였다. 그리고 무엇보다 또 다른 텀 프로젝트과제들 때문에 시간의 압박으로 만족할만큼 구현이 힘들었다.
참고 자료
디지털 디자인
Logic and Computer Design Fundamentals
VHDL 및 Verilog HDL을 이용한 디지털 시계 설계