Title :
A Tiny Processing System for Education and Small Embedded Systems on the FPGAs
Author :
Nakano, Koji ; Kawakami, Kensuke ; Shigemoto, Koji ; Kamada, Yuki ; Ito, Yasuaki
Author_Institution :
Dept. of Inf. Eng., Hiroshima Univ., Higashi-Hiroshima
Abstract :
The main contribution of this paper is to present a simple, scalable, and portable tiny processing system which can be implemented in various FPGAs. Our processing system includes a 16-bit processor, a cross assembler, and a cross compiler. The 16-bit processor runs in 89 MHz on the Xilinx Spartan-3A family FPGAXC3S700A using 336 out of 5888 slices (5.7%)and in 76 MHz on the Altera Cyclon III family EP3C25F324 using 569 out of 24624 logic elements (2.3%). Every instruction can be executed in only one clock cycle, that is, CPI=1. Using a cross assembler and a cross compiler that we have developed, a C-based language program can be translated into a machine language object code, which can be executed on the 16-bit processor. The source codes of our processing system are very simple and compact. The 16-bit processor is designed by Verilog~HDL using 268 lines, and the cross assembler is written in 38 lines using Perl language. The cross compiler has 23 lines of Flex grammar file for lexical analysis, and 90 lines of Bison grammar file for context analysis and code generation. Hence, our tiny processing system is portable and easy to understand and the function expansion is not difficult. Actually, the tiny processing system has been used for the embedded system course of graduate students as a course material. Further, the 16-bit processor is scalable, that is, the word size can be changed from standard 16 bits. As real-life applications, we have developed a PONG-like mini game and an RSA encryption/decryption system based on the tiny processing system. Therefore, our tiny processing system benefits computer system education and small embedded system development.
Keywords :
C language; embedded systems; field programmable gate arrays; microprocessor chips; program assemblers; program compilers; public key cryptography; 16-bit processor; Altera Cyclon III; Bison grammar file; C-based language program; EP3C25F324; FPGA; FPGAXC3S700A; Flex grammar file; Perl language; RSA encryption system; Verilog~HDL; Xilinx Spartan-3A; cross assembler; cross compiler; embedded systems; field programmable gate arrays; machine language; tiny processing system; Application software; Assembly systems; Clocks; Cryptography; Embedded system; Field programmable gate arrays; Hardware design languages; Logic; Process design; Program processors; FPGA; assembler; compiler; education; processing system;
Conference_Titel :
Embedded and Ubiquitous Computing, 2008. EUC '08. IEEE/IFIP International Conference on
Conference_Location :
Shanghai
Print_ISBN :
978-0-7695-3492-3
DOI :
10.1109/EUC.2008.25