id package:clash-prelude

Identity function.
id x = x
Identity circuit
Xilinx specific variant of ddrIn implemented using the Xilinx IDDR primitive in SAME_EDGE mode. Reset values are 0
Store fields of different constructs at non-overlapping positions. That is, a data type with two constructors with each two fields of each one bit will take four bits for its whole representation (plus constructor bits).
EXPERIMENTAL Access a delayed signal from the future in the present. Often required When writing a circuit that requires feedback from itself.
mac
:: KnownDomain dom
=> Clock dom
-> Reset dom
-> Enable dom
-> DSignal dom 0 Int
-> DSignal dom 0 Int
-> DSignal dom 0 Int
mac clk rst en x y = acc'
where
acc' = (x * y) + antiDelay d1 acc
acc  = delayedI clk rst en 0 acc'
Print assertions in HDL
The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following: The method names refer to the monoid of lists under concatenation, but there are many other instances. Some types can be viewed as a monoid in more than one way, e.g. both addition and multiplication on numbers. In such cases we often define newtypes and make those instances of Monoid, e.g. Sum and Product. NOTE: Semigroup is a superclass of Monoid since base-4.11.0.0.
Hidden arguments
A value reflected to, or hiding at, the Constraint level e.g. a function:
f :: Hidden "foo" Int
=> Bool
-> Int
f = ...
has a normal argument of type Bool, and a hidden argument called "foo" of type Int. In order to apply the Int argument we have to use the expose function, so that the hidden argument becomes a normal argument again.

Original implementation

Hidden used to be implemented by:
class Hidden (x :: Symbol) a | x -> a where
hidden :: a
which is equivalent to IP, except that IP has magic inference rules bestowed by GHC so that there's never any ambiguity. We need these magic inference rules so we don't end up in type inference absurdity where asking for the type of an type-annotated value results in a no-instance-in-scope error.
A constraint that indicates the component has a hidden Clock Click here to read more about hidden clocks, resets, and enables
A constraint that indicates the component needs a Clock, a Reset, and an Enable belonging to the same dom. Click here to read more about hidden clocks, resets, and enables
A constraint that indicates the component needs an Enable Click here to read more about hidden clocks, resets, and enables
A constraint that indicates the component needs a Reset Click here to read more about hidden clocks, resets, and enables
Hide the Clock argument of a component, so it can be routed implicitly. Click here to read more about hidden clocks, resets, and enables
Hide the Clock, Reset, and Enable arguments of a component, so they can be routed implicitly. Click here to read more about hidden clocks, resets, and enables
Hide the Enable argument of a component, so it can be routed implicitly. Click here to read more about hidden clocks, resets, and enables
Hide the Reset argument of a component, so it can be routed implicitly. Click here to read more about hidden clocks, resets, and enables
Constraint for the divide function
Constraint for the divide function, specialized for SFixed
Constraint for the divide function, specialized for UFixed
Fixed point division When used in a polymorphic setting, use the following Constraint synonyms for less verbose type signatures:
  • DivideC rep int1 frac1 int2 frac2 for: Fixed rep int1 frac1 -> Fixed rep int2 frac2 -> Fixed rep (int1 + frac2 + 1) (int2 + frac1)
  • DivideSC rep int1 frac1 int2 frac2 for: SFixed int1 frac1 -> SFixed int2 frac2 -> SFixed (int1 + frac2 + 1) (int2 + frac1)
  • DivideUC rep int1 frac1 int2 frac2 for: UFixed int1 frac1 -> UFixed int2 frac2 -> UFixed (int1 + frac2 + 1) (int2 + frac1)