
May 1995
9-1
© 1995 Actel Corporation
Application Note
A 64 MHz RISC Coprocessor
Using the A1460 and VHDL Entry
Warren Miller
Product Planning Manager, Actel Corporation
Introduction
The Actel A1460 is the only Field Programmable Gate Array
(FPGA) offering high capacity and high performance
simultaneously. Additionally, the gate array architecture of
the A1460 makes VHDL entry very efficient in terms of
speed and capacity. This application note describes the
implementation of a specialized coprocessor for a RISC CPU
running at 64 MHz using VHDL entry.
RISC processors are used in a variety of high-performance
applications, but even these speedy devices run out of
processing power in some applications, or else the additional
costs required to “pump up” the processor with faster
memory systems or faster processor speed are prohibitive. In
many cases, an FPGA can improve performance by off
loading processor-intensive portions of an algorithm for
direct hardware implementation. A RISC-based
communications packet processor demonstrates this concept.
Communications Processor
In its simplest form, a packet processor is responsible for
receiving data packets from a communications network,
checking packets for correctness, and directing data to the
correct port. A RISC processor could do all these functions,
but matching the data rate would require a large portion of the
processor’s bandwidth. An FPGA can implement the packet
checking portion of the algorithm and accelerate performance
above that of a processor alone. The additional processor
cycles thus made available can be used to improve
performance of the higher level portions of the algorithm,
adding intelligence and further improving throughput.
Figure 1 shows a block diagram of the communications
processor. The RISC processor and the main memory provide
the high-level control of the communications network.
Packets received from the four communications lines are
routed by the processor to the appropriate output port. The
RISC processor establishes the connections between the input
and output ports based on traffic levels and bandwidth
limitations. It also measures traffic statistics to help determine
the best solution of input and output ports. In addition, during
reset and during times of low network activity, the processor
supports diagnostics.
The FPGA implements the low level portions of the
algorithm. Four data channels of 16 bits are received by the
FPGA and four output ports are available for output data. The
16-word data packets are preceded by a command word that
indicates the destination address of the packet and delineates
the start of data. The FPGA counts each data word as it is
received to ensure that the full 17 words exist in each packet.
The 17th word is a simple CRC (an exclusive OR of each
data word). The received data is selected for output at any of
the four output ports.
Figure 1 •
System Level Block Diagram
Main
Memory
RISC
Processor
DataAddress
Packet
Processor
port_hport_gport_e port_f
port_a port_b port_c port_d