1
Implementing Cache Logic® with FPGAs
The Cache Logic Concept
Atmel Corporation has developed an
enabling technology to make adaptive
hardware possible for electronics sys-
tems. This capability, trademarked as
Cache Logic, was developed and pat-
ented by Atmel Corporation.(1)
Cache Logic is a cost-saving way of
implementing logic more efficiently. The
active functions of an application are
perfo rmed by a fi eld prog ramma ble gat e
array (FPGA) that can be reconfigure d
as it operates, while inactive functions
are stored in an inexpensive configura-
tion me mory – a n EPROM , for ex ample.
As new functio ns are required, they are
written over old ones.
A single application is made up of many
smaller macro-level operations, like
counters, multipliers, shift registers, and
multiplexers. When an application is bro-
ken down into its sub-operations, two
things become apparent. First, function-
ality overlaps. A single function may be
used a number o f different t imes. Sec-
ond, there is a high degree of functional
latency. At any given moment, only a
small portion of an application’s opera-
tions are ac tive; only a few fu nctions ar e
used at the same time.
By consolidating functionality, eliminat-
ing redundancy, and tracking the
occurrence of each sub-operation, func-
tions can be organized such that a
relativ ely smal l, inexpen sive logi c device
is reconfigured as it operates to perform
a complex function. In a 10,000-gate
application, for example, only 2,000
gates might be a ctive at once. By cach-
ing the extra 8,000 gates for later use, a
2,000-gate device replaces a more
expensive 10,000-gate device.
Cache Logic
Implementation
Cache Logic implementation is concep-
tually similar to c ache mem ory. In cach e
memory, the highest speed memory
(usually SRAM) is used to store active
data, while the bulk of data resides in
lower-cost storage, such as DRAM, or
EPROM, disk, etc. Cache Logic works in
a similar fas hio n. O nly a s ma ll fra ction of
the circuitry – those functions which are
loaded into the logic cache – is active in
a system at any given time, while
unused fun ctions or var iations resid e in
lower-cost system memory. It is even
possible to compile variations of a
design in real time. As logic functions are
required, they can be loaded i nto cache
logic, replacing or complementing the
logic already present.
Figure 1 shows the block diagram for the
Atmel AT6000 FPGA, which is an ideal
medium for cache logic. The ability to
implement cache logic requires FPGAs
that are capable of being d ynamically
reconfigured in-system, either com-
pletely or partially, without disrupting the
operation of the balan ce of logic i n the
device. Another requirement is architec-
ture symmetry. This is necessary to
make possible the arbitrary placement of
generic blocks in a location that is
available at the time required. It is also
Field
Programmable
Gate Array
Application
Note
Rev. 0461C–09/99
Note: 1. The method for exploiting Cache Logic was pioneered by the University of Strath-
clyde in Scotland and is described in Lysaght, P. and Dunlop, J., “Dynamic
Reconfiguration of Field Programmable Gate Arrays”, in More FPGAs, W. Moore
and W. Luk, Eds., Abingdon EE&CS Books, England 1994.