Verification at RTL Using Separation of Design Concerns

Design-for-test, logic built-in self-test, memory technology mapping, and clocking concerns require team-months of verification time as they traditionally happen at gate-level. We present a novel concern-oriented methodology that enables automatic insertion of these concerns at the register-transfer-level where verification is easier. The methodology involves three main phases: 1) flipflop inference and instantiation algorithms that handle parametric register transfer level (RTL) modules; 2) transformations that take entry RTL and produce RTL modules where memory elements are separated from functionality; and 3) a concern weaving tool that automatically inserts memory related design concerns implemented in recipe files into the RTL modules. The transformation is sound as proven and validated by equivalence checking using formal verification. We implemented the methodology in a tool that is currently used in an industrial setting wherein it reduced design verification time by more than 40%. The methodology is also effective with open source embedded system frameworks.

[1]  Karthikeyan Sankaralingam,et al.  MIAOW - An open source RTL implementation of a GPGPU , 2015, 2015 IEEE Symposium in Low-Power and High-Speed Chips (COOL CHIPS XVIII).

[2]  Magdy Bayoumi,et al.  Novel clock gating techniques for low power flip-flops and its applications , 2013, 2013 IEEE 56th International Midwest Symposium on Circuits and Systems (MWSCAS).

[3]  Jason Baumgartner,et al.  The art of semi-formal bug hunting , 2016, 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[4]  Joseph Sifakis,et al.  Rigorous Component-Based System Design Using the BIP Framework , 2011, IEEE Software.

[5]  Joseph Sifakis,et al.  Modeling Heterogeneous Real-time Components in BIP , 2006, Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM'06).

[6]  Wang,et al.  System-on-Chip Test Architectures: Nanometer Design for Testability , 2007 .

[7]  Florence Maraninchi,et al.  A Method for the Efficient Development of Timed and Untimed Transaction-Level Models of Systems-on-Chip , 2008, 2008 Design, Automation and Test in Europe.

[8]  Bob Zeidman Introduction to Verilog , 2000 .

[9]  Terence Parr The Definitive ANTLR Reference: Building Domain-Specific Languages , 2007 .

[10]  Moshe Y. Vardi,et al.  Validation of SoC firmware-hardware flows: Challenges and solution directions , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[11]  Rouwaida Kanj,et al.  Separation of concerns for hardware components of embedded systems in BIP , 2015, Sixteenth International Symposium on Quality Electronic Design.

[12]  Jason Baumgartner,et al.  Enabling Large-Scale Pervasive Logic Verification through Multi-Algorithmic Formal Reasoning , 2006, 2006 Formal Methods in Computer Aided Design.

[13]  Stefan Hanenberg,et al.  AspectVHDL stage 1: the prototype of an aspect-oriented hardware description language , 2012, MISS '12.

[14]  Alberto L. Sangiovanni-Vincentelli,et al.  Quo Vadis, SLD? Reasoning About the Trends and Challenges of System Level Design , 2007, Proceedings of the IEEE.

[15]  Adnan Khan,et al.  Successive Refinement: A Methodology for Incremental Specification of Power Intent , 2015 .

[16]  A Next-Generation Design Framework for Platform-Based Design , 2007 .

[17]  Luciano Lavagno,et al.  Metropolis: An Integrated Electronic System Design Environment , 2003, Computer.