VHDL을 이용한 엘리베이터 설계
- 최초 등록일
- 2011.07.05
- 최종 저작일
- 2011.06
- 6페이지/ 한컴오피스
- 가격 4,000원
소개글
VHDL을 이용한 엘리베이터 설계
목차
1. 개요
2. 설계
3. 구현
4. 시뮬레이션
본문내용
1. 개요
- 5개의 층을 가지는 건물의 엘리베이터를 최대한 실제와 비슷하게 설계한다.
- 엘리베이터는 모든 층에서 출발, 정지가 가능해야 하고, 문을 열고 닫을 수 있어야 한다.
2. 설계
- 엘리베이터 층수: 5층 (001, 010, 011, 100, 101)
- 엘리베이터 내부 버튼: 1~5
- 모든 층에서 출발, 정지할 수 있고, 모든 다른 층으로 갈 수 있고, 문을 여닫을 수 있다.
- 한 번에 단 하나의 요청을 수행한다. (엘리베이터 작동 중에 다른 입력은 무시한다.)
- 엘리베이터는 최종 위치에서 입력이 들어올 때까지 대기한다.
- 동일한 입력이 들어올 경우 문이 열리고 닫힌다. (엘리베이터의 최종 위치와 요청 입력의 층수가 같을 경우)
- 엘리베이터의 이동과 문의 여닫힘은 클럭의 상승 엣지에서 발생한다.
- 문이 열리고 나서, 일정 시간이 흐른 뒤에 문이 닫힌다.
<코드 설계>
① Library - 신호의 type 정의와 논리 연산을 수행하기 위해 라이브러리를 추가한다.
② Entity - 필요한 Input과 Output port를 정의한다. 시스템은 클럭 신호에 따라서 작동하기 때문에, 클럭 신호와 리셋 신호를 입력으로 선언하였고, 입력 층수를 입력신호, 엘리베이터의 현재 층수를 출력 신호로 선언하였다. 입력 층수는 외부버튼과 엘리베이터 내부의 버튼을 ‘in_floor` 신호 하나로 통합하여 설계하였다.
클럭과 리셋 신호는 ‘0’과 ‘1’을 가지는 std_logic 타입이고, 설계 층수가 5층이기 때문에 층수를 나타내는 신호는 3비트를 가지는 std_logic_vector 타입이다. 포트 구성을 아래의 표와 같이 정리하였다.
③ Architecture - 실제 동작 알고리즘을 표현하며 입력 신호에 의해 수행되는 1개의 process로 구성하였다. Architecture가 begin되기 전에 사용할 신호를 선언할 수 있는데, 엘리베이터의 상태(stand, stop_open, go_up, go_down)를 정의하고, 각 상태를 표현하는 신호를 선언하였다. 정리하면 아래의 표와 같다.
참고 자료
없음