Hardcaml is an OCaml library for designing and testing hardware designs.
$ opam install hardcaml ppx_hardcaml hardcaml_waveterm
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.Hardcaml_circuits
-
A library of useful/interesting Hardcaml designsHardcaml_fixed_point
-
Fixed point arithmetic with rounding and overflow controlHardcaml_xilinx
-
Various Xilinx primitives wrapped with Hardcaml interfaces and
simulation modelsHardcaml_xilinx_components
-
Tool to read Xilinx unisim and xpm component definitions and
generate Hardcaml interfacesHardcaml_of_verilog
-
Convert a verilog design to Hardcaml using YosysHardcaml_verify
-
SAT based formal verification tools for HardcamlHardcaml_xilinx_reports
-
Automated generation of synthesis reports from Vivado.Hardcaml ZPrize
-
Multi-scalar Multiplication and Number Theoretic Transform accelerators.Hardcaml Mips
- A
simple 5-stage MIPs CPU with associated
blog
detailing the development process.Hardcaml_arty
-
Infrastructure targeting the Arty
A7
board.Hardcaml Reed-Solomon
-
Configurable Reed-Solomon encoder and decoder implementation.Hardcaml JPEG
-
JPEG decoder design.