v2c – A Verilog to C Translator

  • Rajdeep MukherjeeEmail author
  • Michael Tautschnig
  • Daniel Kroening
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9636)


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.


  1. 1.
    Clarke, E., Kroning, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  2. 2.
    Greaves, D.J.: A verilog to C compiler. In: RSP, pp. 122–127. IEEE Computer Society (2000)Google Scholar
  3. 3.
    Keating, M.: The Simple Art of SoC Design. Springer, New York (2011)CrossRefGoogle Scholar
  4. 4.
    Liu, L., Vasudevan, S.: Scaling input stimulus generation through hybrid static and dynamic analysis of RTL. ACM TODAES 20(1), 4:1–4:33 (2014)CrossRefGoogle Scholar
  5. 5.
    Mukherjee, R., Kroening, D., Melham, T.: Hardware verification using software analyzers. In: ISVLSI (2015)Google Scholar
  6. 6.
    Mukherjee, R., Schrammel, P., Kroening, D., Melham, T.: Unbounded safety verification for hardware using software analyzers. In: DATE (2016)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • Rajdeep Mukherjee
    • 1
    Email author
  • Michael Tautschnig
    • 2
  • Daniel Kroening
    • 1
  1. 1.University of OxfordOxfordUK
  2. 2.Queen Mary, University of LondonLondonUK

Personalised recommendations