package hardcaml_verilator

All checked builds pass
  1. Overview
  2. Docs

Description

Very fast verilator-based simulations of Hardcaml circuits.

This library transparently compiles a verilator-based shared library, and links it back to the running executable to be used as a Cyclesim simulation.

Added to opam-repository:

README

"Hardcaml Verilator"

Hardcaml_verilator converts Hardcaml designs to verilog and compiles them with verilator. This produces a very high performance, cycle accurate, simulation model of the design.

The library transparently compiles the verilator simulation model to a shared library and loads it into the running program. It exposes a simulation API compatible with [Hardcaml.Cyclesim].

Compiling the verilator simulation model can take significant time - therefore a simple caching scheme is implemented so that the shared library can be reused on the second and subsequent runs if the design does not change.

Dependencies (9)

  1. dune >= "3.11.0"
  2. ctypes-foreign
  3. ctypes >= "0.18.0"
  4. ppx_jane >= "v0.17" & < "v0.18~"
  5. ppx_hardcaml >= "v0.17" & < "v0.18~"
  6. hardcaml >= "v0.17" & < "v0.18~"
  7. core_unix >= "v0.17" & < "v0.18~"
  8. core >= "v0.17" & < "v0.18~"
  9. ocaml >= "5.1.0"

Dev Dependencies

None

Optional Dependencies

None

Used by

None

Conflicts

None

Build status

Results of building hardcaml_verilator with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
v0.17.0 (this version) n/a n/a good good good
v0.16.0 n/a good good n/a n/a
v0.15.0 good good n/a n/a n/a
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure