Formal Verification of Embedded Systems and SystemC Models: A Review
The paragraphs below serve as an in depth review of formal verification of embedded systems and SystemC models. Specific articles , ,  reviewed and perused are placed at the core due to a wealth of value attributed to research and examination of embedded systems as a general concept. These articles examine of formal verification relates to the use of programming languages like SystemC models also enhances further design layers of the embedded system. The use of SystemC extends value toward formal verification as architecture can expand in functionality and performance for the whole of design process. Integration of the system further allows specific application to a myriad of purposes and further flexibility of design which is valuable today.
Formal verification constructs within system architecture enable further integration of both front and back end processes simultaneously with the active use of System C models.  System C models seem to offer the correct amount of flexibility yet, compliance to serve the needs of the system as symbolic execution persists to increase acceleration of inputs and scheduling sequences.  For System C to remain an effective coding language of choice, the issue of symbolic execution must address merging paths within the verification to avoid 'explosions' but also redundancy.  In order to simulate further paths, integration needs to focus on use of more than one model for cohesion.  Furthermore, SystemC transforms to provide an open parsing agent to independent formal verification as this also replicates a compliance system within the simulation. 
The importance of formal verification extends to time and resources. Models like SystemC applied to the design of architecture must be correct to avoid excessive losses and risk to weakness within. The system will only be as robust as the language chosen for design. Dynamics found within virtual prototypes require formal verification.  With the use of SystemC models as active bridges within wiring for transaction level modelling or TLMs, the verification can take place on the front end but there also must be integration to the back end of the system.  What is troubling here presents complexity for how such wiring can be done at simulation to support the activity of formal verification while also maintaining the virtual integrity of the prototype.  SystemC presents complications by its self as a language and integration with TLMs but the gap is narrowing to allow for further transformative properties of the language from front in to back end.  However use of SystemC alone presents issue for formal verification as absence of errors cannot be proved with informal verification processes.  Much of why SystemC modeling presents issues for formal verification directly relates to object oriented characteristics and event motivated semantics.  Possibly a solution here means utilizing a hybrid of coding language to avoid the susceptibility of errors as a result of corner scenarios.  If codes represent cycles within the verification, SystemC model present limitations within design. Use of intermediate verification language or IVL decreases the gap between error and loop for SystemC models.  
Still it can be argued such errors and gaps only increase innovation and seeking further synthesis at higher levels in order to design flaws.  Such processes lead to transformation of design that further allows optimal performance of large scale systems without detrimental and costly ramifications.  To avoid errors, code modeling extends beyond SystemC to allow for a layering affect within the design seeking to transform the process of formal verification and not just make assertions.  What may be forgotten between the interactive layers as the language seeks to transformation the verification process points to the level of abstraction many systems revolve around.  Embedded systems are meant to be simplistic in design and support flexible functionality in synergy of hardware and software in real time.  The concept of the flash memory component enables embedded systems presence in many common use devices.   
The unfortunate reality for increased technological device use at an everyday level also presents increased risk and loss of privacy.  Embedded systems need trusted formal verification processes to secure the authenticity of the code sequence.   In order to keep the functionality of the embedded system up to par and the approach to formal verification remains automated, accepted sequences must use specific code language.  Even in the complex nature of architectural design layers, the abstract qualities extend to maintaining the automation and flow of information.   How such layered partitions support the function of the embedded system also reflects careful consideration for the types of code language such as SystemC to write the sequence.   Even so, difficult challenges found within SystemC models because of object and event philosophies, its use for formal verification within embedded systems rely upon development of techniques. 
Expectation for further devising solution for such challenges exists because the smaller the device, the more the embedded system needed as well as a valid format of formal verification.  However while some designers find the threading of SystemC part of the challenge, others see potential for how interconnecting the threads can create a support webbing within the architecture that also commits to expanding space, functionality of features within verification flow.   Assuming formal verification is accurate the fatal flaw of design within the SystemC modelling suggests a need for structure and behavior for design that cannot always be automated or seamless but yet eliminates errors.  A fully regulated embedded control system will be able to self-check and predict the error as or before it takes place because the symbiotic relationship between hardware and software is so precisely integrated, verification flows maintain performance.  Furthermore the embedded system proliferates the dependence upon TLMs as information flows constantly between core and user. SystemC remains significant to the transaction because of its real time event trait. 
What remains at issue upon continued review as literature also discusses issues and future concerns for the use of SystemC as the language supporting verification sequences for embedded systems. Part of what exuberates the need for such flawless systems id the advent of such gadgets and their regular everyday use.  The global need for information has changed how people communicate and the level of knowledge being transmitted. The implication remains for the system design being flawed because it may lack controls meant to protect transactions. The formal verification process relies upon protocols to set into place a safe design for flexible use. The future of such systems hinges upon the function of design and solving specific inadequacies found within the use of SystemC.  There is the concern for further design enhanced as the use of embedded system persists and the drive to innovate these devices for specific use also extends the need for specific methods toward formal verification.  The use of small and specialized languages does not align with the needs of future design and application of formal verification within embedded systems.  This means shifting the parameters of embedded system design to secure transactions and regular exchange of information at the highest level of protective measures.  What remains to be seen is how this goal can be accomplished with the use of SystemC by its self when dynamic conditions do not add up. Attention to synthesis within the design may contribute to extending possible solutions in terms of code sequences and performance outputs of the system.  Will this lead to strong, more profound integrity of design; quite possibly. Embedded systems rely upon transparency and clear connection between hardware and software.   The future of these systems will only be as strong as the design they use with specific chosen sequencing languages like SystemC models. What has been discovered is that such languages have limitations to design that may create inherent flaws or gaps with the system's ability to remain innovative.  Issue for how to write the sequence needed for formal verification remains a tremendous concern for the future of transaction related information flow.  One can argue, this is the central concern for most innovation; how it can remain valuable, useful, and integrate functionality consistent with user needs. Much of the future remains uncertain in terms of how design will solve these concerns for errors within code but it remains clear that use of embedded systems is not going away.  The social implication of not seeking a solution also corresponds with the known threat errors can cause which are compliance related.
1. Le HM, GroSe D, Herdt V, Drechsler R. Verifying SystemC using an intermediate verification language and symbolic simulation. In Design Automation Conference (DAC), 2013 50th ACM/EDAC/IEEE 2013 May 29 (pp. 1-6). IEEE.
2. Le HM, Herdt V, GroSe D, Drechsler R. Towards formal verification of real-world systemc TLM peripheral models: a case study. In Proceedings of the 2016. Conference on Design, Automation & Test in Europe 2016 Mar 14 (pp. 1160- 1163). EDA Consortium.
3. Herdt V, Le HM, Drechsler R. Verifying SystemC using stateful symbolic simulation. In Design Automation Conference (DAC), 2015 52nd ACM/EDAC/IEEE 2015 Jun 8 (pp. 1-6). IEEE.
4. Kundu S, Lerner S, Gupta R. Validating high-level synthesis. In International Conference on Computer Aided Verification 2008 Jul 7 (pp. 459-472). Springer Berlin Heidelberg.
5. Habibi A, Tahar S. Design and verification of SystemC transaction-level models. IEEE Transactions on very large scale integration (VLSI) Systems. 2006 Jan;14(1):57- 68.
6. Jantsch A, Sander I. Models of computation and languages for embedded system design. IEE Proceedings-Computers and Digital Techniques. 2005 Mar 1;152(2):114-29.
7. Malinowski A, Yu H. Comparison of embedded system design for industrial applications. IEEE transactions on industrial informatics. 2011 May;7(2):244-54.
8. Marwedel P. Embedded system design: Embedded systems foundations of cyber-physical systems. Springer Science & Business Media.
9. Martin G, Bailey B, Piziali A. ESL design and verification: a prescription for electronic system level methodology. Morgan Kaufmann.
10. Jabeen Q, Khan F, Hayat MN, Khan H, Jan SR, Ullah F. A Survey: Embedded Systems Supporting By Different Operating Systems.
11. Herber P. A Framework for Automated HW/SW Co-Verification of SystemC Designs using Timed Automata. Logos Verlag Berlin GmbH; 2010.
12. Balarin F, Hsieh H, Jurecska A, Lavagno L, Sangiovanni-Vincentelli A. Formal verification of embedded systems based on CFSM networks. In Design Automation Conference Proceedings 1996, 33rd 1996 Jun 3 (pp. 568-571).
13. Chhokra A, Abdelwahed S, Dubey A, Neema S, Karsai G. From system modeling to formal verification. In Electronic System Level Synthesis Conference (ESLsyn).
14. Kroening D, Sharygina N. Formal verification of SystemC by automatic hardware/software partitioning. In Proceedings of the 2nd ACM/IEEE international conference on formal methods and models for co-design.
15. Karlsson D, Eles P, Peng Z. Formal verification of systemc designs using a petri-net based representation. In Design, Automation and Test in Europe, 2006. DATE'06. Proceedings 2006 Mar 6 (Vol. 1, pp. 1-6). IEEE.
16. Vardi MY. Formal techniques for SystemC verification. In Proceedings of the 44th annual Design Automation Conference 2007 Jun 4 (pp. 188-192). ACM.
17. Cimatti A, Micheli A, Narasamdya I, Roveri M. Verifying SystemC: A software model checking approach. In Formal Methods in Computer-Aided Design (FMCAD), 2010 2010 Oct 20 (pp. 51-59). IEEE.
18. Cimatti A, Griggio A, Micheli A, Narasamdya I, Roveri M. Kratos-a software model checker for systemC. In International Conference on Computer Aided Verification 2011 Jul 14 (pp. 310-316). Springer Berlin Heidelberg.
19. Goli M, Stoppe J, Drechsler R. Automatic Equivalence Checking for SystemC-TLM 2.0 Models Against their Formal Specifications. In Design, Automation and Test in Europe (DATE) 2017.
20. Legay A, Quilbeuf J. Statistical model checking for SystemC models. In High Assurance Systems Engineering (HASE), 2016 IEEE 17th International Symposium on 2016 Jan 7 (pp. 197-204). IEEE.
21. Takach A. Design and verification using high-level synthesis. In Design Automation Conference (ASP-DAC), 2016 21st Asia and South Pacific 2016 Jan 25 (pp. 198- 203). IEEE.
22. Jazdi N. Cyber physical systems in the context of Industry 4.0. In Automation, Quality and Testing, Robotics, 2014 IEEE International Conference on 2014 May 22 (pp. 1-4). IEEE.
23. Singh D, Tripathi G, Jara AJ. A survey of Internet-of-Things: Future vision, architecture, challenges and services. In Internet of things (WF-IoT), 2014 IEEE world forum on 2014 Mar 6 (pp. 287-292). IEEE.
24. Edwards S, Lavagno L, Lee EA, Sangiovanni-Vincentelli A. Design of embedded systems: Formal models, validation, and synthesis. Proceedings of the IEEE. 1997 Mar;85(3):366-90.
26. Gajski DD, Abdi S, Gerstlauer A, Schirner G. Embedded system design: modeling, synthesis and verification. Springer Science & Business Media.
27. Li Y, Callahan T, Darnell E, Harr R, Kurkure U, Stockwood J. Hardware-software co- design of embedded reconfigurable architectures. In Proceedings of the 37th Annual Design Automation Conference 2000 Jun 1 (pp. 507-512). ACM.
28. Herber P, Pockrandt M, Glesner S. Transforming SystemC transaction level models into UPPAAL timed automata. In Formal Methods and Models for Codesign (MEMOCODE), 2011 9th IEEE/ACM International Conference on 2011.
29. Goli M, Stoppe J, Drechsler R. Automatic Equivalence Checking for SystemC-TLM 2.0 Models Against their Formal Specifications. In Design, Automation and Test in Europe (DATE) 2017.
30. GroSe D, Le HM, Drechsler R. Formal Verification of SystemC-based Cyber Components. In Industrial Internet of Things 2017 (pp. 137-167). Springer International Publishing.