clU      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  An untyped term.  !"#$A typed expression. %&'()*+,-./0123456789:;Unsigned variables. <=-Variables updated by state transition rules. >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcThe type of a $. defghijklmnopCreates a custom E Double. q True term. r False term. sLogical negation. t Logical AND. u Logical OR. v"The conjunction of a E Bool list. w"The disjunction of a E Bool list. x1True iff the predicate is true for all elements. y0True iff the predicate is true for any element. zEqual. { Not equal. | Less than. }Greater than. ~Less than or equal. Greater than or equal. $Returns the minimum of two numbers. *Returns the minimum of a list of numbers. $Returns the maximum of two numbers. *Returns the maximum of a list of numbers. Limits between min and max.  Division. Modulo. Returns the value of a >=. Conditional expression.  mux test onTrue ofFalse -A set of all variables referenced in a term. The type of an UE. +The list of UEs adjacent upstream of a UE.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$:9876543210/.-,+*)('&%=> #"! ;< KVUTSRQPONML?JIHGFEDCBA@cnmlkjihgfedWba`_^]\[ZYX opqrstuvwyxz{|~}   #"!  !"#$:9876543210/.-,+*)('&%%&'()*+,-./0123456789:;<<=>>? JIHGFEDCBA@@ABCDEFGHIJK VUTSRQPONMLLMNOPQRSTUVW ba`_^]\[ZYXXYZ[\]^_`abc nmlkjihgfeddefghijklmnopqrstuvwxyz{|}~$The  container holds top level IO, Var, and  definitions. A heirarchical name. A name. @A Relation is used for relative performance constraints between Actions. < data Relation = Higher UID | Lower UID deriving (Show, Eq) SGiven a top level name and design, elabortes design and returns a design database. Generic variable declaration. !!!  >Topologically sorts a list of expressions and subexpressions.  Number of UE's computed in rule.  Assigns a $ to a >=. RA Atom captures declarations including inputs, outputs, variables, and assertions D and actions including guard conditions and variable assignments. CCreates a hierarical node, where each node could be a atomic rule. YDefines the period of execution of sub rules as a factor of the base rate of the system. G Rule period is bound by the closest period assertion. For example: F period 10 $ period 2 a -- Rules in 'a' have a period of 2, not 10. 3Returns the execution period of the current scope. ,Returns the current atom heirarchical path. Boolean variable declaration. Int8 variable declaration. Int16 variable declaration. Int32 variable declaration. Int64 variable declaration. Word8 variable declaration. Word16 variable declaration. Word32 variable declaration. Word64 variable declaration. Float variable declaration. Double variable declaration. Declares an action. (Asserts expression must always be true. Declares a probe. 5Fetches all declared probes to current design point. Increments a NumE >=. Decrements a NumE >=. 8Adds an enabling condition to an atom subtree of rules. = This condition must be true before any rules in heirarchy  are allowed to execute. ,Reference to the 64-bit free running clock.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  A Timer.  Creates a new timer. 7Starts a Timer. A Timer can be restarted at any time. !True when a timer has completed. !One-shot on a rising transition. "One-shot on a falling transition. KDebounces a boolean given an on and off time (ticks) and an initial state. L1-D lookup table. X values out of table range are clipped at end Y values. 6 Input table must be monitonically increasing in X. CHysteresis returns true when then input exceeds max and false when Y the input is less than min. The state is held when the input is between min and max.  hysteresis name min max input #Compiles an atom description to C.    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGGHHIJKLMNOPQRSTUVWXYZ[\]^_`Eabcdefghijklmnopqrstuvwxyz{|}~I    atom-0.0.1Language.Atom.LanguageLanguage.Atom.ExpressionsLanguage.Atom.ElaborationLanguage.Atom.VerifyLanguage.Atom.CodeLanguage.Atom.SchedulingLanguage.Atom.CommonLanguage.Atom.Compile Language.Atom mtl-1.1.1.0Control.Monad.TransliftIO FloatingEOrdEEqENumEExpreTypeconstant expressionvariablerawBitsWidthwidthUEUB2DUB2FUD2BUF2BUMuxULtUEqUShiftUBWOrUBWAndUBWNotUAndUNotUModUDivUMulUSubUAddUCastUCustUConstUVRefEB2DB2FD2BF2BMuxLtEqShiftBWOrBWAndBWNotAndNotModDivMulSubAddCastCustConstVRefUVVVariableVDoubleVFloatVWord64VWord32VWord16VWord8VInt64VInt32VInt16VInt8VBool ExpressionEDoubleEFloatEWord64EWord32EWord16EWord8EInt64EInt32EInt16EInt8EBoolCDoubleCFloatCWord64CWord32CWord16CWord8CInt64CInt32CInt16CInt8CBoolTypeDoubleFloatWord64Word32Word16Word8Int64Int32Int16Int8Bool constType customDoubletruefalsenot_&&.||.and_or_all_any_==./=.<.>.<=.>=.min_minimum_max_maximum_limitdiv_mod_valuemuxuvSetuvTypeueType ueUpstreamueuvuboolunotuanduoruequmuxAtomRuleruleIdruleName ruleEnable ruleAssigns ruleActions rulePeriodAtomDBatomIdatomName atomNames atomEnableatomSubs atomPeriod atomAssigns atomActionsGlobalgIdgProbesgUVsgPeriodgAssertsPathNameUID buildAtom elaboratevaraddNameverifywriteCruleComplexityscheduleAssign<==atomperiod getPeriodpathboolint8int16int32int64word8word16word32word64floatdoubleactionassertprobeprobesincrdecrcondclockTimertimer startTimer timerDone oneShotRise oneShotFalldebounce lookupTable hysteresiscompile IntegralEsigneduvList reduceAndultelaborateRules checkEnablecheckAssignConflicts HeirarchyModuleGroupSG yicesTypevarsuvName initialize transitiongetUVparseVar parseValue parseYicesgroupssplittokenstokens'vcd heirarchy heirarchy'vcdCode declareMemory declareUEcTypecodeUEcodeRule codePeriod codeCycleetoporeportSchedule reportRule