
The RASSP Digest - Vol. 2, 2nd. Qtr. 1995
Graph Translation Tool (GrTT)
by Chris Robbins
Management Communications and Control, Inc. (MCCI) is developing GrTT (Graph Translation Tool) under a
RASSP technical base BAA contract. GrTT is an autocoding tool that will translate Processing Graph Method
(PGM) graphs to Ada behavior models. GrTT may be used to create behavior models of either hardware or
software architecture partitions of PGM data flow graphical application specifications. The functional behavior
of the model will be identical to the graph partition represented. Identical outputs will be produced by either
model execution or data flow execution of the processing graph on a common input data set. A dynamic view of model execution is supported thus providing visibility of the modeled graph's execution behavior.
Implementation of the RASSP HW/SW codesign process by the Lockheed Martin Advanced Technology
Laboratories Team utilizes PGM for data flow specification of the application. Processing within the PGM
graph's nodes is specified by domain primitives. Domain primitives are target independent signal processing
and data flow control function specifications. Their use in the PGM application specification provides an open
application programmer's interface (API) to the team's tools implementing the architecture selection and
design processes. Domain primitive graphs are partitioned by the architecture tools into hardware and
software allocations. The allocations are further partitioned to become either hardware component partitions
or software partitions. Software design tools will generate stand-alone PGM graphs for each partition. GrTT
may be used to generate behavior models for each hardware or software partition.
Figure 1 illustrates the partition modeling concept. An application partition graph
is shown on the left in both iconic and notational form. Each node has its unique name above the line and
specifies the domain primitive implementing the node below the line. Queues represent FIFO buffering of the
data between the nodes. Node execution parameters associated with the node ports that are linked to queues
specify a thresholding criteria for node execution, data amounts to be read, and data amounts to be consumed
from the queues upon node execution. Data amounts produced onto output queues per node execution are
functions of the domain primitive controls, read amounts, data modes, etc. Node execution parameters,
process controls and parameters may be made run-time variables and provide the capability to externally
modify graph execution. Data flow execution (execution of nodes when thresholding criteria are met)
guarantees determinism or causal behavior of the graph. GrTT accepts application partition graphs in their
notational form plus sets of enumerated values of graph variables, and it produces an Ada procedure that is
the behavioral equivalent of the input graph. Graph variables that cause the input graph to alter data flow,
node firing rates, or primitive processing will cause identical behavior in the behavior model that GrTT
produces.
GrTT consists of three major objects: the SPGN parser, graph analysis, and autocoder objects. GrTT is
supported by the domain primitive database which provides data support for both GrTT, the target independent
translation, and the RASSP target dependent translations of domain primitive graphs. The translation process
that these objects implement is illustrated in Figure 2. The SPGN parser accepts a
partition graph SPGN file and enumerated graph variable (GV) sets. The parser creates a validated graph
object, a data structure representing the input graph. Error checking eliminates any invalid SPGN. All values
of variables affecting primitive execution are validated against constraints and requirements of the domain
primitives. The graph object represents a flattened graph in which all subgraphs and family constructs have
been expanded. GrTT's graph analysis object creates a state machine behavior specification from the graph
object and behavior data provided by the domain primitive database. Any behavior error conditions are
determined at this point. An example of such an error might be a graph with a periodic execution sequence
that would be too long to code or would require too large a memory map. This long periodic execution sequence is normally caused by an ill-advised combination of node execution parameters. GrTT's autocoder
object generates an Ada procedure implementing the state machine specification for all GV value sets. This Ada procedure becomes the primitive for an equivalent node replacing the partition in the original domain
primitive application. A single equivalent node graph containing the procedure as its primitive is also generated by the autocoder object.
The behavior models generated by GrTT may be used to fulfill several important HW/SW codesign functions.
GrTT software partition behavior models may be used to validate target-specific autocoded executables. The
single node graph with a GrTT behavior model embedded as its primitive may be used to validate the partition
translation and generate test vectors for other target- specific translations of the team's autocoding process.
GrTT behavior models may be embedded as equivalent nodes' primitives in an equivalent graph generated
during software architecture verification in the team's codesign process. Equivalent graph execution using
GrTT behavior models will support validation of application requirements capture through the translation
process. Since Ada syntax is used in VHDL, Ada procedures implementing behavior of PGM graph partitions
will be common for hardware and software implementations. Because of this, GrTT behavior models of
hardware partitions may be embedded as the procedural part of a VHDL behavior architecture, thus
automating generation of VHDL behavior models from graphical architecture specifications. GrTT may be
used to support hybrid, multi-level VHDL simulations. GrTT will produce a behavior system model from a
graphic specification that may be used in a hybrid simulation with a lower level structural model of a system
component. The GrTT behavior model will simulate all behavior of the system not included in the lower level
model.
Figure 3 illustrates the execution of a GrTT generated behavior model of a PGM
graph partition. Input and output vectors are shown above the single node graph with a GrTT generated
behavior model primitive. The model may be generated with "taps" specified for any internal partition queues
the user may wish to view. Behavior of those tapped queues will be generated during execution, thus providing
the user with a virtual oscilloscope view of internal partition behavior. A demonstration version of GrTT will be
completed by October, 1995. A beta version will be available for evaluation in the first quarter of the calendar
year 1996. A commercial release, as part of MCCI's autocoding toolset, is planned for 1996.
The RASSP Digest - Vol. 2, 2nd. Qtr. 1995

95q2/news_8.html