package hardcaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=7435ee8610c2205c5f912b4bf09163b0
sha512=38d7cf428bd3491024212e52776ac582183d7b5f6a494589a3697d9a213fa18347d6eeea23327859c340b0cb3b967c08cd21a8a7f8d15cf2de20e5598cb8456d
doc/hardcaml/Hardcaml/index.html
Module HardcamlSource
Design
Always is a DSL that lets one describe a circuit in the same style as a Verliog always block.
Assertions within Hardcaml simulations.
Optionally embed the callstack in the signal type when it is created.
Representation of variable width Constants and conversion to/from OCaml types.
Interfaces specify the widths and names of a group of signals, and some functions for manipulating the signals as a group.
Instantiation of sub-modules.
A Parameter.t is the name and value of a configurable attribute of an instantiated RTL design.
RTL name of parameters on instantiated modules.
Hardware design datatype suitable for simulation and netlist generation
Hardware generation API that includes tri-states - used for toplevel module generation.
Circuits
A database which holds a collection of circuits, indexed by a unique circuit name.
Utilization information for a circuit which can be printed to a sexp.
Allow a hardcaml circuit to be defined as a hierarchy of modules, rather than just a single flat module.
Simulation and modelling
A custom combinational operation that can be inserted into a simulation.
A database which holds a collecton of custom combinational operations for use with Cyclesim based simulators.
Floating point operations for simulation.
VCD (Verilog Change Dump) generation utilities, and a Cyclesim wrapper function.
How to display the value of a signal. Generally used in waveforms.
Rtl generation
RTL attribute specification. Only relevant to downstream tooling.
Tables of reserved words in Verilog, VHDL and OCaml.
Transformations and passes
Simple circuit analsysis passes for common issues.
A Signal_graph.t is a created from a list of signals, and defined by tracing back to inputs (unassigned wires or constants). Functions are provided for traversing the graph.
Misc types
Hardware architecture specification.
Specify whether to configure the hardware for simulation or synthesis.
Specification of rising or falling edge of a signal (normally a clock).
The Enum contains functors that can be used to create special interface modules to represent an enumeration type (ie: a variant with no arguments).
Used to specify when an operation should be performed - before or after an event like a clock edge.
A memory write port.
Core circuits
Simple and fast distributed RAM based asynchronous FIFO. The depth of the FIFO is parameterizable, however, it should be less than or equal to 2 ^ LUT_SIZE to avoid glitches on the addressing logic.
Synchronous FIFO implementions with optional showahead functionality and pipelining stages.