package hardcaml_step_testbench
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Hardcaml Testbench Monad
Install
dune-project
Dependency
Authors
Maintainers
Sources
v0.17.0.tar.gz
sha256=a21b13cf03b84f06471e7c31ecbac8df1b08f8ac1156d0f3a41d2250ea293b2f
doc/hardcaml_step_testbench.digital_components/Digital_components/Component/Make/index.html
Module Component.MakeSource
Parameters
module Input_monad : Base.Monad.SSignature
t is mostly abstract, but we expose is as a constructor so that the type checker knows that t is injective.
Source
val sexp_of_t :
('i -> Sexplib0.Sexp.t) ->
('o -> Sexplib0.Sexp.t) ->
('i, 'o) t ->
Sexplib0.Sexp.tSource
type ('i, 'o) t_module =
(module Digital_components__.Component_intf.Module.S
with type Input.t = 'i
and type Output.t = 'o)output returns the output based on an input and its current state, but does not update the state. A component is called "combinational" if output t i ignores t. A component is called "sequential" if output t i uses t. A sequential component is called a "moore machine" if it ignores i and a "mealy machine" if it uses i.
update_state updates t's state based on an input and its current state
run_with_inputs t is runs length is steps with t, on each step calling update_state and then output, pairing the input of that step with the output.
Source
val run_until_finished :
?show_steps:Base.bool ->
('i, 'o) t ->
first_input:'i ->
next_input:('o -> 'i Next_input.t Input_monad.t) ->
Base.unit Input_monad.tComponent combinators
Combinational components
Sequential components
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page