package hardcaml_axi

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Register_bank.Packed_arraySource

Packed arrays are a flattened version of X.t represented as an array of 32 bit vectors.

They may be used as fields within a register interface to encode larger or grouped values.

Parameters

module X : sig ... end

Signature

include Hardcaml.Interface.S with type 'a t = 'a Base.array
Sourcetype 'a t = 'a Base.array
Sourceval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
Sourceval iter : 'a t -> f:('a -> Base.unit) -> Base.unit
Sourceval iter2 : 'a t -> 'b t -> f:('a -> 'b -> Base.unit) -> Base.unit
Sourceval map : 'a t -> f:('a -> 'b) -> 'b t
Sourceval map2 : 'a t -> 'b t -> f:('a -> 'b -> 'c) -> 'c t
Sourceval to_list : 'a t -> 'a Base.list
Sourceval port_names_and_widths : (Base.string * Base.int) t
include Base.Equal.S1 with type 'a t := 'a t
Sourceval port_names : Base.string t

RTL names specified in the interface definition - commonly also the OCaml field name.

Sourceval port_widths : Base.int t

Bit widths specified in the interface definition.

Sourceval const : 'a -> 'a t

const x sets each port to x

Sourcetype tag
Sourceval tags : tag t
Sourceval to_alist : 'a t -> (tag * 'a) Base.list

Create association list indexed by tag.

Sourceval of_alist : (tag * 'a) Base.list -> 'a t

Create interface from association list indexed by tag.

Sourceval sum_of_port_widths : Base.int

Sum of all port widths specified in the interface definition.

Sourcemodule Unsafe_assoc_by_port_name : sig ... end
Sourceval zip : 'a t -> 'b t -> ('a * 'b) t
Sourceval zip3 : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) t
Sourceval zip4 : 'a t -> 'b t -> 'c t -> 'd t -> ('a * 'b * 'c * 'd) t
Sourceval zip5 : 'a t -> 'b t -> 'c t -> 'd t -> 'e t -> ('a * 'b * 'c * 'd * 'e) t
Sourceval map3 : 'a t -> 'b t -> 'c t -> f:('a -> 'b -> 'c -> 'd) -> 'd t
Sourceval map4 : 'a t -> 'b t -> 'c t -> 'd t -> f:('a -> 'b -> 'c -> 'd -> 'e) -> 'e t
Sourceval map5 : 'a t -> 'b t -> 'c t -> 'd t -> 'e t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f) -> 'f t
Sourceval iter3 : 'a t -> 'b t -> 'c t -> f:('a -> 'b -> 'c -> Base.unit) -> Base.unit
Sourceval iter4 : 'a t -> 'b t -> 'c t -> 'd t -> f:('a -> 'b -> 'c -> 'd -> Base.unit) -> Base.unit
Sourceval iter5 : 'a t -> 'b t -> 'c t -> 'd t -> 'e t -> f:('a -> 'b -> 'c -> 'd -> 'e -> Base.unit) -> Base.unit
Sourceval fold : 'a t -> init:'acc -> f:('acc -> 'a -> 'acc) -> 'acc
Sourceval fold2 : 'a t -> 'b t -> init:'acc -> f:('acc -> 'a -> 'b -> 'acc) -> 'acc
Sourceval scan : 'a t -> init:'acc -> f:('acc -> 'a -> 'acc * 'b) -> 'b t
Sourceval scan2 : 'a t -> 'b t -> init:'acc -> f:('acc -> 'a -> 'b -> 'acc * 'c) -> 'c t
Sourceval offsets : ?rev:Base.bool -> Base.unit -> Base.int t

Offset of each field within the interface. The first field is placed at the least significant bit, unless the rev argument is true.

Sourceval of_interface_list : 'a t Base.list -> 'a Base.list t

Take a list of interfaces and produce a single interface where each field is a list.

Sourceval to_interface_list : 'a Base.list t -> 'a t Base.list

Create a list of interfaces from a single interface where each field is a list. Raises if all lists don't have the same length.

Sourcemodule All (M : Base.Monad.S) : sig ... end

Similar to Monad.all for lists -- combine and lift the monads to outside the interface.

Sourceval or_error_all : 'a Base.Or_error.t t -> 'a t Base.Or_error.t

Equivalent to All(Or_error).all. This is made a special case for convenience.

Sourcemodule type Comb = sig ... end
Sourcemodule Of_bits : Comb with type comb = Hardcaml.Bits.t
Sourcemodule Of_signal : sig ... end
Sourcemodule Of_always : sig ... end

Helper functions to ease usage of the Always API when working with interfaces.

Sourcemodule Names_and_widths : sig ... end
Sourceval to_packed_array : (module Hardcaml.Comb.S with type t = 'a) -> 'a X.t -> 'a t
Sourceval to_packed_array_latch_on_read : read_latency:Base.int -> Hardcaml.Reg_spec.t -> Hardcaml.Signal.t X.t -> Hardcaml.Signal.t t -> Hardcaml.Signal.t t
Sourceval of_packed_array : (module Hardcaml.Comb.S with type t = 'a) -> 'a t -> 'a X.t
Sourceval of_packed_array_with_valid : (module Hardcaml.Comb.S with type t = 'a) -> 'a Hardcaml.With_valid.t t -> 'a Hardcaml.With_valid.t X.t
Sourceval extract_field_as_int : (Base.int t -> Base.int) X.t
Sourceval extract_field_as_int64 : (Base.int t -> Base.int64) X.t
Sourceval extract_field_as_bytes : (Base.int t -> Base.Bytes.t -> Base.unit) X.t
Sourceval extract_field_as_string : (Base.int t -> Base.String.t) X.t
Sourceval set_field_as_int : (Base.int t -> Base.int -> Base.unit) X.t
Sourceval set_field_as_int64 : (Base.int t -> Base.int64 -> Base.unit) X.t
Sourceval set_field_as_bytes : (Base.int t -> Base.Bytes.t -> Base.unit) X.t
Sourceval set_field_as_string : (Base.int t -> Base.String.t -> Base.unit) X.t
Sourceval of_packed_int_array : Base.int t -> Base.int X.t
Sourceval to_packed_int_array : Base.int X.t -> Base.int t
OCaml

Innovation. Community. Security.