A Case Study on Hardware/Software Codesign in Embedded Artificial Neural Networks

  • Jonathan ParriEmail author
  • John-Marc Desmarais
  • Daniel Shapiro
  • Miodrag Bolic
  • Voicu Groza
Part of the Topics in Intelligent Engineering and Informatics book series (TIEI, volume 1)


Software/hardware codesign is a complex research problem that has been slowly making headway into industry-ready system design products. Recent advances have shown viability to this direction within the design space exploration scope, especially with regards to rapid development cycles. Here, we exploit the hardware/software codesign landscape in the artificial neural network problem space. Automated tools requiring minimal technical expertise from Altera and Tensilica are examined along with newer advances solely within hardware/software codesign research domain. The design space exploration options discussed here look to achieve better software/hardware partitions using instruction-set extensions and coprocessors. As neural networks continue to find usage in embedded systems, it has become imperative to efficiently optimize their implementation within a short development cycle. Modest speedups can be easily achieved with these automated hardware/software codesign tools on the benchmarks examined.


Clock Cycle Design Space Exploration Bidirectional Associative Memory Custom Instruction Hardware Accelerator 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Kutza, K.: Neural Networks at your Fingertips – The Hopfield Model , (accessed September 22, 1996)
  2. 2.
    Kutza, K. (1996) Neural Network at your Fingertips – Bidirectional Associative Memory, (accessed September 22, 2011)
  3. 3.
    Tensilica: XPRES Product Brief (2005), (accessed September 22, 2011)
  4. 4.
    Altera: NIOS II C2H Compiler User Guide (2009), (accessed September 22, 2011)
  5. 5.
    Shapiro, D.: Design and implementation of instruction set extension identification for a multiprocessor system-on-chip hardware/software co-design toolchain. Dissertation. University of Ottawa, Ottawa, Canada (2009)Google Scholar
  6. 6.
    Shapiro, D., Parri, J., Desmarais, J.-M., Groza, V., Bolic, M.: ASIPs for artificial neural networks. In: Proceedings of 6th IEEE Symposium on Applied Computational Intelligence and Informatics (SACI 2011), Timisoara, Romania, pp. 529–533 (2011)Google Scholar
  7. 7.
    Dreyfus, G.: Neural Networks: Methodology and Applications. Springer, Heidelberg (2005)zbMATHGoogle Scholar
  8. 8.
    Kosko, B.: Bidirectional associative memories. IEEE Trans. on Syst. Man and Cybern. 18, 49–60 (1988)MathSciNetCrossRefGoogle Scholar
  9. 9.
    Hopfield, J.: Neural networks and physical systems with emergent collective computational Abilities. Proc. of the Natl. Acad. of Sci. 79, 2554–2558 (1982)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Whitson, G., Wu, C., Taylor, J., Ermongkonchai, A.: CANS: an interactive neural network system for Cray supercomputers. In: Proceedings of 1992 ACM/SIGAPP Symp. on Appl. Comput (SAC 1992), Las Vegas, USA, pp. 665–668 (1992)Google Scholar
  11. 11.
    Ananthanarayanan, R., Esser, S.K., Simon, H.D., Modha, D.S.: The cat is out of the bag: cortical simulations with 109 neurons, 1013 synapses. In: Proceeding of Conf on High Perform Comput Netw Storage and Analysis (SC 2009), pp. 63:1–63:12 (2009)Google Scholar
  12. 12.
    Shapiro, D., Digeser, P., Tubolino, M., Klemm, M., Sikora, A., Bolic, M.: Instruction set extensions for computation on complex floating point numbers. In: Proceedings of IEEE 26th Convention of Electr. and Electron Eng. in Israel (IEEEI 2010), Eilat, Israel, pp. 938–941 (2010)Google Scholar
  13. 13.
    David, G., Darin, P.: Automatic generation of application specific processors. In: Proceedings of 2003 Int. Conf. on Compil. Archit. and Synth. for Embed. Syst. (CASES 2003), New York, United States, pp. 137–147 (2003)Google Scholar
  14. 14.
    Vutsinas, C., Taha, T., Rice, K.: A context switching streaming memory architecture to accelerate a neocortex model. Microprocess Microsyst. 33, 117–128 (2009); doi:10.1016/j.micpro.2008.08.011Google Scholar
  15. 15.
    Rice, K., Taha, T., Vutsinas, C.: Scaling analysis of a neocortex inspired cognitive model on the Cray XD1. J. Supercomput. 47, 21–43 (2009); doi:10.1007/s11227-008-0195-zGoogle Scholar
  16. 16.
    BrainScaleS: The BrainScaleS project (2011), (accessed September 22, 2011)
  17. 17.
    Versace, M., Chandler, B.: The brain of a new machine. IEEE Spectrum 47(12), 30–33 (2010)CrossRefGoogle Scholar
  18. 18.
    Russell, A., Orchard, G., Dong, Y., Mihalas, S., Niebur, E., Tapson, J., Etienne-Cummings, R.: Optimization methods for spiking neurons and networks. IEEE Trans. on Neural Netw. 21, 1950–1962 (2010)CrossRefGoogle Scholar
  19. 19.
    Johns Hopkins University Computational Sensory-Motor Systems Lab Integrate and Fire Array Transceiver (2011), (accessed September 22, 2011)
  20. 20.
    Parri, J., Ratti, S.: Trigonometric function approximation neural network based coprocessor. In: Proceedings of 2nd Microsyst. and Nanoelectron Res. Conf. (MNRC 2009), Ottawa, Canada, pp. 148–151 (2009)Google Scholar
  21. 21.
    Thareja, V., Bolic, M., Groza, V.: Design of a fuzzy logic coprocessor using Handel-C. In: Proceedings of 2nd Int. Conf. on Soft. Comput. Appl (SOFA 2007), Gyula, Hungary, pp. 83–88 (2007)Google Scholar
  22. 22.
    Salapura, V., Gschwind, M., Maischberger, O.: A fast FPGA implementation of a general purpose neuron. In: Proceedings of 4th Int. Workshop on Field-Program Log and Appl. (FPL 1994), pp. 175–182 (1994)Google Scholar
  23. 23.
    Tsui, K., Yanco, H.: Simplifying wheelchair mounted robotic arm control with a visual interface. In: Proceedings of AAAI Spring Symp. on Multidiscip. Collab. for Soc. Assist. Robot. (AAAI SS07-2007), Palo Alto, USA, pp. 247–251 (2007)Google Scholar
  24. 24.
    Wang, Q., Li, A., Li, Z., Wan, Y.: A Design and Implementation of Reconfigurable Architecture for Neural Networks Based on Systolic Arrays. In: Wang, J., Yi, Z., Żurada, J.M., Lu, B.-L., Yin, H. (eds.) ISNN 2006. LNCS, vol. 3973, pp. 1328–1333. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  25. 25.
    Esmaeilzadeh, H., Farzan, F., Shahidi, N., Fakhraie, S., Lucas, C., Tehranipoor, M.: NnSP: embedded neural networks stream processor. In: Proceedings of 48th Midwest Symp. on in Circuits and Syst. (MWSCAS 2005), Cincinnati, USA, vol. 1, pp. 223–226 (2005)Google Scholar
  26. 26.
    Nageswaran, J.M., Dutt, N., Krichmar, J.L., Nicolau, A., Veidenbaum, A.V.: 2009 special issue: A configurable simulation environment for the efficient simulation of large-scale spiking neural networks on graphics processors. Neural Netw. 22, 791–800 (2009)CrossRefGoogle Scholar
  27. 27.
    Parri, J., Bolic, M., Groza, V.: Custom instruction hardware integration within a SoC hybrid environment. In: Proceedings of 6th IEEE Symposium on Applied Computational Intelligence and Informatics (SACI 2011), pp. 517–522 (2011)Google Scholar

Copyright information

© Springer-Verlag GmbH Berlin Heidelberg 2012

Authors and Affiliations

  • Jonathan Parri
    • 1
    Email author
  • John-Marc Desmarais
    • 1
  • Daniel Shapiro
    • 1
  • Miodrag Bolic
    • 1
  • Voicu Groza
    • 1
  1. 1.Computer Architecture Research Group, School of Electrical Engineering and Computer ScienceUniversity of OttawaOttawaCanada

Personalised recommendations