Abstract
Digital application complexity has steadily made it harder to discover and debug behavioral inconsistencies at register transfer level (RTL). Aiming to bring a solution, several techniques have appeared as alternatives to verify that a circuit description meets the requirements of its corresponding functional specification. Simulation-based verification is still far from reaching high state coverage because of cycle-accurate slowness. Formal approaches are exhaustive in theory, but due to computational limitations, workarounds must always be adopted to check only a portion of the design at a time. Bounded model checking is one of the most popular formal methods; however, a strong disadvantage resides in defining and determining the quality of the set of properties to verify. Sequential equivalence checking is also an effective alternative, but it can only be applied between circuit descriptions where a one-to-one correspondence for states and memory elements is expected. This paper presents a formal methodology to verify RTL descriptions through direct comparison with: 1) a high-level reference model and 2) a protocol reference model. Thus, it is possible to verify behavioral and interface protocol separately. Complete sequences of states are extracted from the reference models and the RTL design, and compared to determine if the design implementation is correct. The natural discrepancies between the models and RTL code are considered, including non-matching interface and memory elements, state mapping, and process concurrency. The validity of the methodology is formally justified and a related tool was developed to show, through examples, that the approach may be applied on real designs.
Similar content being viewed by others
References
Abraham JA, Saab DG (2007) Tutorial T4A: formal verification techniques and tools for complex designs. In Proceedings of the 20th International Conference on VLSI Design, p 6
Bergeron J (2003) Writing testbenches: functional verification of HDL models, 2nd edn. Kluwer, Boston
Bombieri N, Fummi F, Pravadelli G (2011) Automatic abstraction of RTL IPs into equivalent TLM descriptions. IEEE Trans Comput 60(12):1730–1743
Castro C I, Strum M, Chau WJ (2013) Formal equivalence checking between high-level and RTL hardware designs. In Proc. 14th Latin American Test Workshop (LATW), p 1–6
Castro C I, Strum M, Chau WJ (2014) A unified sequential equivalence checking approach to verify high-level functionality and protocol specification implementations in RTL designs. In Proc. 15th Latin American Test Workshop (LATW), p 1–6
Catapult: Product Family Overview. http://calypto.com/en/products/catapult/overview. Calypto. Accessed 20 Aug 2013
Chou C, Ho Y, Hsieh C, Huang C (2012) Symbolic model checking on SystemC designs. In Proceedings of the 49th ACM/EDAC/IEEE Design Automation Conference (DAC), p 327–333
CVC3. http://www.cs.nyu.edu/acsys/cvc3. Accessed 15 Sept 2013
Drechsler B (2004) Advanced formal verification. Kluwer Academic Publishers, Norwell
Feng L, Dai Z, Li W, Cheng J (2011) Design and application of reusable SoC verification platform. In Proc. IEEE 9th International Conference on ASIC (ASICON), p 957–960
Finder A, Witte J-P, Fey G (2013) Debugging HDL designs based on functional equivalences with high-level specifications. Proceedings of the 16th IEEE Symposium on Design & Diagnostics of Electronic Circuits & Systems (DDECS), Czech Republic, p 60–65
Formality and Formality Ultra. Synopsys. http://www.synopsys.com/Tools/Verification//FormalEquivalence/Pages/Formality.aspx. Accessed 20 Aug 2013
Hao K, Xie F, Ray S, Yang J (2010) Optimizing equivalence checking for behavioral synthesis. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE), Belgium, p 1500–1505
Hu A.J (2006) High-level vs. RTL combinational equivalence: an introduction. In Proceedings of the International Conference on Computer Design, San Jose, p 274–279
Karfa C, Sarkar D, Mandal C, Kumar P (2008) An equivalence-checking method for scheduling verification in high-level synthesis. IEEE Trans Comput Aided Des Integr Circuits Syst 27:556–569
Koelbl A, Jacoby R, Jain H, Pixley C (2009) Solver technology for system-level to RTL equivalence checking. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE), Belgium, p 196–201
Lee H, Grosse D, Drechsler R (2010) Towards analyzing functional coverage in SystemC TLM property checking. In Proceedings of the 2010 I.E. International High Level Design Validation and Test Workshop (HLDVT), p 67–74
Lee C, Shih C, Huang J, Jou J (2011) Equivalence checking of scheduling with speculative code transformations in high-level synthesis. In Proceedings of the 16th Asia and South Pacific Design Automation Conference (ASPDAC), p 497–502
Mathur A, Clarke E, Fujita M, Urard P (2009) Functional equivalence verification tools in high-level synthesis flows. IEEE Des Test Comput 26(4):88–95
Matsumoto T, Nishihara T, Kojima Y, Fujita M (2009) Equivalence checking of high-level designs based on symbolic simulation. In Proceedings of the International Conference on Communications, Circuits and Systems, Tokyo, p 1129–1133
Molitor P, Mohnke J (2004) Equivalence checking of digital circuits: fundamentals, principles, methods. Kluwer Academic Publishers, Dordrecht
Nguyen T, Sun J, Liu Y, Dong J (2011) Towards analyzing functional coverage in SystemC TLM property checking. In Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering (ASE), p 633–636
Nishihara T, Matsumoto T, Fujita M (2006) Equivalence checking with rule based equivalence propagation and high-level synthesis. In Proceedings of the IEEE International High Level Design and Test Workshop, p 162–169
OpenCores. http://opencores.org. Accessed 20 Aug 2013
Romero E, Strum M, Chau W (2013) Manipulation of training sets for improving data mining coverage-driven verification. J Electron Test 29:223–236
Saglamdemir M, Sen A, Dündar G (2012) A formal equivalence checking methodology for Simulink and register transfer level designs. In Proceedings of the International Conference on Synthesis, Modeling, Analysis and Simulation Methods and Applications to Circuit Design (SMACD), Spain, p 221–224
SLEC Family Product OverviewCalypto. http://calypto.com/products/slec/overview. Accessed 20 Aug 2013
Vahid F, Givargis T (2006) Embedded system design: a unified hardware/software introduction. Wiley
Vasudevan S, Viswanath V, Abraham J, Tu J (2005) Automatic decomposition for sequential equivalence checking of system level and RTL descriptions. In Proceedings of the 4th IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE), Washington, p 71–80
VAUL—a VHDL Analyzer and Utility Library. http://www.freehdl.seul.org. Accessed 15 Sept 2013
Wile B, Goss J, Roesner W (2005) Comprehensive functional verification. Morgan Kauffman, San Francisco
Acknowledgments
This work was partially supported by the National Council of Technological and Scientific Development CNPq from Brazil.
Author information
Authors and Affiliations
Corresponding author
Additional information
Responsible Editor: L. M. Bolzani Pöhls
Rights and permissions
About this article
Cite this article
Castro Marquez, C.I., Strum, M. & Chau, W.J. A Unified Sequential Equivalence Checking Methodology to Verify RTL Designs with High-Level Functional and Protocol Specification Models. J Electron Test 31, 255–273 (2015). https://doi.org/10.1007/s10836-015-5528-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10836-015-5528-2