Loading [MathJax]/extensions/MathMenu.js
Hardware Acceleration for Constraint Solving for Random Simulation | IEEE Journals & Magazine | IEEE Xplore

Hardware Acceleration for Constraint Solving for Random Simulation


Abstract:

Constrained random simulation has been widely adopted in contemporary hardware verification flows. In this methodology, a set of user-specified declarative constraints de...Show More

Abstract:

Constrained random simulation has been widely adopted in contemporary hardware verification flows. In this methodology, a set of user-specified declarative constraints describe valid input stimuli for the design under test (DUT). A constraint solver produces the simulation input vectors; their generation is interleaved with the actual simulation of the design for these vectors. Besides its distribution, the solver's performance is one of the most critical characteristics that determines the overall verification efficiency. There are no general approaches to hardware acceleration for solving declarative constraints. Current setups for hardware acceleration-based verification combine a software constraint solver running on a general-purpose processor with the hardware-accelerated DUT. This approach suffers from a major efficiency bottleneck caused by the significant performance mismatch between the solver executed in software and the DUT running on an accelerator. In this paper, we present a hardware constraint solver that uses a set of parallel solving units executing Markov chain Monte Carlo sampling. We propose to combine this solver and the DUT on the same device and run both entities hardware-accelerated in order to eliminate the performance mismatch. We discuss the details of the solver architecture and its implementation and report comprehensive results on performance and distribution characteristics as well as experience obtained from our case study where we used our solver to verify a real-world hardware design.
Page(s): 779 - 789
Date of Publication: 18 April 2012

ISSN Information:

Author image of Tobias Welp
Department of Electrical Engineering and Computer Science, University of California Berkeley, Berkeley, CA, USA
Tobias Welp (S'06) received the Dipl.-Ing. degree in electrical engineering from the Darmstadt University of Technology, Darmstadt, Germany, in 2006. Since then, he has been pursuing the Ph.D. degree with the Department of Electrical Engineering and Computer Sciences, University of California at Berkeley, Berkeley.
His current research interests include logic synthesis and computer-automated verification of hardware and so...Show More
Tobias Welp (S'06) received the Dipl.-Ing. degree in electrical engineering from the Darmstadt University of Technology, Darmstadt, Germany, in 2006. Since then, he has been pursuing the Ph.D. degree with the Department of Electrical Engineering and Computer Sciences, University of California at Berkeley, Berkeley.
His current research interests include logic synthesis and computer-automated verification of hardware and so...View more
Author image of Nathan Kitchen
Arista Networks, Inc., Santa Clara, CA, USA
Nathan Kitchen received the B.S. degree in computer engineering from Brigham Young University, Provo, UT, in 2002, and the Ph.D. degree in electrical engineering and computer sciences from the University of California at Berkeley, Berkeley, in 2010.
He is currently a Software Engineer with Arista Networks, Inc., Santa Clara, CA.
Nathan Kitchen received the B.S. degree in computer engineering from Brigham Young University, Provo, UT, in 2002, and the Ph.D. degree in electrical engineering and computer sciences from the University of California at Berkeley, Berkeley, in 2010.
He is currently a Software Engineer with Arista Networks, Inc., Santa Clara, CA.View more
Author image of Andreas Kuehlmann
Coverity, Inc., San Francisco, CA, USA
Andreas Kuehlmann (S'90–SM'97–F'03) received the Dipl.-Ing. degree and the Dr.-Ing. Habil. degree in electrical engineering from the Ilmenau University of Technology, Ilmenau, Germany, in 1986 and 1990, respectively.
From 1990 to 1991, he was with the Fraunhofer Institute of Microelectronic Circuits and Systems, Duisburg, Germany, on a project to automatically synthesize embedded microcontrollers. In 1991, he joined the IB...Show More
Andreas Kuehlmann (S'90–SM'97–F'03) received the Dipl.-Ing. degree and the Dr.-Ing. Habil. degree in electrical engineering from the Ilmenau University of Technology, Ilmenau, Germany, in 1986 and 1990, respectively.
From 1990 to 1991, he was with the Fraunhofer Institute of Microelectronic Circuits and Systems, Duisburg, Germany, on a project to automatically synthesize embedded microcontrollers. In 1991, he joined the IB...View more

I. Introduction

Except for simple cases, the behavioral specification of hardware designs is mostly incomplete, leaving the design's response to many input stimuli undefined. During verification, unspecified inputs must be excluded from examination to avoid undetermined or spurious erroneous behavior. In a simulation-based verification setting, the concept of a “testbench” is applied to specify valid input sequences as well as the expected design responses for them.

Author image of Tobias Welp
Department of Electrical Engineering and Computer Science, University of California Berkeley, Berkeley, CA, USA
Tobias Welp (S'06) received the Dipl.-Ing. degree in electrical engineering from the Darmstadt University of Technology, Darmstadt, Germany, in 2006. Since then, he has been pursuing the Ph.D. degree with the Department of Electrical Engineering and Computer Sciences, University of California at Berkeley, Berkeley.
His current research interests include logic synthesis and computer-automated verification of hardware and software systems.
Tobias Welp (S'06) received the Dipl.-Ing. degree in electrical engineering from the Darmstadt University of Technology, Darmstadt, Germany, in 2006. Since then, he has been pursuing the Ph.D. degree with the Department of Electrical Engineering and Computer Sciences, University of California at Berkeley, Berkeley.
His current research interests include logic synthesis and computer-automated verification of hardware and software systems.View more
Author image of Nathan Kitchen
Arista Networks, Inc., Santa Clara, CA, USA
Nathan Kitchen received the B.S. degree in computer engineering from Brigham Young University, Provo, UT, in 2002, and the Ph.D. degree in electrical engineering and computer sciences from the University of California at Berkeley, Berkeley, in 2010.
He is currently a Software Engineer with Arista Networks, Inc., Santa Clara, CA.
Nathan Kitchen received the B.S. degree in computer engineering from Brigham Young University, Provo, UT, in 2002, and the Ph.D. degree in electrical engineering and computer sciences from the University of California at Berkeley, Berkeley, in 2010.
He is currently a Software Engineer with Arista Networks, Inc., Santa Clara, CA.View more
Author image of Andreas Kuehlmann
Coverity, Inc., San Francisco, CA, USA
Andreas Kuehlmann (S'90–SM'97–F'03) received the Dipl.-Ing. degree and the Dr.-Ing. Habil. degree in electrical engineering from the Ilmenau University of Technology, Ilmenau, Germany, in 1986 and 1990, respectively.
From 1990 to 1991, he was with the Fraunhofer Institute of Microelectronic Circuits and Systems, Duisburg, Germany, on a project to automatically synthesize embedded microcontrollers. In 1991, he joined the IBM T.J. Watson Research Center, Yorktown Heights, NY, where he worked until June 2000 on various projects in high-level and logic synthesis and hardware verification. In July 2000, he joined the Cadence Research Laboratories, Berkeley, CA, where he continued to work on synthesis and verification problems. In August 2003, he became the Director of Cadence Research Laboratories leading the company's advanced research and development until 2010. Since July 2002, he had also been an Adjunct Professor with the University of California at Berkeley, Berkeley. In October 2010, he joined Coverity, San Francisco, CA, as the Senior Vice President of research and development.
Dr. Kuehlmann is currently the President of the IEEE Council on Electronic Design Automation.
Andreas Kuehlmann (S'90–SM'97–F'03) received the Dipl.-Ing. degree and the Dr.-Ing. Habil. degree in electrical engineering from the Ilmenau University of Technology, Ilmenau, Germany, in 1986 and 1990, respectively.
From 1990 to 1991, he was with the Fraunhofer Institute of Microelectronic Circuits and Systems, Duisburg, Germany, on a project to automatically synthesize embedded microcontrollers. In 1991, he joined the IBM T.J. Watson Research Center, Yorktown Heights, NY, where he worked until June 2000 on various projects in high-level and logic synthesis and hardware verification. In July 2000, he joined the Cadence Research Laboratories, Berkeley, CA, where he continued to work on synthesis and verification problems. In August 2003, he became the Director of Cadence Research Laboratories leading the company's advanced research and development until 2010. Since July 2002, he had also been an Adjunct Professor with the University of California at Berkeley, Berkeley. In October 2010, he joined Coverity, San Francisco, CA, as the Senior Vice President of research and development.
Dr. Kuehlmann is currently the President of the IEEE Council on Electronic Design Automation.View more
Contact IEEE to Subscribe

References

References is not available for this document.