issie


SynchronousUtils

Namespace: global

Functions and values

Function or valueDescription
calculateCustomComponentsCombinatorialPaths(...)
Signature: diagramName:string -> graph:SimulationGraph -> CustomCompsCombPaths option

For each dependecy in a simulation graph, create a map containing: - key: name of the custom component. - value: a map with: - key: each InputPortNumber - value: a list of OutputPortNumber combinatorially connected to the input. An input is considered combinatorially connected to an output if there is at least one logic path connecting an input directly with the output. In other words, there must be at least one route from the input to output that does not encounter any synchronous component. Return None if such information cannot be inferred, for example if there is a circular dependency.

couldBeSynchronousComponent(compType)
Signature: compType:ComponentType -> bool

Tells wether a component is clocked or not. Note that Custom components may be clocked (cannot tell without recursively analysing them), so they are considered synchronous.

getCombinatorialOutputs(...)
Signature: combRoutes:CustomCompsCombPaths -> node:SimulationComponent -> inputPortNumberOpt:InputPortNumber option -> Map<OutputPortNumber,(ComponentId * InputPortNumber) list>

Given a map of combinatorial routes from inputs to outputs for every simulation graph, perform a lookup to find the combinatorial routes from a given input to the outputs. Then filter the outputs of the custom node to only point to the combinatorial children (i.e. the ones connected to the combinatorial outptus).

getCustomComponentType(_arg1)
Signature: _arg1:ComponentType -> CustomComponentType
getCustomName(_arg1)
Signature: _arg1:ComponentType -> string
getNodeOrFail graph id
Signature: graph:SimulationGraph -> id:ComponentId -> SimulationComponent
hasSynchronousComponents(graph)
Signature: graph:Map<ComponentId,SimulationComponent> -> bool

Find out whether a simulation graph has some synchronous components.

isCustom(_arg1)
Signature: _arg1:ComponentType -> bool
isInput(_arg1)
Signature: _arg1:ComponentType -> bool
isOutput(_arg1)
Signature: _arg1:ComponentType -> bool