Journal of Korea Society of Industrial Information Systems (한국산업정보학회논문지)
- Volume 11 Issue 4
- /
- Pages.72-81
- /
- 2006
- /
- 1229-3741(pISSN)
Design and Implementation of a Single-Chip 8-Bit Microcontroller
단일 칩 8비트 마이크로컨트롤러의 설계 및 구현
- Published : 2006.12.30
Abstract
In this paper, we first define a total of 64 instructions that are considered to be essential and frequently used, construct a datapath diagram, determine the control sequence using a finite state machine, and implement an 8-bit microcontroller using FPGA in VHDL. In the past, only functional simulation results of a rudimentary microcontroller were reported, the microcontroller lacked interrupt handling capability, or it was not implemented in hardware. We have designed a self-contained 8-bit microcontroller such that it can perform data transfer, addition, and logical operations, as well as stack and external interrupt operations. Following timing simulation of the designed microcontroller, we implemented it in an FPGA and verified its operation successfully. The design and implementation has been done under the Altera MAX+PLUS II integrated development environment using the EP1K50TC144-3 chip. The maximum operating frequency, the total number of logic elements used, and the logic utilization were found to be 9.39 MHz, 2813, and 97%, respectively. The result can be used as a microcontroller IP, and as needs arise, the VHDL code can be modified accordingly.
본 논문에서는 마이크로컨트롤러의 기능을 수행하는 데 필수적이며 사용빈도가 높다고 판단되는 총 64개의 명령어를 정의한 후 이를 처리할 데이터패스를 구성해 스테이트 머쉰으로 제어하는 방식으로 VHDL로 설계를 하고 FPGA로 구현했다. 기존의 마이크로컨트롤러 관련 연구에서는 기능적 시뮬레이션까지만 했기나, 인터럽트 기능이 없든지, 하드웨어로 구현을 하지 않았었다. 본 논문에서는 데이터 이동, 논리, 가산 연산 및 분기, 점프 연산을 실행할 수 있도록 해 간단한 연산 및 제어용도에 적합하도록 하였고, 스택, 외부 인터럽트 기능을 지원하도록 해 그 자체로서 완전한 마이크로컨트롤러가 되도록 하였다. 타이밍 시뮬레이션으로 검증 후 제작 과정을 통해, 설계된 마이크로컨트롤러가 정상적으로 동작함을 확인하였다. 심지어 프로그램 ROM까지도 칩 안에 넣어 전체 마이크로컨트롤러를 단일 칩으로 구현하였다. Altera MAX+PLUS II 통합개발환경 하에서 EP1K50TC144-3 EPGA 칩으로 구현을 하였고 최대 동작주파수는 9.39MHz까지 가능했고 사용한 로직 엘리먼트의 개수는 2813개로서 논리 사용률은 97%이었다. 본 연구의 결과는 핵심 기능이 요구되는 마이크로컨트롤러 IP로서도 사용할 수 있고, 모든 코드가 VHDL로 작성되어 있으므로 사용자의 요구에 따라 기능을 추가할 수도 있다.
Keywords