Header menu logo issie

SynchronousUtils Module

Functions and values

Function or value Description

calculateCustomComponentsCombinatorialPaths diagramName graph

Full Usage: calculateCustomComponentsCombinatorialPaths diagramName graph

Parameters:
Returns: 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.
diagramName : string
graph : SimulationGraph
Returns: CustomCompsCombPaths option

couldBeSynchronousComponent compType

Full Usage: couldBeSynchronousComponent compType

Parameters:
Returns: 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.

compType : ComponentType
Returns: bool

getCombinatorialOutputs combRoutes node inputPortNumberOpt

Full Usage: getCombinatorialOutputs combRoutes node inputPortNumberOpt

Parameters:
Returns: 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).

combRoutes : CustomCompsCombPaths
node : SimulationComponent
inputPortNumberOpt : InputPortNumber option
Returns: Map<OutputPortNumber, (ComponentId * InputPortNumber) list>

getHybridComponentAsyncOuts compType inputPortNumber

Full Usage: getHybridComponentAsyncOuts compType inputPortNumber

Parameters:
Returns: OutputPortNumber list option

used to do asynchronous cycle checking on atomic components with non-trivial asynch paths. should this, or something like it, also be used for in dependency cycle checking? returns Some (async outputPortNumbers from inputPortNumber) if component is hybrid, otherwise None.

compType : ComponentType
inputPortNumber : InputPortNumber
Returns: OutputPortNumber list option

getNodeOrFail graph id

Full Usage: getNodeOrFail graph id

Parameters:
Returns: SimulationComponent
graph : SimulationGraph
id : ComponentId
Returns: SimulationComponent

hasSynchronousComponents graph

Full Usage: hasSynchronousComponents graph

Parameters:
Returns: bool

Find out whether a simulation graph has some synchronous components.

graph : Map<ComponentId, SimulationComponent>
Returns: bool

isHybridComponent compType

Full Usage: isHybridComponent compType

Parameters:
Returns: bool
compType : ComponentType
Returns: bool

Type something to start searching.