rda      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  An untyped term.  !"#A typed expression. $%&'()*+,-./0123456789 UV locality. :;<Unsigned variables. =>-Variables updated by state transition rules. ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdThe type of a #. efghijklmnopq 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{|}~#876543210/.-,+*)('&%$>? "! <=9;: LWVUTSRQPONM@KJIHGFEDCBAdonmlkjihgfeXcba`_^]\[ZY pqrstuvwyxz{|~}   "!  !"#876543210/.-,+*)('&%$$%&'()*+,-./0123456789;::;<==>??@ KJIHGFEDCBAABCDEFGHIJKL WVUTSRQPONMMNOPQRSTUVWX cba`_^]\[ZYYZ[\]^_`abcd onmlkjihgfeefghijklmnopqrstuvwxyz{|}~'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 local variable declaration. 'Generic external 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. $Local boolean variable declaration. 'External boolean variable declaration. !Local int8 variable declaration. $External int8 variable declaration. "Local int16 variable declaration. %External int16 variable declaration. "Local int32 variable declaration. %External int32 variable declaration. "Local int64 variable declaration. %External int64 variable declaration. "Local word8 variable declaration. %External word8 variable declaration. #Local word16 variable declaration. &External word16 variable declaration. #Local word32 variable declaration. &External word32 variable declaration. #Local word64 variable declaration. &External word64 variable declaration. "Local float variable declaration. %External float variable declaration. #Local double variable declaration. &External 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. DRule coverage information. (current coverage index, coverage data)   !"#$%&'()*+,-./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{|}~ Invoke the atom compiler. 6Example design introduces a unsigned 16-bit variable, : and declares two rules: one to increment the variable, < one to reset the variable back to zero when it hits 100.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJJKLMNOPQRSTUVWXYZ[\]^_`abDcdefghijklmnopqrstuvwxyz{|}~ K      atom-0.0.2Language.Atom.LanguageLanguage.Atom.ExpressionsLanguage.Atom.ElaborationLanguage.Atom.VerifyLanguage.Atom.CodeLanguage.Atom.SchedulingLanguage.Atom.CommonLanguage.Atom.CompileLanguage.Atom.Example Language.Atom mtl-1.1.1.0Control.Monad.TransliftIO FloatingEOrdEEqENumEExpreTypeconstant expressionvariablerawBitsWidthwidthUEUB2DUB2FUD2BUF2BUMuxULtUEqUShiftUBWOrUBWAndUBWNotUAndUNotUModUDivUMulUSubUAddUCastUConstUVRefEB2DB2FD2BF2BMuxLtEqShiftBWOrBWAndBWNotAndNotModDivMulSubAddCastConstVRef UVLocalityExternalLocalUVVVariableVDoubleVFloatVWord64VWord32VWord16VWord8VInt64VInt32VInt16VInt8VBool ExpressionEDoubleEFloatEWord64EWord32EWord16EWord8EInt64EInt32EInt16EInt8EBoolCDoubleCFloatCWord64CWord32CWord16CWord8CInt64CInt32CInt16CInt8CBoolTypeDoubleFloatWord64Word32Word16Word8Int64Int32Int16Int8Bool constTypetruefalsenot_&&.||.and_or_all_any_==./=.<.>.<=.>=.min_minimum_max_maximum_limitdiv_mod_valuemuxuvSetuvTypeueType ueUpstreamueuvuboolunotuanduoruequmuxAtomRuleruleIdruleName ruleEnable ruleAssigns ruleActions rulePeriodAtomDBatomIdatomName atomNames atomEnableatomSubs atomPeriod atomAssigns atomActionsGlobalgIdgProbesgUVsgPeriodgAssertsPathNameUID buildAtom elaboratevarvar'addNameverifywriteCruleComplexityscheduleAssign<==atomperiod getPeriodpathboolbool'int8int8'int16int16'int32int32'int64int64'word8word8'word16word16'word32word32'word64word64'floatfloat'doubledouble'actionassertprobeprobesincrdecrcondclock nextCoverageTimertimer startTimer timerDone oneShotRise oneShotFalldebounce lookupTable hysteresiscompilecompileExampleexample IntegralEsigneduvList reduceAndultelaborateRules reIdRules checkEnablecheckAssignConflicts ruleGraph HeirarchyModuleGroupSG yicesTypevarsuvName initialize transitiongetUVparseVar parseValue parseYicesgroupssplittokenstokens'vcd heirarchy heirarchy'vcdCode declareMemory declareUEcTypecodeUEcodeRule codePeriod codeCycleevtoporeportSchedule reportRule