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