Abstract
Scalability problems have hindered the progress of Evolvable Hardware in tackling complex circuits. The two key issues are the amount of testing (for example, a 64-bit \(\times \) 64-bit add-shift multiplier problem has \(2^{64 + 64}\) test cases) and low level that hardware works at: a circuit to implement 64-bit \(\times \) 64-bit add-shift multiplier would require approximately 33,234 gates when synthesized using the powerful Yosys Open SYnthesis Suite tool. We use Grammatical Evolution and SystemVerilog, a Hardware Description Language (HDL), to evolve fully functional parameterized adder, multiplier and selective parity circuits with default input bit-width sizes of 64-bit + 64-bit, 64-bit \(\times \) 64-bit and 128-bit respectively.
These are substantially larger than the current state of the art for evolutionary approaches, specifically, 6.4\(\times \) (adder), 10.7\(\times \) (multiplier), and 6.7\(\times \) (parity). We are able to scale so dramatically because our use of an HDL permits us to operate at a far higher level of abstraction than most other approaches. This has the additional benefit that no further evolutionary experiments are needed to design different input bit-width sizes of the same circuit as is the case for existing EHW approaches. Thus, one can evolve once and reuse multiple times, simply by specifying the newly desired input/output bit-width sizes during module instantiation.
For example, 32-bit \(\times \) 32-bit and 256-bit \(\times \) 256-bit multipliers can be instantiated from an evolved parameterized multiplier. We also adopt a method for reducing testing from Digital Circuit Design known as corner case testing, well-known technique heavily relied upon by circuit designers to avoid time-consuming exhaustive testing; we demonstrate a simple way to identify and use corner cases for evolutionary testing and show that it enables the generation of massively complex circuits with a huge number of inputs.
We obtain successful results (ranging from 72% to 100%) on each benchmark and all three problems were tackled without resorting to the use of any standard decomposition methods due to our ability to use high-level programming constructs and operators available in SystemVerilog.
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 second author is partially financed by the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - Brasil (CAPES) - Finance Code 001.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Fišer, P., Schmidt, J., Vašíček, Z., Sekanina, L.: On logic synthesis of conventionally hard to synthesize circuits using genetic programming. In: 13th IEEE Symposium on Design and Diagnostics of Electronic Circuits and Systems, pp. 346–351 (2010). https://doi.org/10.1109/DDECS.2010.5491755
Goldman, B.W., Punch, W.F.: Reducing wasted evaluations in cartesian genetic programming. In: Krawiec, K., Moraglio, A., Hu, T., Etaner-Uyar, A.Ş., Hu, B. (eds.) EuroGP 2013. LNCS, vol. 7831, pp. 61–72. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37207-0_6
Hodan, D., Mrazek, V., Vasicek, Z.: Semantically-oriented mutation operator in cartesian genetic programming for evolutionary circuit design. In: Proceedings of the 2020 Genetic and Evolutionary Computation Conference, GECCO 2020, pp. 940–948. Association for Computing Machinery, New York (2020). https://doi.org/10.1145/3377930.3390188
Hrbacek, R., Sekanina, L.: Towards highly optimized cartesian genetic programming: from sequential via SIMD and thread to massive parallel implementation. In: Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation, GECCO 2014, pp. 1015–1022. Association for Computing Machinery, New York (2014). https://doi.org/10.1145/2576768.2598343
Kalganova, T.: Bidirectional incremental evolution in extrinsic evolvable hardware. In: Proceedings of the Second NASA/DoD Workshop on Evolvable Hardware, pp. 65–74 (2000). https://doi.org/10.1109/EH.2000.869343
Kalganova, T.: An extrinsic function-level evolvable hardware approach. In: Poli, R., Banzhaf, W., Langdon, W.B., Miller, J., Nordin, P., Fogarty, T.C. (eds.) EuroGP 2000. LNCS, vol. 1802, pp. 60–75. Springer, Heidelberg (2000). https://doi.org/10.1007/978-3-540-46239-2_5
Kocnova, J., Vasicek, Z.: Towards a scalable EA-based optimization of digital circuits. In: Sekanina, L., Hu, T., Lourenço, N., Richter, H., García-Sánchez, P. (eds.) EuroGP 2019. LNCS, vol. 11451, pp. 81–97. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-16670-0_6
Manfrini, F.A.L., Bernardino, H.S., Barbosa, H.J.C.: A novel efficient mutation for evolutionary design of combinational logic circuits. In: Handl, J., Hart, E., Lewis, P.R., López-Ibáñez, M., Ochoa, G., Paechter, B. (eds.) PPSN 2016. LNCS, vol. 9921, pp. 665–674. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-45823-6_62
Miller, J.F., Thomson, P.: Cartesian genetic programming. In: Poli, R., Banzhaf, W., Langdon, W.B., Miller, J., Nordin, P., Fogarty, T.C. (eds.) EuroGP 2000. LNCS, vol. 1802, pp. 121–132. Springer, Heidelberg (2000). https://doi.org/10.1007/978-3-540-46239-2_9
Murakawa, M., Yoshizawa, S., Kajitani, I., Furuya, T., Iwata, M., Higuchi, T.: Hardware evolution at function level. In: Voigt, H.-M., Ebeling, W., Rechenberg, I., Schwefel, H.-P. (eds.) PPSN 1996. LNCS, vol. 1141, pp. 62–71. Springer, Heidelberg (1996). https://doi.org/10.1007/3-540-61723-X_970
Ryan, C., Collins, J.J., Neill, M.O.: Grammatical evolution: evolving programs for an arbitrary language. In: Banzhaf, W., Poli, R., Schoenauer, M., Fogarty, T.C. (eds.) EuroGP 1998. LNCS, vol. 1391, pp. 83–96. Springer, Heidelberg (1998). https://doi.org/10.1007/BFb0055930
Ryan., C., Tetteh., M.K., Dias., D.M.: Behavioural modelling of digital circuits in system verilog using grammatical evolution. In: Proceedings of the 12th International Joint Conference on Computational Intelligence, ECTA, vol. 1, pp. 28–39. INSTICC, SciTePress (2020). https://doi.org/10.5220/0010066600280039
Sekanina, L., Walker, J.A., Kaufmann, P., Platzner, M.: Evolution of electronic circuits. In: Miller, J. (eds) Cartesian Genetic Programming. Natural Computing Series. Springer, Heidelberg, pp. 125–179 (2011). https://doi.org/10.1007/978-3-642-17310-3_5
Henriques da Silva, J.E., Soares Bernardino, H.: A 3-step cartesian genetic programming for designing combinational logic circuits with multiplexers. In: Moura Oliveira, P., Novais, P., Reis, L.P. (eds.) EPIA 2019. LNCS (LNAI), vol. 11804, pp. 762–774. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-30241-2_63
da Silva, J.E.H., de Souza, L.A.M., Bernardino, H.S.: Cartesian genetic programming with guided and single active mutations for designing combinational logic circuits. In: Nicosia, G., Pardalos, P., Umeton, R., Giuffrida, G., Sciacca, V. (eds.) LOD 2019. LNCS, vol. 11943, pp. 396–408. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-37599-7_33
Slaný, K., Sekanina, L.: Fitness landscape analysis and image filter evolution using functional-level CGP. In: Ebner, M., O’Neill, M., Ekárt, A., Vanneschi, L., Esparcia-Alcázar, A.I. (eds.) EuroGP 2007. LNCS, vol. 4445, pp. 311–320. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71605-1_29
Stomeo, E., Kalganova, T., Lambert, C.: Generalized disjunction decomposition for evolvable hardware. IEEE Trans. Syst. Man Cybern. Part B (Cybernetics) 36(5), 1024–1043 (2006)
Torresen, J.: A divide-and-conquer approach to evolvable hardware. In: Sipper, M., Mange, D., Pérez-Uribe, A. (eds.) ICES 1998. LNCS, vol. 1478, pp. 57–65. Springer, Heidelberg (1998). https://doi.org/10.1007/BFb0057607
Torresen, J.: Two-step incremental evolution of a prosthetic hand controller based on digital logic gates. In: Liu, Y., Tanaka, K., Iwata, M., Higuchi, T., Yasunaga, M. (eds.) ICES 2001. LNCS, vol. 2210, pp. 1–13. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45443-8_1
Vasicek, Z., Sekanina, L.: How to evolve complex combinational circuits from scratch? In: 2014 IEEE International Conference on Evolvable Systems, pp. 133–140 (2014)
Vasicek, Z., Sekanina, L.: Evolutionary approach to approximate digital circuits design. IEEE Trans. Evol. Comput. 19(3), 432–444 (2015). https://doi.org/10.1109/TEVC.2014.2336175
Vassilev, V.K., Miller, J.F.: Embedding landscape neutrality to build a bridge from the conventional to a more efficient three-bit multiplier circuit. In: Proceedings of the Genetic and Evolutionary Computation Conference. Morgan Kaufmann (2000)
Wolf, C.: Yosys open synthesis suite. http://www.clifford.at/yosys/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix
Appendix
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Tetteh, M.K., Mota Dias, D., Ryan, C. (2021). Evolution of Complex Combinational Logic Circuits Using Grammatical Evolution with SystemVerilog. In: Hu, T., Lourenço, N., Medvet, E. (eds) Genetic Programming. EuroGP 2021. Lecture Notes in Computer Science(), vol 12691. Springer, Cham. https://doi.org/10.1007/978-3-030-72812-0_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-72812-0_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-72811-3
Online ISBN: 978-3-030-72812-0
eBook Packages: Computer ScienceComputer Science (R0)