Get desktop application:
View/edit binary Protocol Buffers messages
* Creates an array from element exprs
Used in:
Variable assignment (from an expression value), which allows dataflow to be directioned and explicit. Assignments should not be cyclic.
Used in:
Used in:
Used in:
* Add :: Numeric a => (lhs :: a, rhs :: a) -> a :: Numeric a => (lhs :: a, rhs :: Range a) -> Range a :: Numeric a => (lhs :: Range a, rhs :: a) -> Range a :: Numeric a => (lhs :: Range a, rhs :: Range a) -> Range a
SUB = 11; // Use ADD and NEGATE instead A span-shrinking subtract operation for two Range types. See the documentation for shrink_sub in the Python core HDL code for details.
* Mult :: Numeric a => (lhs :: a, rhs :: a) -> a :: Numeric a => (lhs :: a, rhs :: Range a) -> Range a :: Numeric a => (lhs :: Range a, rhs :: a) -> Range a :: Numeric a => (lhs :: Range a, rhs :: Range a) -> Range a
A shrinking multiply operation for two Range types. Not commutative. See the documentation for shrink_multiply in the Python core HDL code for details.
* And :: (lhs :: Bool, rhs :: Bool) -> Bool
* Or :: (lhs :: Bool, rhs :: Bool) -> Bool
* Xor :: (lhs :: Bool, rhs :: Bool) -> Bool
* Implies :: (lhs :: Bool, rhs :: Bool) -> Bool
* Eq :: (Equality a) => (lhs :: a, rhs :: a) -> Bool
* Neq :: (Equality a) => (lhs :: a, rhs : a) -> Bool
* GT :: (Comparable a) => (lhs :: a, rhs :: a) -> Bool
* GTE :: (Comparable a) => (lhs :: a, rhs :: a) -> Bool
* LT :: (Comparable a) => (lhs :: a, rhs :: a) -> Bool
* LTE :: (Comparable a) => (lhs :: a, rhs :: a) -> Bool
* Max :: (Comparable a) => (lhs :: a, rhs :: a) -> a
* Min :: (Comparable a) => (lhs :: a, rhs :: a) -> a
* Intersection :: (Numeric a) => (lhs : Range a, rhs : Range a) -> Range a
* Hull :: (lhs :: Range a, rhs :: Range a) -> Range a Given two input ranges, returns the convex hull (union with all the inner missing bits filled in)
* Within :: (Numeric a) => (lhs :: Range a, rhs :: Range a) -> Bool :: (Numeric a) => (lhs :: a, rhs :: Range a) -> Bool Whether the lhs range or point is entirely within (contained by) the rhs. Used to be named SUBSET changed to a name that doesn't also imply a set op.
* Range :: (Comparable a) => (lower :: a, upper :: a) -> Range a
Used in:
Used in:
* Add :: Numeric a => (lhset : Set a, rhs : a) -> Set a :: Numeric a => (lhset : Set a, rhs : Range a) -> Set (Range a) :: Numeric a => (lhset : Set (Range a), rhs : a) -> Set (Range a) :: Numeric a => (lhset : Set (Range a), rhs : Range a) -> Set (Range a)
* Mult :: Numeric a => (lhset : Set a, rhs : a) -> Set a :: Numeric a => (lhset : Set a, rhs : Range a) -> Set (Range a) :: Numeric a => (lhset : Set (Range a), rhs : a) -> Set (Range a) :: Numeric a => (lhset : Set (Range a), rhs : Range a) -> Set (Range a)
String concatenate operator Concatenate : (lhs: String, rhss: Set[String]) -> Set[String] (prepend lhs to all elements) : (lhss: Set[String], rhs: String) -> Set[String] (append rhs to all elements)
Equality operator (lhss: Set[A], elt: A) -> Set[Bool] (pointwise equality of all elements in the set to the element)
* isConnected :: Port -> Port -> Bool This tells us whether the specified ports are connected
Used in:
During compilation, ConnectedExpr may be expanded (allocate replaced with concrete path indices, and arrays replaced with individual element connects). The expanded forms are stored here (including multiple elements in the array case), while the original (parent) is not modified.
* isExported :: Port -> Port -> Bool This tells us whether the specified port is exported to the hierarchy block exterior port
Used in:
if true, this is a tap, which allows the exterior port to have multiple internal connections
see comment in ConnectedExpr
* Extract :: (container :: Array a , index :: Int) -> a Extract :: (container :: Struct{index :: a}, index :: string) -> a Extract :: (container :: Range a , index :: {"minimum"|"maximum"}) -> a
Used in:
* IfThenElse :: (cond :: Bool, tru :: a, fal :: a) -> a
Used in:
/** MapExtract :: (container :: Array a , path :: LocalRef{from :: a, to :: b}) -> Array b MapExtract :: (container :: Set a , path :: LocalRef{from :: a, to :: b}) -> Set b This expression can map over a container and return a container of the relevant subexpression determined by a path. */
Used in:
* Ranges have an expression form, allowing you to constrain them without specifying them fully
Used in:
* Structs have an expression form, allowing you to constrain them without specifying them fully
Used in:
Used in:
Used in:
* Negate :: Numeric a => a -> a :: Numeric a => Range a -> Range a
* Not :: Bool -> Bool
* Invert :: Float -> Float :: Range Float -> Range Float
* Min :: Range a -> a
* Max :: Range a -> a
* Center :: Range a -> a
* Width :: Range a -> a
Used in:
value returned on an empty set, especially for reductions
Used in:
* Sum :: (Numeric a) => Set a -> a :: (Numeric a) => Set (Range a) -> Range a Sum({}) = 0
* All :: Set Bool -> Bool All inputs are true All({}) = True
* Any :: Set Bool -> Bool Any of the inputs are true Any({}) = False
* AllEq :: (Equality a) => Set a -> Bool AllEq({}) = True
* AllUnique :: (Equality a) => Set a -> Bool AllUnique(EmptySet) = True
* Maximum :: (Ordered a) => Set a -> a This op requires that the non-emptyness of the relevant set is assured before being valid.
* Minimum :: (Ordered a) => Set a -> a This op requires that the non-emptyness of the relevant set is assured before being valid.
* SetExtract :: Set a -> a This op requires that the non-emptyness of the relevant set is assured before being valid. In addition this assumes all values in the set are equal.
* Intersection :: Set (Range a) -> Range a May produce an empty range. Intersection({}) = [-inf, +inf]
* Hull :: Set (Range a) -> Range a Returns the convex hull (union with all the inner missing bits filled in) Hull({}) = EmptyRange
* Negate :: Numeric a => Set a -> Set a :: Numeric a => Set (Range a) -> Set (Range a) Pointwise negate
* Invert :: Set Float -> Set Float :: Set (Range Float) -> Set (Range Float) Pointwise Invert
Flatten[A] : Set[Set[A]] -> Set[A] Given an array of array of elements, flattens the inner array. Alternatively stated, concatenates all of the elements of the outer arrary
Used in: , , , , , , , , , , , , , ,
SetExpr set = 5;
single port to single port connect
single port to single port export
array to array connect, where allocate means allocate a subarray
array to array export, where allocate means allocate a subarray
These Exprs support cross-hierarchy operations
single port to single port tunneling (cross-hierarchy) export:
parameter assignment which may be cross-hierarchy