Jump to content

Verilator: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Commercial: Added more companies from Wilson's presentation.
Commercial: Added new Art of Silicon reference
Line 27: Line 27:
=== Commercial ===
=== Commercial ===


Commercially, Philips Semiconductors (now NXP) have led the way <ref>Jean-Paul van Itegem, Philips Semiconductors (now NXP), quoted in Deep Chip 25 October 2005 [http://www.deepchip.com/items/dvcon05-03.html]</ref>. Their use of Verilator is becoming more widespread, for example within application notes <ref>Chuck Peplinski, "Hardware Prefetch and Data Cache Optimization Tools for Nexperia Media Processors", NXP Semiconductors, 11 January 2007 [http://www.tcshelp.com/pnx1517_app/Apps_DataCache.pdf]</ref>. More recently Art of Silicon have described their use of Verilator on a farm of Linux processors as a route to faster regression testing of their commercial designs <ref>Rich Porter, "Designer Productivity - An Alternate Approach", [[National Microelectronics Institute]], System-Level Design Network meeting, Engineers House, Bristol, UK 24 September 2009, available at [http://www.slideshare.net/richporter/20090924aosnmiesl www.slideshare.net/richporter/20090924aosnmiesl]</ref>. The current maintainer of Verilator identified <ref>Wilson Synder, Cavium Networks, "Verilator: Fast, Free, But for Me?", Design Verification Club meeting, Bristol, Cambridge & Eindhoven, 20 September 2010, [http://www.veripool.org/papers/Verilator_Fast_Free_Me_DVClub10_pres.pdf]</ref> 27 companies and universities who had reported use of Verilator or contributed to its development, including Intel, ARM, CSR, Broadcom, Raytheon, Infineon, Imperial College London and Embecosm.
Commercially, Philips Semiconductors (now NXP) have led the way <ref>Jean-Paul van Itegem, Philips Semiconductors (now NXP), quoted in Deep Chip 25 October 2005 [http://www.deepchip.com/items/dvcon05-03.html]</ref>. Their use of Verilator is becoming more widespread, for example within application notes <ref>Chuck Peplinski, "Hardware Prefetch and Data Cache Optimization Tools for Nexperia Media Processors", NXP Semiconductors, 11 January 2007 [http://www.tcshelp.com/pnx1517_app/Apps_DataCache.pdf]</ref>. More recently Art of Silicon have described their use of Verilator on a farm of Linux processors as a route to faster regression testing of their commercial designs <ref>Rich Porter, "Designer Productivity - An Alternate Approach", [[National Microelectronics Institute]], System-Level Design Network meeting, Engineers House, Bristol, UK 24 September 2009, available at [http://www.slideshare.net/richporter/20090924aosnmiesl www.slideshare.net/richporter/20090924aosnmiesl]</ref><ref>Rich Porter, "Architecture for Massively Parallel HDL Simulations", Design Verification Club meeting, Bristol, Cambridge & Eindhoven, 20 September 2010, [http://www.tandvsolns.co.uk/DVClub/20_Sept_2010/AoS_verilator.pdf]</ref>. The current maintainer of Verilator identified <ref>Wilson Synder, Cavium Networks, "Verilator: Fast, Free, But for Me?", Design Verification Club meeting, Bristol, Cambridge & Eindhoven, 20 September 2010, [http://www.veripool.org/papers/Verilator_Fast_Free_Me_DVClub10_pres.pdf]</ref> 27 companies and universities who had reported use of Verilator or contributed to its development, including Intel, ARM, CSR, Broadcom, Raytheon, Infineon, Imperial College London and Embecosm.


== History ==
== History ==

Revision as of 13:44, 24 September 2010

Verilator[1]
Developer(s)Wilson Snyder
Repository
Operating systemCross-platform
TypeSimulator
LicenseArtistic + GNU General Lesser Public License
Websitehttp://www.veripool.org/verilator/

Verilator is a free and open source software tool which converts Verilog (a hardware description language) to a cycle accurate behavioral model in C++ or SystemC. It is restricted to modeling the synthesizable subset of Verilog and the generated models are cycle accurate, 2-state, with synthesis (zero delay) semantics. As a consequence the models typically offer higher performance than the more widely used event driven simulators, which can process the entire Verilog language and model behavior within the clock cycle. Verilator is now used within academic research, open source projects and for commercial semiconductor development. It is part of the growing body of free EDA software.

Usage

Verilator has seen its widest adoption in the academic and open source communities. The semiconductor industry has been more cautious in its adoption of an open source tool, and has the financial wherewithal to use commercial alternatives such as Model Studio from Carbon Design Systems and VTOC from ARC International.


Academic

Researchers have used Verilator to develop new co-simulation environments [2], as part of general [ASIC] and [FPGA] design flows [3] [4] and in performance and power analysis [5]. Verilator is also a popular tool for student dissertations, for example [6].

Open Source

Verilator is an open source tool, and has in turn been adopted by a number of other projects. The Fedora Electronic Lab [6] has adopted Verilator as part of its open source design flow for Fedora 11. The OpenRISC architecture from OpenCores includes a cycle accurate reference model, generated from Verilog using Verilator.

Commercial

Commercially, Philips Semiconductors (now NXP) have led the way [7]. Their use of Verilator is becoming more widespread, for example within application notes [8]. More recently Art of Silicon have described their use of Verilator on a farm of Linux processors as a route to faster regression testing of their commercial designs [9][10]. The current maintainer of Verilator identified [11] 27 companies and universities who had reported use of Verilator or contributed to its development, including Intel, ARM, CSR, Broadcom, Raytheon, Infineon, Imperial College London and Embecosm.

History

Verilator's user manual provides a short history [12]. The tool originated in 1994 with a team led by Paul Wasson at the Core Logic Group at Digital Equipment Corporation (DEC). It was used to convert Verilog code to C for co-simulation with a C based CPU model of the Alpha processor. During the mid 1990's Duane Galbi took over responsibility for development and the technology was adopted by other groups in DEC. In 1998 DEC released the source code.

Since 2001 the technology has been developed by Wilson Snyder and others as part of the Veripool open source project. A SystemC mode was added and the tool rewritten from scratch in C++, leading to an increase in performance.

Technology and key features

Verilator converts synthesizable Verilog to C++ or SystemC. It can handle all versions of Verilog and also some SystemVerilog and Sugar/PSL assertions. The approach is closer to synthesis than event driven simulation. The entire design is flattened (that is all modules are expanded, to create one module). Static analysis is used to eliminate wires and schedule all processes at model generation time. Since this is a cycle accurate model, all intra-cycle delays are ignored. A C++ class is generated with a function which will take 2-state values on input ports and advance them to values on output ports at the next clock edge.

SystemC is supported by providing a wrapper class using SystemC ports, and with sensitivity to the clock(s), which will drive the ports of the underlying C++ model.


See also

References

  1. ^ W Snyder, "Verilator and SystemPerl". North American SystemC Users' Group, Design Automation Conference, June 2004.
  2. ^ Oyama Masashiro, Tanaka Daisuke and Shimizu Naohiki. "C-language based Hardware and Software Co-Simulation Environment Featuring sfl2vl and Verilator", Joho Shori Gakkai Shinpojiumu Ronbunshu (Information Processing Society of Japan Symposium Thesis Collection), 2004 (10), 34-40.
  3. ^ P Garcia and K Compton. "A Reconfigurable Hardware Interface for a Modern Computing System". FCCM 2007 (15th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, 23-25 April 2007, 73-84, (the DOI listed for this paper, DOI: 10.1109/FCCM.2007.49 is incorrect)
  4. ^ Eric S. Chung, James C. Hoe, Babak Falsafi. "PROTO FLEX: Co-Simulation for Component-wise FPGA Emulator Development", WARFP 2006 (2nd Workshop on Architecture Research using FPGA Platforms), Austin Texas, 12 February 2006.
  5. ^ Chin-Chie Huang, Jaw-Wei Chi, Tzu-Ching Lin, Lin-Wei Tsao, Yi-Jung Chen and Chia-Lin Yang. "System-Level Performance/Power Evaluation Framework for Platform-based SOC", Department of Computer Science and Information Engineering, National Taiwan University, 2008.
  6. ^ Siddhartha Devalapalli. "Development of SystemC Modules from HDL for System-on-Chip Applications", MSc Disseration, University of Tennessee, Knoxville, August 2004.
  7. ^ Jean-Paul van Itegem, Philips Semiconductors (now NXP), quoted in Deep Chip 25 October 2005 [1]
  8. ^ Chuck Peplinski, "Hardware Prefetch and Data Cache Optimization Tools for Nexperia Media Processors", NXP Semiconductors, 11 January 2007 [2]
  9. ^ Rich Porter, "Designer Productivity - An Alternate Approach", National Microelectronics Institute, System-Level Design Network meeting, Engineers House, Bristol, UK 24 September 2009, available at www.slideshare.net/richporter/20090924aosnmiesl
  10. ^ Rich Porter, "Architecture for Massively Parallel HDL Simulations", Design Verification Club meeting, Bristol, Cambridge & Eindhoven, 20 September 2010, [3]
  11. ^ Wilson Synder, Cavium Networks, "Verilator: Fast, Free, But for Me?", Design Verification Club meeting, Bristol, Cambridge & Eindhoven, 20 September 2010, [4]
  12. ^ Wilson Snyder, "Verilator-3.700", 7 January 2009 [5]