skip to main content
research-article

Python to accelerate embedded SoC design: A case study for systems biology

Published:10 March 2014Publication History
Skip Abstract Section

Abstract

We present SysPy (System Python) a tool which exploits the strengths of the popular Python scripting language to boost design productivity of embedded System on Chips for FPGAs. SysPy acts as a “glue” software between mature HDLs, ready-to-use VHDL components and programmable processor soft IP cores. SysPy can be used to: (i) automatically translate hardware components described in Python into synthesizable VHDL, (ii) capture top-level structural descriptions of processor-centric SoCs in Python, (iii) implement all the steps necessary to compile the user's C code for an instruction set processor core and generate processor specific Tcl scripts that import to the design project all the necessary HDL files of the processor's description and instantiate/connect the core to other blocks in a synthesizable top-level Python description. Moreover, we have developed a Hardware Abstraction Layer (HAL) in Python which allows user applications running in a host PC to utilize effortlessly the SoC's resources in the FPGA. SysPy's design capabilities, when complemented with the developed HAL software API, provide all the necessary tools for hw/sw partitioning and iterative design for efficient SoC's performance tuning. We demonstrate how SysPy's design flow and functionalities can be used by building a processor-centric embedded SoC for computational systems biology. The designed SoC, implemented using a Xilinx Virtex-5 FPGA, combines the flexibility of a programmable soft processor core (Leon3) with the high performance of an application specific core to simulate flexibly and efficiently the stochastic behavior of large size biomolecular reaction networks. Such networks are essential for studying the dynamics of complex biological systems consisting of multiple interacting pathways.

References

  1. Aeroflex Gaisler GRMON. 2012. Debug monitor for Leon. http://www.gaisler.com.Google ScholarGoogle Scholar
  2. Aeroflex Gaisler Leon3. 2012. LEON3 Multiprocessing CPU Core. http://www.gaisler.com.Google ScholarGoogle Scholar
  3. B. J. Bornstein, S. M. Keating, A. Jouraku, and M. Hucka. 2008. LibSBML: An API library for SBML. Bioinformatics 24, 6, 880--881. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. Chapman and J. Chang. 2000. Biopython: Python tools for computational biology. SIGBIO Newsl. 20, 2, 15--19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Chen, D. Kirkpatrick, and K. Keutzer. 2001. Scripting for EDA tools: a case study. In Proceedings of the International Symposium on Quality Electronic Design. 87--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ciranova. 2012. PyCell Studio. http://www.ciranova.com.Google ScholarGoogle Scholar
  7. Copasi. 2012. Biochemical network simulator. http://www.copasi.org/.Google ScholarGoogle Scholar
  8. J. Decaluwe. 2004. MyHDL: A Python-based hardware description language. Linux J, 127, 5--9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. European Bioinformatics Institute. 2012. Biomodels database - a database of annotated published models. http://www.ebi.ac.uk/biomodels-main/.Google ScholarGoogle Scholar
  10. G. Ewing. 2007. Plex: A Lexical Analysis Module for Python. http://www.cosc.canterbury.ac.nz/greg.ewing/python/Plex.Google ScholarGoogle Scholar
  11. H. Fangohr. 2004. A comparison of C, MATLAB, and Python as teaching languages in engineering. In Proceedings of the International Conference on Computational Science (ICCS'04). M. Bubak, G. van Albada, P. Sloot, and J. Dongarra, Eds., Lecture Notes in Computer Science, vol. 3039, Springer, 1210--1217.Google ScholarGoogle ScholarCross RefCross Ref
  12. M. A. Gibson and J. Bruck. 2000. Efficient exact stochastic simulation of chemical systems with many species and many channels. J. Phys. Chem. A 104, 9, 1876--1889.Google ScholarGoogle ScholarCross RefCross Ref
  13. D. T. Gillespie. 1976. A general method for numerically simulating the stochastic time evolution of coupled chemical reactions. J. Comput. Phys. 22, 1--40.Google ScholarGoogle ScholarCross RefCross Ref
  14. D. T. Gillespie. 2007. Stochastic simulation of chemical kinetics. Ann. Rev. Phys. Chem. 58, 35--55.Google ScholarGoogle ScholarCross RefCross Ref
  15. P. Haglund, O. Mencer, W. Luk, and B. Tai. 2003. PyHDL: Hardware scripting with Python. In Proceedings of the International Conference on Field Programmable Logic. 1040--1043.Google ScholarGoogle Scholar
  16. O. G. Hazapis and E. S. Manolakos. 2011. Scalable FRM-SSA SoC design for the simulation of networks with thousands of biochemical reactions in real time. In Proceedings of the International Conference on Field Programmable Logic and Applications. 459--463. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Hucka, A. Finney, H. M. Sauro, H. Bolouri, J. C. Doyle, and H. Kitano. 2003. The Systems Biology Markup Language (SBML): a medium for representation and exchange of biochemical network models. Bioinformatics 19, 4, 524--531.Google ScholarGoogle ScholarCross RefCross Ref
  18. B. Hutchings, B. Nelson, S. West, and R. Curtis. 2009. Comparing fine-grained performance on the Ambric MPPA against an FPGA. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'09). 174--179.Google ScholarGoogle Scholar
  19. H. Li, Y. Cao, L. R. Petzold, and D. T. Gillespie. 2008. Algorithms and software for stochastic simulation of biochemical reacting systems. Biotechnol. Progr. 24, 1, 56--61.Google ScholarGoogle ScholarCross RefCross Ref
  20. E. Logaras and E. S. Manolakos. 2010. SysPy: Using Python for processor-centric SoC design. In Proceedings of the IEEE International Conference on Electronics, Circuits and Systems. 762--765.Google ScholarGoogle Scholar
  21. A. Mashtizadeh. 2007. PHDL: A Python hardware design framework. M.S. thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of technology.Google ScholarGoogle Scholar
  22. O. Mencer, M. Morf, and M. J. Flynn. 1998. PAM-Blox: High performance FPGA design for adaptive computing. In Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines. 167--174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. K. J. Millman and M. Aivazis. 2011. Python for Scientists and Engineers. Comput. Sci. Eng. 13, 2, 9--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. J. Myers. 2009. Engineering Genetic Circuits. Chapman and Hall/CRC Mathematical & Computational Biology Series, CRC Press.Google ScholarGoogle Scholar
  25. C. J. Myers, N. Barker, K. Jones, H. Kuwahara, C. Madsen, and N.-P. D. Nguyen. 2009. iBioSim. Bioinformatics 25, 21, 2848--2849. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. OpenCores AVR. 2009. Atmel Mega128 processor core. http://opencores.org/project,avrcore.Google ScholarGoogle Scholar
  27. OpenCores MinSoC. 2012. Minimal OpenRISC system on chip. http://opencores.org/project,minsoc.Google ScholarGoogle Scholar
  28. J. Ou and V. K. Prasanna. 2004. PyGen: A Matlab/Simulink based tool for synthesizing parameterized and energy efficient designs using FPGAs. In Proceedings of the International Symposium on Field-Programmable Custom Computing Machines. 47--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. E. Ouzounoglou, K. Vekrellis, and E. S. Manolakos. 2011. In silico modeling of alpha-synuclein oligomerization effects on neuronal homeostasis. In Proceedings of the International Conference on Systems Biology.Google ScholarGoogle Scholar
  30. M. Pineda-Krch. 2008. GillespieSSA: Implementing the Gillespie Stochastic Simulation Algorithm in R. J. Stat. Software 25, 12, 1--18.Google ScholarGoogle ScholarCross RefCross Ref
  31. M. Rathinam, L. R. Petzold, Y. Cao, and D. T. Gillespie. 2003. Stiffness in stochastic chemically reacting systems: The implicit tau-leaping method. J. Chem. Phys. 119, 24, 12784--12794.Google ScholarGoogle ScholarCross RefCross Ref
  32. M. Schoeberl, S. Korsholm, T. Kalibera, and A. P. Ravn. 2011. A Hardware Abstraction Layer in Java. ACM Trans. Embed. Comput. Syst. 10, 4, 1--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. StochPy. 2012. Stochastic modelling in Python. http://stompy.sourceforge.net/.Google ScholarGoogle Scholar
  34. Synopsys Synphony. 2012. High Level Synthesis with Synphony C compiler. http://www.synopsys.com.Google ScholarGoogle Scholar
  35. SysPy. 2012. System Python. http://cgi.di.uoa.gr/∼evlog/syspy.html.Google ScholarGoogle Scholar
  36. SysPy Gillespie SoC. 2012. http://cgi.di.uoa.gr/∼evlog/Gillespie_SoC.html.Google ScholarGoogle Scholar
  37. Xilinx System Generator. 2009. System Generator for DSP, UG640. http://www.xilinx.com.Google ScholarGoogle Scholar
  38. Xilinx XST. 2009. Xilinx Synthesis Technology User Guide, UG627. http://www.xilinx.com.Google ScholarGoogle Scholar
  39. M. Yoshimi, Y. Iwaoka, Y. Nishikawa, et al. 2007. FPGA implementation of a data-driven stochastic biochemical simulator with the Next Reaction Method. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'07). 254--259.Google ScholarGoogle ScholarCross RefCross Ref
  40. M. Yoshimi, Y. Osana, Y. Iwaoka, et al. 2006. An FPGA implementation of high throughput stochastic simulator for large-scale biochemical systems. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'06). 1--6.Google ScholarGoogle ScholarCross RefCross Ref
  41. M. Zhang, S. Tu, and Z. Chai. 2008. PDSDL: A dynamic System Description Language. In Proceedings of the International SoC Design Conference. Vol. 1. IEEE, 204--209.Google ScholarGoogle Scholar

Index Terms

  1. Python to accelerate embedded SoC design: A case study for systems biology

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!