We present a method of automatically generating circuit designs using evolutionary search and a set of circuit-constructing primitives arranged in a linear sequence. This representation has the desirable property that virtually all sets of circuit-constructing primitives result in valid circuit graphs. While this representation excludes certain circuit topologies, it is capable of generating a rich set of them including many of the useful topologies seen in hand-designed circuits. Our system allows circuit size (number of devices), circuit topology, and device values to be evolved. Using a parallel genetic algorithm and circuit simulation software, we present experimental results as applied to three analog filter and two amplifier design tasks. In all tasks, our system is able to generate circuits that achieve the target specifications. Although the evolved circuits exist as software models, detailed examinations of each suggest that they are electrically well behaved and thus suitable for physical implementation. The modest computational requirements suggest that the ability to evolve complex analog circuit representations in software is becoming more approachable on a single engineering workstation. Keywords automated design, analog circuit synthesis, genetic algorithms, circuit representation I. Introduction Analog circuits are of great importance in electronic system design since the world is fundamentally analog in nature. While the amount of digital design activity far outpaces that of analog design, most digital systems require analog modules for interfacing to the external world. It was recently estimated that approximately 60% of CMOS-based application-specific integrated circuit (ASIC) designs incorporated analog circuits [1] . With challenging analog circuit design problems and fewer analog design engineers, there are economic reasons for automating the analog design process, especially time-tomarket considerations. Techniques for analog circuit design automation began appearing about two decades ago. These methods incorporated heuristics [18] , knowledge-bases [5] , and simulated annealing [15] . Efforts using techniques from evolutionary computation have appeared over the last few years. These include the use of genetic algorithms (GAs) [6] to select filter component sizes [7] , to select filter topologies [3] , and to design operational amplifiers using a small set of topologies [13] . The research of Koza and collaborators [11] on analog circuit synthesis by means of genetic programming (GP) [10] is likely the most successful evolutionary computation-based approach to date. Unlike previous systems, the component values, number of components, and the circuit topologies are evolved. The genetic programming system begins with minimal knowledge of analog circuit design and generates circuits using a cellular encoding technique [4] and circuit-constructing program trees. Various analog filter design problems have been solved using genetic programming (e.g., [12] ), and an overview of these techniques, including eight analog circuit synthesis problems, is found in [11] . A comparison of geneticbased techniques applied to filter design appears in [19] and work on evolving CMOS transistors for function approximation [17] has also appeared recently. The evolutionary computation-based approaches mentioned above and described in this paper are all offline hardware evolution approaches -software simulators are used to evolve software models of hardware. It should be noted that a growing number of researchers are using real hardware to evaluate a circuit's fitness during evolutionary search -the online approach. For example, in this issue, a system that employs a software-reconfigurable analog circuit to control frequency filtering in
REF proposed a linear representation approach to evolve analog circuits.
A circuit representation technique for automated circuit design
IEEE Trans. Evolutionary Computation
Computer Science