{"id":19985522,"url":"https://github.com/kode/verilator","last_synced_at":"2025-08-23T14:37:50.979Z","repository":{"id":70240034,"uuid":"163693891","full_name":"Kode/verilator","owner":"Kode","description":null,"archived":false,"fork":false,"pushed_at":"2018-12-31T19:49:34.000Z","size":6112,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-01T20:31:37.013Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kode.png","metadata":{"files":{"readme":"README.pod","changelog":"Changes","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-31T19:48:27.000Z","updated_at":"2020-01-10T23:32:40.000Z","dependencies_parsed_at":"2023-04-15T00:51:40.724Z","dependency_job_id":null,"html_url":"https://github.com/Kode/verilator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Kode/verilator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fverilator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fverilator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fverilator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fverilator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kode","download_url":"https://codeload.github.com/Kode/verilator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fverilator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271752129,"owners_count":24814750,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T04:25:15.348Z","updated_at":"2025-08-23T14:37:50.870Z","avatar_url":"https://github.com/Kode.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DESCRIPTION: DOCUMENT source run through perl to produce README file\n# Use 'make README' to produce the output file\n\n=pod\n\n=head1 NAME\n\nThis is the Verilator package README file.\n\n=head1 DISTRIBUTION\n\nhttp://www.veripool.org/verilator\n\nThis package is Copyright 2003-2018 by Wilson Snyder.  (Report bugs to\nL\u003chttp://www.veripool.org/\u003e.)\n\nVerilator is free software; you can redistribute it and/or modify it under\nthe terms of either the GNU Lesser General Public License Version 3 or the\nPerl Artistic License Version 2.0.  (See the documentation for more\ndetails.)\n\nThis program is distributed in the hope that it will be useful, but WITHOUT\nANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\nFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\nmore details.\n\n=head1 DESCRIPTION\n\nVerilator converts synthesizable (generally not behavioral) Verilog code\ninto C++ or SystemC code.  It is not a complete simulator, just a\ntranslator.\n\nVerilator is invoked with parameters similar to GCC or Synopsys's VCS.  It\nreads the specified Verilog code, lints it, and optionally adds coverage\ncode.  For C++ format, it outputs .cpp and .h files.  For SystemC format,\nit outputs .cpp and .h files using the standard SystemC headers.\n\nThe resulting files are then compiled with C++.  The user writes a little\nC++ wrapper file, which instantiates the top level module.  This is\ncompiled in C++, and linked with the Verilated files.\n\nThe resulting executable will perform the actual simulation.\n\n=head1 SUPPORTED SYSTEMS\n\nVerilator is developed and has primary testing on Ubuntu.  Versions have\nalso built on Redhat Linux, Macs OS-X, HPUX and Solaris.  It should run\nwith minor porting on any Linix-ish platform.  Verilator also works on\nWindows under Cygwin, and Windows under MinGW (gcc -mno-cygwin).  Verilated\noutput (not Verilator itself) compiles under MSVC++ 2008 and newer.\n\n=head1 INSTALLATION\n\nFor more details see\nL\u003chttp://www.veripool.org/projects/verilator/wiki/Installing\u003e.\n\nIf you will be modifying Verilator, you should use the \"git\" method as it\nwill let you track changes.\n\n=over 4\n\n=item\n\nThe latest version is available at L\u003chttp://www.veripool.org/verilator\u003e.\n\nDownload the latest package from that site, and decompress.\n\n    tar xvzf verilator_version.tgz\n\n=item\n\nIf you will be using SystemC (vs straight C++ output), download SystemC\nfrom L\u003chttp://www.systemc.org\u003e.  Follow their installation instructions.\nYou will need to set SYSTEMC_INCLUDE to point to the include directory with\nsystemc.h in it, and SYSTEMC_LIBDIR to points to the directory with\nlibsystemc.a in it.  (Older installations may set SYSTEMC and SYSTEMC_ARCH\ninstead.)\n\n=item\n\nTo use Verilator you will need the C\u003cperl\u003e, C\u003cmake\u003e (or C\u003cgmake\u003e), and\nC\u003cg++\u003e (or C\u003cclang\u003e) packages.\n\nTo use Verilator FST tracing you will need the C\u003cgtkwave\u003e and C\u003clibgz\u003e (on\nUbuntu C\u003czlibc\u003e C\u003czlib1g\u003e C\u003czlib1g-dev\u003e) packages installed.\n\nTo compile Verilator in addition to the above you need the C\u003cflex\u003e,\nC\u003cbison\u003e and C\u003ctexi2html\u003e packages installed.\n\n=item\n\nC\u003ccd\u003e to the Verilator directory containing this README.\n\n=item\n\nYou now have to decide how you're going to eventually install the kit.\n\nNote Verilator builds the current value of VERILATOR_ROOT, SYSTEMC_INCLUDE,\nand SYSTEMC_LIBDIR as defaults into the executable, so try to have them\ncorrect before configuring.\n\n=over 4\n\n=item 1.\n\nOur personal favorite is to always run Verilator from the kit directory.\nThis allows the easiest experimentation and upgrading.  It's also how most\nEDA tools operate; to run you point to the tarball, no install is needed.\n\n    export VERILATOR_ROOT=`pwd`   # if your shell is bash\n    setenv VERILATOR_ROOT `pwd`   # if your shell is csh\n    ./configure\n\n=item 2.\n\nTo install globally onto a \"cad\" disk with multiple versions of every tool,\nand add it to path using Modules/modulecmd:\n\n    unset VERILATOR_ROOT      # if your shell is bash\n    unsetenv VERILATOR_ROOT   # if your shell is csh\n    # For the tarball, use the version number instead of git describe\n    ./configure --prefix /CAD_DISK/verilator/`git describe | sed \"s/verilator_//\"`\n\n    After installing you'll want a module file like the following:\n\n    set install_root /CAD_DISK/verilator/{version-number-used-above}\n    unsetenv VERILATOR_ROOT\n    prepend-path PATH $install_root/bin\n    prepend-path MANPATH $install_root/man\n    prepend-path PKG_CONFIG_PATH $install_root/share/pkgconfig\n\n=item 3.\n\nThe next option is to install it globally, using the normal system paths:\n\n    unset VERILATOR_ROOT      # if your shell is bash\n    unsetenv VERILATOR_ROOT   # if your shell is csh\n    ./configure\n\n=item 4.\n\nAlternatively you can configure a prefix that install will populate, as\nmost GNU tools support:\n\n    unset VERILATOR_ROOT      # if your shell is bash\n    unsetenv VERILATOR_ROOT   # if your shell is csh\n    ./configure --prefix /opt/verilator-VERSION\n\nThen after installing you will need to add /opt/verilator-VERSION/bin to\nPATH.\n\n=back\n\n=item\n\nType C\u003cmake\u003e to compile Verilator.\n\nType C\u003cmake test\u003e to check the compilation.\n\nConfigure with C\u003c--enable-longtests\u003e for more complete developer tests.\nAdditional packages may be required for these tests.\n\nYou may get a error about a typedef conflict for uint32_t.  Edit\nverilated.h to change the typedef to work, probably to @samp{typedef\nunsigned long uint32_t;}.\n\n=item\n\nIf you used the VERILATOR_ROOT scheme you're done.  Programs should set the\nenvironment variable VERILATOR_ROOT to point to this distribution, then\nexecute $VERILATOR_ROOT/bin/verilator, which will find the path to all\nneeded files.\n\nIf you used the prefix scheme, now do a C\u003cmake install\u003e.  To run verilator,\nhave the verilator binary directory in your PATH (this should already be\ntrue if using the default configure), and make sure VERILATOR_ROOT is not\nset.\n\nYou may now wish to consult the examples directory. Type C\u003cmake\u003e inside any\nexample directory to run the example.\n\n=back\n\n=head1 USAGE DOCUMENTATION\n\nDetailed documentation and the man page can be seen by running:\n\n    bin/verilator --help\n\nor reading verilator.txt in the same directory as this README.\n\n=head1 DIRECTORY STRUCTURE\n\nThe directories in the kit after de-taring are as follows:\n\n    bin/verilator               =\u003e Compiler Wrapper invoked to Verilate code\n    include/                    =\u003e Files that should be in your -I compiler path\n    include/verilated*.cpp      =\u003e Global routines to link into your simulator\n    include/verilated*.h        =\u003e Global headers\n    include/verilated.v         =\u003e Stub defines for linting\n    include/verilated.mk        =\u003e Common makefile\n    src/                        =\u003e Translator source code\n    examples/hello_world_c      =\u003e Example simple Verilog-\u003eC++ conversion\n    examples/hello_world_sc     =\u003e Example simple Verilog-\u003eSystemC conversion\n    examples/tracing_c          =\u003e Example Verilog-\u003eC++ with tracing\n    examples/tracing_sc         =\u003e Example Verilog-\u003eSystemC with tracing\n    test_regress                =\u003e Internal tests\n\n=head1 LIMITATIONS\n\nSee verilator.txt (or execute C\u003cbin/verilator --help\u003e) for limitations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkode%2Fverilator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkode%2Fverilator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkode%2Fverilator/lists"}