{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:27:25Z","timestamp":1750220845732,"version":"3.41.0"},"reference-count":29,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2019,8,21]],"date-time":"2019-08-21T00:00:00Z","timestamp":1566345600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Swedish-Brazilian Research and Innovation Centre (CISB"},{"name":"Saab AB through the Call of Projects CISB Saab","award":["04\/2016"],"award-info":[{"award-number":["04\/2016"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Des. Autom. Electron. Syst."],"published-print":{"date-parts":[[2019,9,30]]},"abstract":"<jats:p>The tradeoff between analyzability and expressiveness is a key factor when choosing a suitable dataflow model of computation (MoC) for designing, modeling, and simulating applications considering a formal base. A large number of techniques and analysis tools exist for static dataflow models, such as synchronous dataflow. However, they cannot express the dynamic behavior required for more dynamic applications in signal streaming or to model runtime reconfigurable systems. On the other hand, dynamic dataflow models like Kahn process networks sacrifice analyzability for expressiveness. Scenario-aware dataflow (SADF) is an excellent tradeoff providing sufficient expressiveness for dynamic systems, while still giving access to powerful analysis methods. In spite of an increasing interest in SADF methods, there is a lack of formally-defined functional models for describing and simulating SADF systems. This article overcomes the current situation by introducing a functional model for the SADF MoC, as well as a set of abstract operations for simulating it. We present the first modeling and simulation tool for SADF so far, implemented as an open source library in the functional framework ForSyDe. We demonstrate the capabilities of the functional model through a comprehensive tutorial-style example of a RISC processor described as an SADF application, and a traditional streaming application where we model an MPEG-4 simple profile decoder. We also present a couple of alternative approaches for functionally modeling SADF on different languages and paradigms. One of such approaches is used in a performance comparison with our functional model using the MPEG-4 simple profile decoder as a test case. As a result, our proposed model presented a good tradeoff between execution time and implementation succinctness. Finally, we discuss the potential of our formal model as a frontend for formal system design flows regarding dynamic applications.<\/jats:p>","DOI":"10.1145\/3342997","type":"journal-article","created":{"date-parts":[[2019,8,21]],"date-time":"2019-08-21T11:40:27Z","timestamp":1566387627000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["Modeling and Simulation of Dynamic Applications Using Scenario-Aware Dataflow"],"prefix":"10.1145","volume":"24","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9212-4304","authenticated-orcid":false,"given":"Ricardo","family":"Bonna","sequence":"first","affiliation":[{"name":"University of Campinas\u2014UNICAMP, Campinas, SP, Brazil"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1595-3448","authenticated-orcid":false,"given":"Denis S.","family":"Loubach","sequence":"additional","affiliation":[{"name":"Aeronautics Institute of Technology\u2014ITA, SP, Brazil"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1666-1316","authenticated-orcid":false,"given":"George","family":"Ungureanu","sequence":"additional","affiliation":[{"name":"KTH Royal Institute of Technology, Kista, Sweden"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4859-3100","authenticated-orcid":false,"given":"Ingo","family":"Sander","sequence":"additional","affiliation":[{"name":"KTH Royal Institute of Technology, Kista, Sweden"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,8,21]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3122955.3122970"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSD.2010.21"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.nahs.2017.04.004"},{"volume-title":"An Introduction to the Theory of Lists","author":"Bird Richard S.","key":"e_1_2_1_4_1","unstructured":"Richard S. Bird . 1987. An Introduction to the Theory of Lists . Springer . Richard S. Bird. 1987. An Introduction to the Theory of Lists. Springer."},{"key":"e_1_2_1_5_1","unstructured":"Ricardo Bonna. 2018. ForSyDe-SADF examples. Retrieved from https:\/\/github.com\/forsyde\/forsyde-shallow-examples\/tree\/master\/src\/ForSyDe\/Shallow\/Example\/SADF.  Ricardo Bonna. 2018. ForSyDe-SADF examples. Retrieved from https:\/\/github.com\/forsyde\/forsyde-shallow-examples\/tree\/master\/src\/ForSyDe\/Shallow\/Example\/SADF."},{"volume-title":"IEEE International Conference on Acoustics Speech and Signal Processing. IEEE.","author":"Buck J. T.","key":"e_1_2_1_6_1","unstructured":"J. T. Buck and E. A. Lee . 1993. Scheduling dynamic dataflow graphs with bounded memory using the token flow model . In IEEE International Conference on Acoustics Speech and Signal Processing. IEEE. J. T. Buck and E. A. Lee. 1993. Scheduling dynamic dataflow graphs with bounded memory using the token flow model. In IEEE International Conference on Acoustics Speech and Signal Processing. IEEE."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCD.2012.6378644"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/ACSSC.2014.7094470"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11265-016-1193-7"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1878961.1878985"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596638.1596653"},{"key":"e_1_2_1_12_1","unstructured":"The ForSyDe Group. 2018. ForSyDe Shallow. Retrieved from https:\/\/github.com\/forsyde\/forsyde-shallow.  The ForSyDe Group. 2018. ForSyDe Shallow. Retrieved from https:\/\/github.com\/forsyde\/forsyde-shallow."},{"key":"e_1_2_1_13_1","volume-title":"Information Processing\u201974: Proceedings of the IFIP Congress, J. L. Rosenfeld (Ed.). North-Holland","author":"Kahn G.","year":"1974","unstructured":"G. Kahn . 1974 . The semantics of a simple language for parallel programming . In Information Processing\u201974: Proceedings of the IFIP Congress, J. L. Rosenfeld (Ed.). North-Holland , New York, NY, 471--475. G. Kahn. 1974. The semantics of a simple language for parallel programming. In Information Processing\u201974: Proceedings of the IFIP Congress, J. L. Rosenfeld (Ed.). North-Holland, New York, NY, 471--475."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/43.736561"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1987.5009446"},{"volume-title":"The Implementation of Functional Programming Languages","author":"Peyton Jones Simon L.","key":"e_1_2_1_16_1","unstructured":"Simon L. Peyton Jones . 1987. The Implementation of Functional Programming Languages . Prentice-Hall, Inc. , Upper Saddle River, NJ. Simon L. Peyton Jones. 1987. The Implementation of Functional Programming Languages. Prentice-Hall, Inc., Upper Saddle River, NJ."},{"key":"e_1_2_1_17_1","unstructured":"Claudius Ptolemaeus (Ed.). 2014. System Design Modeling and Simulation Using Ptolemy II. Ptolemy.org.  Claudius Ptolemaeus (Ed.). 2014. System Design Modeling and Simulation Using Ptolemy II. Ptolemy.org."},{"volume-title":"Handbook of Hardware\/Software Codesign, Soonhoi Ha and J\u00fcrgen Teich (Eds.)","author":"Sander Ingo","key":"e_1_2_1_18_1","unstructured":"Ingo Sander , Axel Jantsch , and Seyed-Hosein Attarzadeh-Niaki . 2017. ForSyDe: System design using a functional language and models of computation . In Handbook of Hardware\/Software Codesign, Soonhoi Ha and J\u00fcrgen Teich (Eds.) . Springer Netherlands , Dordrecht , 99--140. Ingo Sander, Axel Jantsch, and Seyed-Hosein Attarzadeh-Niaki. 2017. ForSyDe: System design using a functional language and models of computation. In Handbook of Hardware\/Software Codesign, Soonhoi Ha and J\u00fcrgen Teich (Eds.). Springer Netherlands, Dordrecht, 99--140."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2015.2484060"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2016.2597223"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/ACSD.2006.23"},{"volume-title":"International Conference on Embedded Computer Systems (SAMOS\u201911)","author":"Stuijk S.","key":"e_1_2_1_22_1","unstructured":"S. Stuijk , M. Geilen , B. Theelen , and T. Basten . 2011. Scenario-aware dataflow: Modeling, analysis and implementation of dynamic applications . In International Conference on Embedded Computer Systems (SAMOS\u201911) . 404--411. S. Stuijk, M. Geilen, B. Theelen, and T. Basten. 2011. Scenario-aware dataflow: Modeling, analysis and implementation of dynamic applications. In International Conference on Embedded Computer Systems (SAMOS\u201911). 404--411."},{"volume-title":"Proceedings of the 4th ACM and IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE\u201906)","author":"Theelen B. D.","key":"e_1_2_1_23_1","unstructured":"B. D. Theelen , M. C. W. Geilen , T. Basten , J. P. M. Voeten , S. V. Gheorghita , and S. Stuijk . 2006. A scenario-aware data flow model for combined long-run average and worst-case performance analysis . In Proceedings of the 4th ACM and IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE\u201906) . 185--194. B. D. Theelen, M. C. W. Geilen, T. Basten, J. P. M. Voeten, S. V. Gheorghita, and S. Stuijk. 2006. A scenario-aware data flow model for combined long-run average and worst-case performance analysis. In Proceedings of the 4th ACM and IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE\u201906). 185--194."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/QEST.2007.4"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2015.2510366"},{"volume-title":"2013 IEEE 16th International Symposium on Design and Diagnostics of Electronic Circuits 8 Systems (DDECS). IEEE.","author":"Uchevler B. N.","key":"e_1_2_1_26_1","unstructured":"B. N. Uchevler and K. Svarstad . 2013. Assertion based verification using PSL-like properties in Haskell . In 2013 IEEE 16th International Symposium on Design and Diagnostics of Electronic Circuits 8 Systems (DDECS). IEEE. B. N. Uchevler and K. Svarstad. 2013. Assertion based verification using PSL-like properties in Haskell. In 2013 IEEE 16th International Symposium on Design and Diagnostics of Electronic Circuits 8 Systems (DDECS). IEEE."},{"key":"e_1_2_1_27_1","volume-title":"Uchevler and Kjetil Svarstad","author":"Bahram","year":"2018","unstructured":"Bahram N. Uchevler and Kjetil Svarstad . 2018 . Modelling and assertion-based verification of run-time reconfigurable designs using functional programming abstractions. Int. J. Reconfigurable Comput . 2018 (July 2018), 1--25. Bahram N. Uchevler and Kjetil Svarstad. 2018. Modelling and assertion-based verification of run-time reconfigurable designs using functional programming abstractions. Int. J. Reconfigurable Comput. 2018 (July 2018), 1--25."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSD.2015.28"},{"volume-title":"Automation Test in Europe Conference Exhibition (DATE\u201917)","author":"van Kampenhout R.","key":"e_1_2_1_29_1","unstructured":"R. van Kampenhout , S. Stuijk , and K. Goossens . 2017. Programming and analysing scenario-aware dataflow on a multi-processor platform. In Design , Automation Test in Europe Conference Exhibition (DATE\u201917) . 876--881. R. van Kampenhout, S. Stuijk, and K. Goossens. 2017. Programming and analysing scenario-aware dataflow on a multi-processor platform. In Design, Automation Test in Europe Conference Exhibition (DATE\u201917). 876--881."}],"container-title":["ACM Transactions on Design Automation of Electronic Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3342997","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3342997","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:23:02Z","timestamp":1750202582000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3342997"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,8,21]]},"references-count":29,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2019,9,30]]}},"alternative-id":["10.1145\/3342997"],"URL":"https:\/\/doi.org\/10.1145\/3342997","relation":{},"ISSN":["1084-4309","1557-7309"],"issn-type":[{"type":"print","value":"1084-4309"},{"type":"electronic","value":"1557-7309"}],"subject":[],"published":{"date-parts":[[2019,8,21]]},"assertion":[{"value":"2018-12-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-06-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-08-21","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}