Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Rajdeep Mukherjee is active.

Publication


Featured researches published by Rajdeep Mukherjee.


ieee computer society annual symposium on vlsi | 2015

Hardware Verification Using Software Analyzers

Rajdeep Mukherjee; Daniel Kroening; Tom Melham

Program analysis is a highly active area of research, and the capacity and precision of software analyzers is improving rapidly. We investigate the use of modern software verification tools for formal property checking of hardware given in Verilog at register-transfer level. To this end, we translate RTL Verilog into an equivalent word-level ANSI-C program, according to synthesis semantics. The property of interest is instrumented into the Cprogram as an assertion. We subsequently apply three different software verification techniques -- bounded model checking, path-based symbolic simulation and abstract interpretation -- and compare their performance to conventional methods for property verification of hardware designs at net list and register transfer level. Our experimental results indicate that speedups of more than an order of magnitude are possible. To the best of our knowledge, this is the first attempt to perform property verification of hardware IPs given at register-transfer level using software verifiers.


design automation conference | 2017

Formal Techniques for Effective Co-verification of Hardware/Software Co-designs

Rajdeep Mukherjee; Mitra Purandare; Raphael Polig; Daniel Kroening

Verification is indispensable for building reliable of hardware/software co-designs. However, the scope of formal methods in this domain is limited. This is attributed to the lack of unified property specification languages, the semantic gap between hardware and software components, and the lack of verifiers that support both C and Verilog/VHDL. To address these limitations, we present an approach that uses a bounded co-verification tool, HW-CBMC, for formally validating hardware/software co-designs written in Verilog and C. Properties are expressed in C enriched with special-purpose primitives that capture temporal correlation between hardware and software events. We present an industrial case-study, proving bounded safety properties as well as discovering critical co-design bugs on a large and complex text analytics FPGA accelerator from IBM®.


tools and algorithms for construction and analysis of systems | 2016

v2c --- A Verilog to C Translator

Rajdeep Mukherjee; Michael Tautschnig; Daniel Kroening

We present v2c, a tool for translating Verilog to C. The tool accepts synthesizable Verilog as input and generates a word-level C program as an output, which we call the software netlist. The generated program is cycle-accurate and bit precise. The translation is based on the synthesis semantics of Verilog. There are several use cases for v2c, ranging from hardware property verification, co-verification to simulation and equivalence checking. This paper gives details of the translation and demonstrates the utility of the tool.


formal methods | 2016

Equivalence Checking of a Floating-Point Unit Against a High-Level C Model

Rajdeep Mukherjee; Saurabh Joshi; Andreas Griesmayer; Daniel Kroening; Tom Melham

Semiconductor companies have increasingly adopted a methodology that starts with a system-level design specification in C/C++/SystemC. This model is extensively simulated to ensure correct functionality and performance. Later, a Register Transfer Level (RTL) implementation is created in Verilog, either manually by a designer or automatically by a high-level synthesis tool. It is essential to check that the C and Verilog programs are consistent. In this paper, we present a two-step approach, embodied in two equivalence checking tools, VerifOx and hw-cbmc, to validate designs at the software and RTL levels, respectively. VerifOx is used for equivalence checking of an untimed software model in C against a high-level reference model in C. hw-cbmc verifies the equivalence of a Verilog RTL implementation against an untimed software model in C. To evaluate our tools, we applied them to a commercial floating-point arithmetic unit (FPU) from ARM and an open-source dual-path floating-point adder.


ieee computer society annual symposium on vlsi | 2015

Equivalence Checking Using Trace Partitioning

Rajdeep Mukherjee; Daniel Kroening; Tom Melham; Mandayam K. Srivas

One application of equivalence checking is to establish correspondence between a high-level, abstract design and a low-level implementation. We propose a new partitioning technique for the case in which the two designs are substantially different and traditional equivalence-point insertion fails. The partitioning is performed in tandem in both models, exploiting the structure present in the high-level model. The approach generates many but tractable SAT/SMT queries. We present experimental data quantifying the benefit of our partitioning method for both combinational and sequential equivalence checking of difficult arithmetic circuits and control-intensive circuits.


automated technology for verification and analysis | 2017

Lifting CDCL to Template-Based Abstract Domains for Program Verification

Rajdeep Mukherjee; Peter Schrammel; Leopold Haller; Daniel Kroening; Tom Melham

The success of Conflict Driven Clause Learning (CDCL) for Boolean satisfiability has inspired adoption in other domains. We present a novel lifting of CDCL to program analysis called Abstract Conflict Driven Learning for Programs (ACDLP). ACDLP alternates between model search, which performs over-approximate deduction with constraint propagation, and conflict analysis, which performs under-approximate abduction with heuristic choice. We instantiate the model search and conflict analysis algorithms with an abstract domain of template polyhedra, strictly generalizing CDCL from the Boolean lattice to a richer lattice structure. Our template polyhedra can express intervals, octagons and restricted polyhedral constraints over program variables. We have implemented ACDLP for automatic bounded safety verification of C programs. We evaluate the performance of our analyser by comparing with CBMC, which uses Boolean CDCL, and Astree, a commercial abstract interpretation tool. We observe two orders of magnitude reduction in the number of decisions, propagations, and conflicts as well as a 1.5x speedup in runtime compared to CBMC. Compared to Astree, ACDLP solves twice as many benchmarks and has much higher precision. This is the first instantiation of CDCL with a template polyhedra abstract domain.


design, automation, and test in europe | 2018

Efficient verification of multi-property designs (The benefit of wrong assumptions)

Eugene Goldberg; Matthias Gudemann; Daniel Kroening; Rajdeep Mukherjee


arXiv: Logic in Computer Science | 2017

Efficient Verification of Multi-Property Designs (The Benefit of Wrong Assumptions) (Extended Version).

Eugene Goldberg; Matthias Gudemann; Daniel Kroening; Rajdeep Mukherjee


Archive | 2017

Model Checking Using Abstract Reasoning

Rajdeep Mukherjee


Archive | 2017

Formal Techniques for Effective Co−verification of HW/SW Co−designs

Rajdeep Mukherjee

Collaboration


Dive into the Rajdeep Mukherjee's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Michael Tautschnig

Queen Mary University of London

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mandayam K. Srivas

Chennai Mathematical Institute

View shared research outputs
Researchain Logo
Decentralizing Knowledge