hardcaml

RTL Hardware Design in OCaml
README

Hardcaml is an OCaml library for designing and testing hardware designs.

  • Express hardware designs in OCaml

  • Make generic designs using higher order functions, lists, maps, functors...

  • Simulate designs in OCaml

  • Convert to (hierarchical) Verilog or VHDL

  • Write new modules to transform or analyse circuits, or provide new backends

Install

$ opam install hardcaml ppx_deriving_hardcaml hardcaml_waveterm

Documentation

Related tools and libraries

Simulation and testing

  • Hardcaml_waveterm -
    ASCII based digital waveforms. Usable in expect tests or from an
    interactive terminal application.

  • Hardcaml_c - convert
    Hardcaml designs to C-based simulation models. Provides an API
    compatible with the standard Cyclesim module. Trades compilation
    time for runtime performance.

  • Hardcaml_verilator -
    Convert Hardcaml designs to very high speed simulation model using
    the open source Verilator compiler.

  • Hardcaml_step_testbench -
    Monadic testbench API. Control multiple tasks synchronized to a
    clock without converting to a statemachine coding style.

Design libraries

Other ...

Install
Published
21 Mar 2022
Sources
hardcaml-v0.15.0.tar.gz
sha256=0dc4153de7ffa0a3471d9ecd8044f701e300290ce4c2e716187e063e8cf2f8b1
Dependencies
zarith
>= "1.11"
ppxlib
>= "0.23.0"
dune
>= "2.0.0"
topological_sort
>= "v0.15" & < "v0.16"
stdio
>= "v0.15" & < "v0.16"
ppx_sexp_conv
>= "v0.15" & < "v0.16"
ppx_jane
>= "v0.15" & < "v0.16"
bin_prot
>= "v0.15" & < "v0.16"
base
>= "v0.15" & < "v0.16"
ocaml
>= "4.11.0"
Reverse Dependencies