{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,10]],"date-time":"2025-09-10T22:48:47Z","timestamp":1757544527347,"version":"3.41.0"},"reference-count":41,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2014,3,10]],"date-time":"2014-03-10T00:00:00Z","timestamp":1394409600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100003447","name":"State Scholarships Foundation","doi-asserted-by":"publisher","award":["2008-5530"],"award-info":[{"award-number":["2008-5530"]}],"id":[{"id":"10.13039\/501100003447","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2014,12,5]]},"abstract":"<jats:p>\n            We present\n            <jats:italic>SysPy<\/jats:italic>\n            (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.\n            <jats:italic>SysPy<\/jats:italic>\n            acts as a \u201cglue\u201d software between mature HDLs, ready-to-use VHDL components and programmable processor soft IP cores.\n            <jats:italic>SysPy<\/jats:italic>\n            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.\n            <jats:italic>SysPy's<\/jats:italic>\n            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\n            <jats:italic>SysPy's<\/jats:italic>\n            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.\n          <\/jats:p>","DOI":"10.1145\/2560032","type":"journal-article","created":{"date-parts":[[2014,3,18]],"date-time":"2014-03-18T12:09:07Z","timestamp":1395144547000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["Python to accelerate embedded SoC design"],"prefix":"10.1145","volume":"13","author":[{"given":"Evangelos","family":"Logaras","sequence":"first","affiliation":[{"name":"University of Athens, Athens, Greece"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Orsalia G.","family":"Hazapis","sequence":"additional","affiliation":[{"name":"University of Athens, Athens, Greece"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Elias S.","family":"Manolakos","sequence":"additional","affiliation":[{"name":"University of Athens, Athens, Greece"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2014,3,10]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Aeroflex Gaisler GRMON. 2012. Debug monitor for Leon. http:\/\/www.gaisler.com.  Aeroflex Gaisler GRMON. 2012. Debug monitor for Leon. http:\/\/www.gaisler.com."},{"key":"e_1_2_1_2_1","unstructured":"Aeroflex Gaisler Leon3. 2012. LEON3 Multiprocessing CPU Core. http:\/\/www.gaisler.com.  Aeroflex Gaisler Leon3. 2012. LEON3 Multiprocessing CPU Core. http:\/\/www.gaisler.com."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1093\/bioinformatics\/btn051"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/360262.360268"},{"volume-title":"Proceedings of the International Symposium on Quality Electronic Design. 87--93","author":"Chen P.","key":"e_1_2_1_5_1","unstructured":"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 . 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."},{"key":"e_1_2_1_6_1","unstructured":"Ciranova. 2012. PyCell Studio. http:\/\/www.ciranova.com.  Ciranova. 2012. PyCell Studio. http:\/\/www.ciranova.com."},{"key":"e_1_2_1_7_1","unstructured":"Copasi. 2012. Biochemical network simulator. http:\/\/www.copasi.org\/.  Copasi. 2012. Biochemical network simulator. http:\/\/www.copasi.org\/."},{"key":"e_1_2_1_8_1","first-page":"5","article-title":"MyHDL: A Python-based hardware description language","volume":"127","author":"Decaluwe J.","year":"2004","unstructured":"J. Decaluwe . 2004 . MyHDL: A Python-based hardware description language . Linux J , 127 , 5 -- 9 . J. Decaluwe. 2004. MyHDL: A Python-based hardware description language. Linux J, 127, 5--9.","journal-title":"Linux J"},{"key":"e_1_2_1_9_1","unstructured":"European Bioinformatics Institute. 2012. Biomodels database - a database of annotated published models. http:\/\/www.ebi.ac.uk\/biomodels-main\/.  European Bioinformatics Institute. 2012. Biomodels database - a database of annotated published models. http:\/\/www.ebi.ac.uk\/biomodels-main\/."},{"key":"e_1_2_1_10_1","unstructured":"G. Ewing. 2007. Plex: A Lexical Analysis Module for Python. http:\/\/www.cosc.canterbury.ac.nz\/greg.ewing\/python\/Plex.  G. Ewing. 2007. Plex: A Lexical Analysis Module for Python. http:\/\/www.cosc.canterbury.ac.nz\/greg.ewing\/python\/Plex."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-25944-2_157"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1021\/jp993732q"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1016\/0021-9991(76)90041-3"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1146\/annurev.physchem.58.032806.104637"},{"volume-title":"Proceedings of the International Conference on Field Programmable Logic. 1040--1043","author":"Haglund P.","key":"e_1_2_1_15_1","unstructured":"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 . 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."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2011.90"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1093\/bioinformatics\/btg015"},{"volume-title":"Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'09)","author":"Hutchings B.","key":"e_1_2_1_18_1","unstructured":"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. 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."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1021\/bp070255h"},{"volume-title":"Proceedings of the IEEE International Conference on Electronics, Circuits and Systems. 762--765","author":"Logaras E.","key":"e_1_2_1_20_1","unstructured":"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 . 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."},{"key":"e_1_2_1_21_1","unstructured":"A. Mashtizadeh. 2007. PHDL: A Python hardware design framework. M.S. thesis Department of Electrical Engineering and Computer Science Massachusetts Institute of technology.  A. Mashtizadeh. 2007. PHDL: A Python hardware design framework. M.S. thesis Department of Electrical Engineering and Computer Science Massachusetts Institute of technology."},{"volume-title":"Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines. 167--174","author":"Mencer O.","key":"e_1_2_1_22_1","unstructured":"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 . 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."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2011.36"},{"volume-title":"Engineering Genetic Circuits","author":"Myers C. J.","key":"e_1_2_1_24_1","unstructured":"C. J. Myers . 2009. Engineering Genetic Circuits . Chapman and Hall\/CRC Mathematical & Computational Biology Series, CRC Press . C. J. Myers. 2009. Engineering Genetic Circuits. Chapman and Hall\/CRC Mathematical & Computational Biology Series, CRC Press."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1093\/bioinformatics\/btp457"},{"key":"e_1_2_1_26_1","unstructured":"OpenCores AVR. 2009. Atmel Mega128 processor core. http:\/\/opencores.org\/project avrcore.  OpenCores AVR. 2009. Atmel Mega128 processor core. http:\/\/opencores.org\/project avrcore."},{"key":"e_1_2_1_27_1","unstructured":"OpenCores MinSoC. 2012. Minimal OpenRISC system on chip. http:\/\/opencores.org\/project minsoc.  OpenCores MinSoC. 2012. Minimal OpenRISC system on chip. http:\/\/opencores.org\/project minsoc."},{"volume-title":"Proceedings of the International Symposium on Field-Programmable Custom Computing Machines. 47--56","author":"Ou J.","key":"e_1_2_1_28_1","unstructured":"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 . 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."},{"volume-title":"Proceedings of the International Conference on Systems Biology.","author":"Ouzounoglou E.","key":"e_1_2_1_29_1","unstructured":"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. 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."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.18637\/jss.v025.i12"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1063\/1.1627296"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043662.2043666"},{"key":"e_1_2_1_33_1","unstructured":"StochPy. 2012. Stochastic modelling in Python. http:\/\/stompy.sourceforge.net\/.  StochPy. 2012. Stochastic modelling in Python. http:\/\/stompy.sourceforge.net\/."},{"key":"e_1_2_1_34_1","unstructured":"Synopsys Synphony. 2012. High Level Synthesis with Synphony C compiler. http:\/\/www.synopsys.com.  Synopsys Synphony. 2012. High Level Synthesis with Synphony C compiler. http:\/\/www.synopsys.com."},{"key":"e_1_2_1_35_1","unstructured":"SysPy. 2012. System Python. http:\/\/cgi.di.uoa.gr\/&sim;evlog\/syspy.html.  SysPy. 2012. System Python. http:\/\/cgi.di.uoa.gr\/&sim;evlog\/syspy.html."},{"key":"e_1_2_1_36_1","unstructured":"SysPy Gillespie SoC. 2012. http:\/\/cgi.di.uoa.gr\/&sim;evlog\/Gillespie_SoC.html.  SysPy Gillespie SoC. 2012. http:\/\/cgi.di.uoa.gr\/&sim;evlog\/Gillespie_SoC.html."},{"key":"e_1_2_1_37_1","unstructured":"Xilinx System Generator. 2009. System Generator for DSP UG640. http:\/\/www.xilinx.com.  Xilinx System Generator. 2009. System Generator for DSP UG640. http:\/\/www.xilinx.com."},{"key":"e_1_2_1_38_1","unstructured":"Xilinx XST. 2009. Xilinx Synthesis Technology User Guide UG627. http:\/\/www.xilinx.com.  Xilinx XST. 2009. Xilinx Synthesis Technology User Guide UG627. http:\/\/www.xilinx.com."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2007.4380656"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2006.311218"},{"key":"e_1_2_1_41_1","volume-title":"Proceedings of the International SoC Design Conference.","volume":"1","author":"Zhang M.","unstructured":"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. 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."}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2560032","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2560032","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:10:21Z","timestamp":1750234221000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2560032"}},"subtitle":["A case study for systems biology"],"short-title":[],"issued":{"date-parts":[[2014,3,10]]},"references-count":41,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2014,12,5]]}},"alternative-id":["10.1145\/2560032"],"URL":"https:\/\/doi.org\/10.1145\/2560032","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"type":"print","value":"1539-9087"},{"type":"electronic","value":"1558-3465"}],"subject":[],"published":{"date-parts":[[2014,3,10]]},"assertion":[{"value":"2012-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-03-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}