Skip to content
/ hardcaml Public
forked from janestreet/hardcaml

Hardcaml is an OCaml library for designing hardware.

License

Notifications You must be signed in to change notification settings

jhhan/hardcaml

This branch is 33 commits behind janestreet/hardcaml:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b1222bf · Feb 15, 2022
Jan 26, 2022
Feb 3, 2021
Nov 24, 2021
Jan 26, 2022
Jan 26, 2022
Mar 14, 2019
Nov 12, 2021
Nov 6, 2018
Jan 26, 2022
Jan 16, 2019
Nov 12, 2021
Nov 12, 2021
Mar 2, 2020
Feb 15, 2022

Repository files navigation

"Hardcaml"

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 ...

About

Hardcaml is an OCaml library for designing hardware.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • OCaml 98.7%
  • C 0.7%
  • Standard ML 0.3%
  • VHDL 0.2%
  • Verilog 0.1%
  • Makefile 0.0%