09-11-2012, 02:31 PM
FPGA Implementation of an 8-bit Simple Processor
FPGA Implementation.pdf (Size: 852.67 KB / Downloads: 158)
Abstract
Since its “birth” in 1971, embedded
microprocessor has been widely used as a tool for
technological innovations and cost reduction. Its speed and
programmability are the main characteristics determining its
performance. Therefore, for a design to be competitive, its
processor has to fit the following characteristics: relatively
inexpensive, flexible, adaptable, fast, and reconfigurable. A
solution to this is the use of Field-programmable gate arrays
(FPGA) as design tool. This paper describes the realization
of an 8-bit FPGA based simple processor. Our system was
implemented on the Xilinx Spartan 3 xc3s200FT256 using
ISE foundation 8.1 and VHDL. 132 (6%) of the slices, 351
Bels were used. A maximum frequency of 95.364 MHz was
reached with a minimum period of 10.486 ns.
INTRODUCTION
Nowadays, embedded microprocessors are used in a variety of
electronic products such as personal computers, cell phones, and
robots. They consist of thousands of electronic components and use a
collection of machine instructions to perform not only mathematical
operations but also to move information from one memory location
to another.
The processor or Central Processing Unit (CPU) is the heart of the
computer. It determines in a large part, how fast the computer will be
and what capabilities the machine will have. As designers we have a
choice between using digital signal processors (DSPs), FPGAs, or
application specific integrated circuits (ASICs) in our designing
process. In this paper, we implemented an FPGA-based processor.
ASICs customized for a particular use are very expensive even
though they provide the highest performance. DSP based designs,
on the other hand, are cost efficient and low in power consumption
and heat-emission. However, they only provide a limited speed for
data processing because using special memory architectures that are
able to fetch multiple data and/or instructions at the same time, they
are susceptible to arithmetic saturation
RELATEDWORK
Due to the cost of ASIC design and the speed of DSPs
processors that is involved in the development of flexible
devices, many engineers are now turning to FPGA. As a result,
many significant works have been based on FPGA. However,
not all of them are related to the actual design of a processor.
In [1], the implementation of a systolic array architecture in
hardware using FPGAs for processing compressed binary
images without decompressing them is proposed. In [2], the
author talked about how a high performance of embedded
systems and real time computing can be obtained through the
use of FPGA technology. Similar to the previous writer the
authors in [3] dealt with the reliability of FPGA platforms in
the design of embedded systems. In fact, a soft processor
which is a programmable instruction processor and a
methodology for measuring their area, performance, and
power was proposed as a solution. The authors in [4]
described a system that can enable FPGAs to generate machine
code for various CPUs. The system will perform a conversion
of an intermediate to a CPU’s native code for applications in
virtual machines such as the Java Virtual Machine. In [5], the
implementation of a floating point processor array for a highprecision
dot product is described. The authors mentioned the
cost and configurability benefits that can be obtained through
the use of FPGA. The authors in [6] used FPGA as a practical
experimentation and verification platform for emulation of
hardware without the non-recurring cost engineering (NRE)
costs of ASIC hardware. The use of FPGA as a design tool can
provide not only cost but also performance benefits.
INSTRUCTION SET
Our processor is designed to input an 8-bit set of instructions,
which will be used to determine most of the operations needed
as well as their addresses. The first (higher) four bits are
generally used to determine an operation while the last (lower)
four bits are used to determine an address. A memory unit is
used to store the instructions and registers are used to store the
addresses. The three different types of instructions used are:
Register Instructions, Branch Instructions, and Halt & I/O
Instructions. The register instructions are used to perform
arithmetic operations and add them to and from the data
registers. The instruction format for register instruction is
shown in figure 1 and it consists of the OP, CC, SRC, and
DST fields
IMPLEMENTATION & RESULTS
To ensure the quality of our design, all the units in the
processor were designed and tested separately. Once the
functionalities of each unit were verified they were combined
together as a block and once again tested. The following
images (captures of the testing) are the results of the
implementation of the main units.
CONCLUSION
We have successfully implemented an FPGA-based 8-bit
processor on Xilinx Spartan 3 board using the VHDL
language. Our processor is made of the control unit, and an
arithmetic logic unit (ALU) and a memory unit. Our processor
has a maximum frequency of 95.364 MHz and 132 slices were
utilized.