DSP Graphical Programming

Parallel Performance Group strand at nic.cerf.net
Wed Apr 6 14:34:05 EST 1994



                       PARALLEL PERFORMANCE GROUP, INC.

                            Volume #1, Issue #1

                                April, 1994

   This is the first issue of Parallel Performance Group's free monthly
E-Mail DSP Graphical Programming Newsletter, a publication on Graphical
Programming for Signal and Image Processing. DSP Graphical Programming is
illustrated via the DataFlo visual software development facility and
runtime environment for signal and image processing applications.  DataFlo
operates on UNIX-based workstations and supports both OPEN LOOK and Motif
standards.  A multiprocessing version for CSP and VxWorks multiprocessing
boards using a Sun workstation as a host is also available. For more in-
formation on DSP Graphical Programming and Dataflo, please contact Parallel
Performance Group at (602)282-6300, at strand at ppg.strand.com, or at 450
Jordan Rd., Suite E, Sedona, AZ 86336.

     This Issue's Topic: Intro To Graphical Programming For DSP and Image

   DataFlo is an extension of the syntax and standards proven over the years
as part of the Processing Graph Method (PGM) software developed by the US
Naval Research Laboratory.  PGM is perhaps the best-documented dataflow
software to date.  DataFlo was designed to conform to PGM terminology while
adding a visual programming dimension through the X Window standard.  The
DataFlo system provides graphical programming, debugging, and runtime analysis
tools to be used by scientists, engineers, and analysts who want to focus on
the application rather than the details of computer programming.  Data is
represented by waveforms and images, as well as text files.

   All development is done by selecting icons, filling in menus, and connecting
process boxes by lines to form an I/O-oriented flowchart representing the
complete application.  Thus the application is constructed in a building-block
manner by synthesizing and testing individual algorithms before connections are
made to the next hierarchical level.  Signal generators can be synthesized for
testing algorithms and observing waveforms at intermediate points.  The ability
to visualize algorithms as they evolve in the development process provides an
extremely efficient method for the selection and modification of parameters.

                           An Algorithm of Primitives

   The graphical programming of an algorithm uses preprogrammed "primitives"
from the DataFlo Library.  A complete algorithm can itself become a subroutine
for use as part of a higher level process, or for use in another application
requiring the same function.  This ability to reuse elements of the overall
program is an extremely valuable object-oriented feature incorporated into the
DataFlo environment, and can increase software development productivity for
even the most complex applications.

   The DataFlo programming environment is robust and hierarchical, handles
real, integer, and complex data, and is based on a dataflow input-output
methodology represented by FIFO data queues existing between process blocks.


                        DataFlo Methodolgy and Terminology

                             Graphs, Nodes, and Queues

   A graph is a pictorial description of the application's algorithm, composed
of basic signal processing building blocks called nodes, connected by FIFO data
queues.  A graph may be just a few nodes connected by queues, or a more complex
stucture of many nodes and subgraphs integrated into a hierarchy of structure
levels.  Each node contains a primitive, connection ports, and an interface
procesdure.  A primitive is the signal processing entity within the node,
selected from the DataFlo Primitive Library of some 140 functions grouped into
17 Functional Primitve Groups:  Arithmetic Operations
                                Comparison Operations
                                FFT Operations
                                Filter Operations
                                Format Operations
                                Function Operations
                                Input Operations
                                Logic Operations
                                Matrix Operations
                                Move Operations
                                Output Operations
                                Statistics Operations
                                Synthesis Operations
                                Trigonometric Operations
                                Image Operations
                                Communications Operations
                                User Operations

Optional libraries for specific signal processing disciplines are available.
The user can design primitives offline and add them to the standard library.

                         A Sample DataFlo Flowchart

In issue #2, we will describe the DataFlo Editor and Run-Time system, and
describe the design and simulation of a frequency-modulated signal generator
represented by the DataFlo graph shown below:

            |                                        |
            |           ________   _________         |
            |          |Feedback| \ Accum   \        |
            |          |mov_v_r |--|REAL    |________|
            |          |1       |  |1       |
            |          |________| /_________/ 
            |            |  
            |            |
            |            |
            |            |
  ________  |  ________  |  ________     ________     ________     ________  
 |One     \ | |Incrmnt | | |DivBySiz|   |Square  |   |Multiply|   |Sin_Gen |
 |REAL    |---|add_vs_r|---|div_vs_r|---|sqr_v_r |---|mul_vs_r|---|sin_v_r |
 |1       |   |1       |  _|256     |   |256     | | |256     |   |256     |--
 |________/   |________| | |BREAK   |   |BREAK   | | |BREAK   |   |BREAK   |  |
                         | |________|   |________| | |________|   |________|  |
                         |                         |                          |
  ________               |                         |              _________   |
 |Size    \              |                         |             \ Result  \  |
 |REAL    |______________|                         |              |RESULT  |  |
 |1       |                                        |              |256     |--  
 |________/                                        |             /_________/
  ________                  ________               |
 |TwoPi   \                |MulByN  |              |
 |REAL    |----------------|mul_vs_r|--------------
 |1       |              __|1       |
 |________/             |  |________|
  ________              |
 |N       \             |
 |REAL    |-------------
 |1       |   

More information about the Bio-soft mailing list