2000 Evolution of Robustness in An Electronics Design
2000 Evolution of Robustness in An Electronics Design
2000 Evolution of Robustness in An Electronics Design
1 Rationale
Evolutionary algorithms can design electronic circuits that conventional elec-
tronics design methods cannot. Take a basic notion of an evolutionary process
as the repeated action of selection upon individuals replicating with heritable
variations [6]. Then an evolutionary algorithm can proceed by making undirected
stochastic variations; a selection mechanism makes those variations that give rise
to better observed behaviour more likely to persist, to be further embellished by
subsequent rounds of variation and selection.
In contrast, every step in the derivation of a circuit design using conventional
methods is taken with respect to some model of how it will aect nal circuit
behaviour. Even in a stage of iterative modication and testing, the alterations
are chosen with reference to some model of their expected eect.
A circuit's behaviour may be termed emergent [3, 1, 2] if it cannot feasibly
be predicted in detail given only a knowledge of the individual components and
how they are interconnected. An evolutionary algorithm, needing no model to
predict the eects of the component-level variations applied, can craft an emer-
gent circuit behaviour, whereas conventional methods can not. The latter must
constrain the components' interactions, designing within the subset of possible
circuit structures and dynamics for which the necessary models are tractable.
Previous experiments have conrmed that an evolutionary algorithm can de-
rive a circuit beyond the scope of conventional methods in this way [9, 13], but
raised the issue of robustness. Here, robustness is the ability of a circuit to oper-
ate adequately over a specied range of variations in temperature, fabrication,
power-supply voltage, and so on. Notice that these perturbations are often at
the level of physical components. The constraints of conventional design, in al-
lowing models of how the components aect the overall behaviour, also simplify
the achievement of robustness. How much robustness is required is part of the
specication of an application, but some is nearly always necessary.
The main benet of allowing evolution to explore designs without constraint
is that the circuits produced can be dierent to those otherwise obtainable, e.g.
[5]. This novelty means that the circuits might be better in some circumstances,
for example being smaller, more power ecient, or displaying graceful degrada-
tion. This paper reports an experiment showing that evolutionary design can be
induced to produce a robust circuit, without having to impose the customary
constraints on what designs can be explored. The paper nishes with a discussion
of the wider implications of the result.
2 Experiment
The circuit to be evolved has one input and one output. As the input is stimu-
lated with a square wave of either 1kHz or 10kHz, the output is to give a steady
high voltage for one input frequency, and a steady low for the other. This fre-
quency discrimination task was used in the earlier experiments, and was chosen
to be as simple as possible while raising the issues of interest. In particular,
some sort of stable dynamics is needed within the circuit. The tone discrimina-
tion task can also lead the way to more sophisticated cases of pattern recognition
over time, such as word recognition [11]. We seek to explore new means to gener-
ate robust behaviour, which does not necessarily imply that the behaviour could
not be achieved in some other way using conventional methods.
The circuit was evolved to be a conguration of the now-obsolete Xilinx
XC6216 eld-programmable gate array (FPGA). Each candidate design (evolu-
tionary variant) was tested by conguring four XC6216 chips having the con-
ditions shown in Table 1. Evaluations at the target task were then performed
on all four chips simultaneously and independently. The evolutionary tness of
the candidate was taken to be the worst of the four measurements. This multi-
FPGA, multi-condition apparatus, called `The Evolvatron', was fully described
in [12].
Only the conguration of a 10 10 region of the 64 64 array of cells on
the FPGA was subject to evolution. For each chip of Table 1, the 10 10 region
was translated in position by a dierent but constant amount, as shown. Only
nearest-neighbour interconnections between cells were enabled. With reference
to the datasheet [15], this leaves 10 multiplexers (`muxes') to be congured in
each of the 100 cells: four 4:1 neighbour muxes, three 4:1 `X' muxes to select the
inputs to the cell's function unit; and within the function unit, two 4:1 muxes
(Y1 and Y2), and the single 2:1 CS mux selecting either a combinatorial or a
Chip Fabrication Package Interface Temperature PSU Output load Position
1 Seiko PQFP parallel in PC PC's 5V s.m. - (37,30)
2 Yamaha PLCC serial ambient 5V lin. 1k
(32,0)
3 Yamaha PGA serial 60 C 4.75V s.m. - (63,0)
4 Seiko PGA serial 27 C 5.25V s.m. - (37,54)
Table 1. Conditions of the chips used for tness evaluation. `Temperature' is that of
the surface of the chip package. See [14] for the thermal properties of each package.
Power supply units (PSUs) were either switched-mode (s.m.) or linear regulated (lin.).
`Position' gives the (row, column) location of the north-west corner of the 10 10
circuit within the 64 64 array, with (63,0) being the extreme north-west corner of the
array.
sequential output. The RP (register protect) mux, which can be set to prevent
the cell function unit's
ip-
op from ever changing, was always set to OFF.
In contrast to the earlier experiments, a clock signal was supplied to all of
the FPGAs, and was the clock input to the rising-edge triggered D-type
ip-
op
inside every cell's function unit. The clock source was a single external crystal
oscillator, nominally 6MHz. Under evolutionary control, via the Y1, Y2 and CS
muxes, each cell's function unit could be synchronous to the clock (function
output taken from the
ip-
op), asynchronous to the clock (
ip-
op output not
selected), or mixed (function output is a combinatorial function of the possibly-
asynchronous inputs as well as of the
ip-
op's output). Hence, there is no
constraint that evolution must produce a synchronous digital design: the clock
is a stable dynamical resource to be used or ignored as selection deems t, rather
than being an enforced synchronisation signal [10]. No design rules were imposed.
The evolutionary algorithm was a (1+1) Evolution Strategy (ES) [7, 8]. A
mutation operator was dened to select one of the 100 cells at random, then one
of that cell's 10 muxes at random, and then to randomly recongure that mux
to select a dierent input. In the ES, each new variant was produced by applying
the mutation operator three times to the parent.
With a new variant congured to the FPGAs, the inputs were stimulated with
a sequence of 100ms bursts of 1kHz and 10kHz tones. The tones were shued
into a random order for each trial, such that there were an equal number of each
frequency. The single source of the tones was a 1.000000MHz crystal oscillator
module, followed by hardware dividing the frequency by either 100 or 1000.
Separate analogue circuits integrated the output of each chip over each 100ms
tone, giving a value proportional to the average output voltage during that time.
Let the integrator reading of FPGA chip at the end of test tone number be
ct (t=1,2,... T). Let 1 be the set of 1kHz test tones, and 10 the set of 10kHz
c t
i S S
test tones. Then the evaluation of the performance of the conguration on chip
c was calculated as:
c = 1 X ct X ct c (1)
E
2 t2S1
T
i i
t2S10
P
and the tness was MIN4c=1 ( c ). The term c was used towards the end of
F E P
the run to penalise solutions having spikes or glitches in their output. For each
FPGA, a separate resetable counter made from 74LS devices counted the number
of low)high logic transitions on that FPGA's output during each test tone. If
the number of low)high transitions during tone t was c( ), then a counter
would return the value c ( ) = MIN( c( ) 255 ). Then c was dened as
N t
R t N t ; P
T
c = 1 X MAX( c ( ) 1 0 ) (2)
P w
2 t=1 T
R t ;
REPEAT
Generate three mutations (the variation operator) and
partially recongure each FPGA with all three.
y Measure offspring over a total of 24 test tones,
F L
Before the nal group of 8 test tones (if reached), all FPGAs are
L
The initial parent was found through random search for a starting point giving
better than trivial performance. Partial reconguration is used above because
some of the FPGAs are recongured via a relatively slow serial interface. The
simple variable-length evaluation scheme copes with measurement noise and the
stochastic behaviours of some candidate congurations. Termination was by a
human observer. The algorithm relies on the existence of pathways of change
that make no immediate dierence to the tness, but that alter the opportunities
for later improvement. See [4] for a discussion of such `neutral networks' in the
context of evolutionary electronics design. One reason for choosing such a simple
algorithm was to simplify the study of the role of neutrality, to be reported
elsewhere.
The initial parent conguration ( =0.43 with =0) was found after test-
F w
ing 75679 randomly generated individuals, using only the tness measuring step
marked y above (with =1), and with a hardware reset and complete recon-
L
were accepted out of 265 trials. Then with =2, =1.0, a further 870 out of
L w
32338 triple-mutations were accepted. Finally, with =5, =5.0, a further 3000
L w
out of 131005 mutants were accepted. Each of these latter phases resulted in a
reduction in the number of unwanted spikes in the output, eventually eliminating
them entirely.
8,3 8,4
5,0 5,3
Fig.1. The functional part of the evolved conguration. The large boxes represent
the cells. A wire shown originating from the perimeter of a cell is the output of that
cell's function unit. Inputs to a cell's function unit are indicated with small squares.
If a cell's function unit output is taken from it's
ip-
op (synchronous), then a small
triangle is drawn at the bottom of the cell. The congurations of the function units
are not shown. The cells are labelled with their (row, column) co-ordinates within the
10 10 evolved array.
in cell (5,0). When the retimed input is high, cell (7,0) toggles at the clock
R
frequency. When is low, this oscillation stops. Since the sampling in cell (5,0)
R
delays by up to (but less than) a clock period with respect to , the number
R I
of times the oscillator toggles is completely determined by how long the raw
input is high, and hence on the input frequency. For some input frequencies,
the oscillator toggles an odd number of times, so nishes in a dierent state,
whereas for others it does not. This is the heart of the timing mechanism; cell
(7,2) simply holds the nal value of the previous oscillation while the next one
is going on, and this is the output of the circuit.
The core mechanism described so far uses only three cells, but would, at
best, produce a constant output for one input frequency and an output toggling
every cycle at the other input frequency. The function of all of the other cells
in the circuit is to correct this, by delaying the retimed input. The delay on
8,0 8,1 8,2
RSr8c2
HI
HI
HI
1
OPr7c0 1
OPr7c1 1
OPr7c2
D S Q D S Q D S Q
0
R Q'
0
R Q'
RSr8c2 0
R Q'
Clk Clk Clk
Hi Hi OPr6c1 REr7c1 Hi
HI
HI
HI
6,0 6,1
OPr5c0 OPr7c1
Hi
HI
Edge OPr6c0 OPr6c1
OPr6c0 1
D S Q
1
0
0
R Q'
Clk
RWr6c1
Hi
HI
Clk
5,0 OPr7c1 RWr6c1 CLK
Lo Clock:
LO
ONTIME = 65.6ns
Hi
HI
LO
9,4
OPr8c3
Hi
HI
OPr9c4
REr8c2 1
D S Q
0
R Q'
Clk
Hi
HI
8,3 8,4
Fig. 3. The right half of the simulation model.
OPr7c5 OPr9c4
Hi Hi
HI
HI
OPr8c3 OPr8c4
OPr5c3 1
D S Q
1
D S Q
0 0
R Q' R Q'
Clk Clk
Hi Hi
HI
HI
7,3 7,5
OPr7c5 OPr8c4
HI Hi Hi
HI
OPr7c2 OPr7c3 OPr7c5
1 1
D S Q D S Q
0 0
R Q'
Hi R Q'
HI
Clk Clk
Hi Hi
HI
HI
5,3
Lo
LO
REr7c1 OPr5c3
1
0
Hi
HI
t R control
delay edges
I sample R tR toggle at sample
input output
to clock clock freq. and hold
tF
go/stop hold/sample
falling edges is constant, but for rising edges is variable, and is a function of the
present output of the circuit. This is arranged so that if the input is 1kHz while
the output is high, or if the input is 10kHz while the output is low, then the
oscillator will have time for an odd number of toggles in a high half-cycle of the
input, and the output will change state. If the input is 1kHz while the output
is low, or 10kHz while it is high, then the oscillator toggles an even number of
times and the output is constant. The implementation of the variable delay is
not yet understood.
The simulator is able to report whenever there is a
ip-
op data-to-clock
setup time violation: that is, when the input to a
ip-
op changes so soon before
the clock edge arrives that the resulting output is uncertain. Setup time viola-
tions are only ever reported in the cell (5,0) which retimes the input: the other
nine
ip-
ops in the evolved design operate in a reliable clocked fashion.
Acknowledgement
to Phil Husbands, Inman Harvey and Ricardo Salem Zebulum. This work was primar-
ily funded by EPSRC, and we also thank the following for support: Xilinx, British
Telecommunications, Hewlett-Packard, Zetex, and Motorola.
References
1. P. Cariani. Emergence and articial life. In C. G. Langton, C. Taylor, J. D. Farmer,
and S. Rasmussen, Eds, Articial Life II, pp. 775{797. Addison Wesley Longman,
1992.
2. J. P. Crutcheld and M. Mitchell. The evolution of emergent computation. Proc.
Nat. Acad. Sci. USA, 92(23):10742{10746, 1995.
3. S. Forrest. Emergent computation | self-organizing, collective, and cooperative
phenomena in natural and articial computing networks. Physica D, 42(1-3):1{11,
1990.
4. I. Harvey and A. Thompson. Through the labyrinth evolution nds a way: A silicon
ridge. In T. Higuchi and M. Iwata, Eds, Proc. 1st Int. Conf. on Evolvable Systems
(ICES`96), vol. 1259 of LNCS, pp. 406{422. Springer-Verlag, 1997.
5. J. R. Koza, F. H. Bennett III, M. A. Keane, et al. Searching for the impossible
using genetic programming. In W. Banzhaf, J. Daida, A. E. Eiben, et al., Eds, Proc.
Genetic and Evolutionary Computation conference (GECCO-99), pp. 1083{1091.
Morgan Kaufmann, 1999.
6. J. Maynard Smith. Evolutionary Genetics. Oxford University Press, 1989.
7. I. Rechenberg. Cybernetic solution path of an experimental problem. Royal Air-
craft Establishment, Library Translation 1122, 1965. Reprinted in `Evolutionary
Computation | The fossil record', D. B. Fogel, Ed., chap. 8, pp. 297-309, IEEE
Press 1998.
8. H.-P. Schwefel and G. Rudolph. Contemporary evolution strategies. In F. Moran,
A. Moreno, J. J. Merelo, and P. Chacon, Eds, Advances in Articial Life: Proc.
3rd Eur. Conf. on Articial Life, vol. 929 of LNAI, pp. 893{907. Springer-Verlag,
1995.
9. A. Thompson. Silicon evolution. In J. R. Koza, D. E. Goldberg, D. B. Fogel, and
R. L. Riolo, Eds, Genetic Programming 1996: Proc. 1st Annual Conf. (GP96), pp.
444{452. Cambridge, MA: MIT Press, 1996.
10. A. Thompson. Temperature in natural and articial systems. In P. Husbands and
I. Harvey, Eds, Proc. 4th Eur. Conf. on Articial Life (ECAL'97), pp. 388{397.
MIT Press, 1997.
11. A. Thompson. Exploring beyond the scope of human design: Automatic generation
of FPGA congurations through articial evolution (Keynote). In Proc. 8th Annual
Advanced PLD & FPGA Conference, pp. 5{8. Miller Freeman, 12th May 1998.
Ascot, UK.
12. A. Thompson. On the automatic design of robust electronics through articial
evolution. In M. Sipper, D. Mange, and A. Perez-Uribe, Eds, Proc. 2nd Int. Conf.
on Evolvable Systems (ICES'98), vol. 1478 of LNCS, pp. 13{24. Springer-Verlag,
1998.
13. A. Thompson, P. Layzell, and R. S. Zebulum. Explorations in design space: Uncon-
ventional electronics design through articial evolution. IEEE Trans. Evol. Comp.,
3(3):167{196, 1999.
14. Xilinx. Packages and thermal characteristics V1.2, August 1996. In The Pro-
grammable Logic Data Book, chapter 10. Xilinx, Inc., 1996.
15. Xilinx. XC6200 eld programmable gate arrays. Data Sheet, Xilinx, Inc., April
1997. Version 1.10.