cause these are so expressive, they can replace many
gates that would otherwise have to be evolved, and
instead permit evolution to focus on higher level be-
haviours. In all cases where we were able to test the
impact of these, the best performance came from set-
ups that used both of the features, i.e. separating the
input and output space and the use of high level struc-
tures.
These findings show a roadmap for tackling much
more complex tasks, specifically, the ways in which
the grammars are designed and the use of Lexicase
Selection to target poorly covered parts of the solu-
tion space. Additionally, results obtained based on the
grammar design choices suggest that the use of Lay-
ered Learning or Attribute grammars may be better
suited for tougher circuit problems.
The problems tackled in this work are interest-
ing as they are of relevance in real-world applica-
tions. Moving forward, more difficult problems such
as 70–bit and 135–bit Multiplexers, Hamming Code
(127, 120) Decoder and multipliers of varying inputs
will be looked at. Though the problems tackled in
this work are not very difficult, we demonstrated that
grammar design can impose another level of difficulty
on problems; as a result no optimal solutions were
found for the Grammar A versions of the SSD and
Multiplexer problems. In this paper we also assume
to be evolving circuits from scratch which may not
be the case in industrial applications. Future works
will also target using IP blocks as modules to evolve
more complex circuits; adding them to our system
will be trivial, as it will simply involve adding them
to the grammar. Furthermore, all three problems were
treated as single objective problems, that is, func-
tionality. Future work will consider their optimiza-
tion when synthesized to a lower level such as the
gate level, probably using some multi-objective fit-
ness measures. Also relevant is the need to adopt
techniques to help decompose problems into subprob-
lems in an attempt to reduce the search space, particu-
larly for problems of high complexity, as is often done
in digital circuit design. Furthermore, the incorpora-
tion of semantic information into GE will be key in
ensuring only syntactically and semantically valid in-
dividuals are evaluated, as long simulation time is a
difficult bottleneck to address.
Crucially, because the system we have assembled
uses a full Verilog simulator that employs test benches
to test the circuits, there is a clear path to extend
ADDC to sequential circuits, that is, logic circuits
that are time dependent and require a clock to oper-
ate. This opens up the possibility of employing highly
powerful building blocks such as flip-flops and coun-
ters.
ACKNOWLEDGMENTS
The authors are supported by Research Grant
16/IA/4605 from the Science Foundation Ireland and
by Lero, the Irish Software Engineering Research
Centre. The third author is partially financed by
the Coordenac¸
˜
ao de Aperfeic¸oamento de Pessoal de
N
´
ıvel Superior - Brasil (CAPES) - Finance Code 001.
REFERENCES
Bryan Mealy, F. T. (2018). Free Range VHDL.
Cullen, J. (2008). Evolving Digital Circuits in an Indus-
try Standard Hardware Description Language. In Li,
X., Kirley, M., Zhang, M., Green, D., Ciesielski, V.,
Abbass, H., Michalewicz, Z., Hendtlass, T., Deb, K.,
Tan, K. C., Branke, J., and Shi, Y., editors, Simulated
Evolution and Learning, pages 514–523, Berlin, Hei-
delberg. Springer Berlin Heidelberg.
de Garis, H. (1993). Evolvable Hardware Genetic Program-
ming of a Darwin Machine. In Albrecht, R. F., Reeves,
C. R., and Steele, N. C., editors, Artificial Neural
Nets and Genetic Algorithms, pages 441–449, Vienna.
Springer Vienna.
de Garis, H. (1994). An artificial brain ATR’s CAM-Brain
Project aims to build/evolve an artificial brain with a
million neural net modules inside a trillion cell Cellu-
lar Automata Machine. New Generation Computing,
12(2):215–221.
Fredivianus, N., Prothmann, H., and Schmeck, H. (2010).
Xcs revisited: A novel discovery component for the
extended classifier system. In Deb, K., Bhattacharya,
A., Chakraborti, N., Chakroborty, P., Das, S., Dutta,
J., Gupta, S. K., Jain, A., Aggarwal, V., Branke, J.,
Louis, S. J., and Tan, K. C., editors, Simulated Evo-
lution and Learning, pages 289–298, Berlin, Heidel-
berg. Springer Berlin Heidelberg.
Gajda, Z. and Sekanina, L. (2007). Reducing the Number of
Transistors in Digital Circuits Using Gate-level Evo-
lutionary Design. In Proceedings of the 9th Annual
Conference on Genetic and Evolutionary Computa-
tion, GECCO ’07, pages 245–252, New York, NY,
USA. ACM.
Karpuzcu, U. R. (2005). Automatic Verilog Code Genera-
tion Through Grammatical Evolution. In Proceedings
of the 7th Annual Workshop on Genetic and Evolution-
ary Computation, GECCO ’05, pages 394–397, New
York, NY, USA. ACM.
Kruse, R., Borgelt, C., Klawonn, F., Moewes, C., Stein-
brecher, M., and Held, P. (2013). Fundamental Evolu-
tionary Algorithms, pages 227–274. Springer London,
London.
Miller, F. P., Vandome, A. F., and McBrewster, J. (2009).
Hamming Code: Parity Bit, Two- out- of- Five Code,
Hamming(7,4), Reed-Muller Code, Reed-Solomon Er-
ror Correction, Turbo Code, Low- Density Parity-
Check Code, Telecommunication, Linear Code. Alpha
Press.
ECTA 2020 - 12th International Conference on Evolutionary Computation Theory and Applications
36