Software Design Document

for the

Graphical User Interface (GUI) (Task 1.2)

for the

Tool for Automating Estimation of DSP Resource Statistics for Waveform Components

Submitted under Subcontract FP-19738-430292

An Integrated Tool for SCA Waveform Development, Testing, and Debugging and a Tool for Automated Estimation of DSP Resource Statistics for Waveform Components

Version 1.0

Revision History

Version / Summary of Changes / Date
0.1 (BL) / Internal Draft / 10/23/07
0.2 (BL) / Internal Release / 11/19/07
0.3 (JN) / Edited to Reflect Changes / 11/24/07

PCET GUI Design Document Version 1.0 11/16/07

Bin Le, Cognitive Radio Technologies, LLC

Table of Contents

Table of Contents 1

Listing of Figures 2

Listing of Tables 2

1 Introduction 3

1.1 Project Overview 3

1.2 Document Purpose and Goals 3

1.3 Document Scope 3

1.4 Document Organization 3

2 GUI System Overview 4

2.1 GUI Overall Functionality 4

2.2 Data Management and Display 4

2.3 Calculation Parameterization Support 6

2.4 Engine Calculation Control 7

2.4.1 Engine Interface (API) 7

2.4.2 GUI Control on Calculation Engine 7

2.5 Calculation Result Collection, Display and Storage 9

3 GUI Software Architecture 10

3.1 Software Structure 10

3.2 Code Structure 10

4 Key Implementation Methods 16

4.1 Graphical Display Base Library 16

4.2 Interface Implementation 16

5 Support for Later Upgrading 16

6 Integration into Other Packages 16

7 References 17

List of Figures

Figure 1: GUI main window display 5

Figure 2: Component property display window 6

Figure 3: Component item selection display and control 8

Figure 4: Calculation routine management interface 8

Figure 5: Calculation result display window 9

Figure 6: PCET GUI functional block diagram 10

List of Tables

Table 1: Functional Breakdown by File 11

Table 2: File Dependency Structure Matrix 15

1  Introduction

This Software Design Document establishes the software design for the Graphical User Interface (GUI) for the “Tool for Automating Estimation of DSP Resource Statistics for Waveform Components.” This document has been prepared in accordance with the requirements of Task 2 of Subcontract FP-19738-430292 as part of the project to develop “An Integrated Tool for SCA Waveform Development, Testing, and Debugging and a Tool for Automated Estimation of DSP Resource Statistics for Waveform Components.”

1.1  Project Overview

The project aims to develop an open source stand alone program for estimating the cycles, power and memory required to implement waveform components on arbitrary processors which can then be incorporated into OSSIE. This tool is intended as an aid when beginning a new software radio (SDR) design or when investigating porting feasibility of an existing waveform to a new platform. The intent is to provide immediately available guidance to rapidly winnow down candidate platforms to a handful for more detailed systems analysis.

The stand alone program consists of the following three principle components:

·  Computational Engine (CE)

·  Graphical User Interface (GUI)

·  Data files characterizing selected waveform components (Component Files) and Digital Signal Processors (DSP)

In the envisioned operation illustrated in Figure 1, the user first defines in the GUI

·  A set of waveform components (e.g., filters, modulation/demodulation blocks)

·  Requisite parameters for each component (e.g., permitted execution time, block length)

·  A set of target DSPs.

For each combination of DSP and waveform component, the GUI calls the computational engine and passes the following information:

·  The waveform component definition file

·  The DSP definition file

·  User-defined parameters.

Using methods first described in [1], the computational engine uses this information to estimate the following values if the component were to be implemented on the target DSP:

·  Estimated cycles

·  Estimated computational time

·  Estimated data memory

·  Estimated program memory

·  Estimated energy consumption

This information is then passed back to the GUI. After all user-specified component/DSP pairs have been evaluated by successive calls to the CE, the GUI tabulates the following five tables for each DSP/component pair:

·  Estimated cycles

·  Estimated computational time

·  Estimated data memory

·  Estimated program memory

·  Estimated energy consumption.

Figure 1: Primary Components for the “Tool for Automating Estimation of DSP Resource Statistics for Waveform Components”

1.2  Document Purpose and Goals

This document provides a detailed description of the software design and implementation of the Graphical User Interface (GUI) subsystem for the tool for automating estimation of DSP resource statistics for waveform components.

1.3  Document Scope

This document covers the design of the complete GUI subsystem and its software components. The document describes the GUI functionality and software architecture, it also describes the software implementation of the GUI on a stand-alone Windows or Linux based system. This document does not cover GUI design for other hardware/software platforms.

Specifically, this design covers the following aspects of the GUI:

·  Required functionality – The GUI will provide the graphical user interface for the user to view, manage and edit waveform components and DSP processor specifications, and will enable the user to control the engine calculation and analyze calculation results.

·  Extensibility – The GUI will provide structured data display and management for an ever-growing number of waveform components and DSP processors.

·  Upgradeability – The GUI will be delivered as part of an open source package, which could be improved upon by later developers.

·  Interoperability – While capable of operating as a stand-alone module incorporating the modular calculation engine with a standard file interface, the GUI is designed to have an open and modular software structure which supports integration into the existing OSSIE partitioning tool and the larger IDE package.

1.4  Document Organization

The remainder of this document is organized as follows. Section 2 gives an overview of the GUI subsystem. Section 3 describes the GUI’s software structure and its functional components. Section 4 explains the implementation methods used in all the key processing procedures in the GUI. Section 5 provides suggestions on how the GUI could be upgraded in subsequent releases. Section 6 describes how the GUI could be integrated into other packages to form the PCET overall system.

2  GUI System Overview

2.1  GUI Overall Functionality

The purpose of GUI development is to provide a user friendly graphical interface to automate and control the processing cost calculation of the engine, generate and manage a library of target waveform component and DSP processor specification data files, and provide an easy interface to between the GUI and the calculation engine to load the input data to and collect the output data from the engine. The GUI also provides post processing of the engine output data to support analysis.

The GUI subsystem mainly includes the following four types of functionalities:

(1)  Data management and display;

(2)  Calculation parameterization, display and editing;

(3)  Automation of calculation engine control, routine management interface;

(4)  Calculation result collection and post-processing support.

2.2  Data Management and Display

The GUI provides a straightforward way of viewing the stocked waveform components and DSP processor data. The main window of the GUI is shown in Figure 1.

Figure 1: GUI Main Window Display

On the left plane of the GUI main window there is a tree list of components, which includes the names of all the waveform components and DSP processors stocked in the system database. They are sorted in the hierarchical structure based on their inherent relations to each other. With the hierarchically structured display, the user can naturally follow the logical ordering of the communication waveform components and physical structure of DSP hardware resource modules.

There are two roots in the tree list box, waveform components and processor components. Upon double-click on each of them a hierarchical component list will spread for the use to pick a specific component belonging to its own group and dependency. Each component name listed in that box can be selected and activated to show its detailed description. There’s a specification data file associated with each component stocked in the system data library. With a double-click on the selected component name, the component data file will loaded and a new property window will pop up to show the specifications contained in the file. Figure 2 is a screen shot of a property window for waveform component waveform_XXX002.

Figure 2: Component property display window

Note that the property display window is only for viewing the component specifications, so it does not support editing on the component data. In later versions of the GUI, it may be updated to an editable window for special kinds of components.

2.3  Calculation Parameterization Support

For a selected pair of waveform component and DSP processor, a specific parametric set is formulated to control the engine’s calculation. Such parameterization approach defined to instantiating a specific round of calculation is detailed in SDD_engine_v_1_0.doc. This document details how parametric control of the calculation engine is supported with a clearly defined interface (API) and can be managed by the user through graphical interface.

The GUI provides an easy way of managing the parametric configuration set of the engine. At the right plane of the main window shown in Figure 1, calculation parameters are listed with their meanings and values. The PCET system is designed to store the calculation configurations into the parameter profile data file that is to be loaded to control the engine. By the pushbutton “Load”, the GUI supports two modes of loading such parameter profiles, one is to locate the library of the parameter files, and upon the selection of a specific file by the user; the other is to help the user to look up and then load the target parameter file corresponding to the waveform component selected by the user. For either case, the GUI loads the file and displays all the parameters onto the parameter-display zone; and let the user to edit their values as needed. By the pushbutton “Save”, the GUI takes current specified values of the edited parameters and stores them back to the file, so that the parameter profile is updated and to be loaded to the engine to change its running mechanism. The “Reset” button will discard the changes you made and reload the last-saved profile data.

2.4  Engine Calculation Control

The main reason of GUI development is to provide a user-friendly interface of controlling the calculation engine, while still maintain the modularity of the system. The GUI follows the exact interface defined by the engine. At the same time, it provides a routine to automate the configuration and call to the engine. The user only needs to give the top-level settings from the GUI.

2.4.1  Engine Interface (API)

As currently defined, the calculation engine is called via a file interface with the following arguments:

component_file_name

dsp_file_name

parameter_file_name

output_file_name

debug_flag_value

Detailed explanation of these files is given in SDD_engine_v_1_0.doc. The engine maintains its independence with the standard ASCII file interface, so that it can also be called stand-alone with a command line. Every time it is called, one round of calculation is performed by the engine for one specific waveform component, one specific DSP processor module, and one specific parameter configuration.

2.4.2  GUI Control on Calculation Engine

The GUI provides the engine all the files it needs for calculation. The GUI also helps the user to manage these files through graphical display. In the central plane of the GUI main window shown in Figure 3, there are two selection list boxes for the user to pick the waveform components and DSP processors for the engine to perform calculation. The waveforms and DSPs to be calculated are picked from the comprehensive component Tree List on the left of the main window. The “add” button click will add the selected item in the Tree List into the selection box, and the “remove” button click will delete the selected item in the selection box. The GUI feeds these waveform and DSP files to the calculation engine as well as the parameter profile upon user’s editing (at the right plane of the main window).

The upper and lower selection boxes are for waveform components and DSP processors respectively. If a waveform item in the Tree List is selected and the “add” button of the DSP selection box is clicked, the GUI will give a warning and no item will be added into the DSP selection box.

Figure 3: Component item selection display and control

With the GUI, a user can pick multiple waveform components and DSPs of interest for the engine to calculate. Since the engine only supports one round of calculation per call, the GUI needs to provide a routine to call the engine iteratively with different configurations. Within a routine the engine is called with a specific set of waveform, DSP, and parameter settings for each round of calculation. And the result of each round of engine call is recorded by the GUI. When the whole routine is finished, all the results are tabulated and displayed in GUI, and can be saved for future analysis.

Figure 4: Calculation routine management interface

The GUI also provides an easy way for user to save the routine configurations into routine files so that they can be reused later without redo the multiple selections and configurations again. Figure 4 shows the save/load interface of the routine management provided. When a routine file is loaded, its contained waveform components and DSP processors will be shown in the waveform/DSP selection boxes, which are to be sent to the engine for calculation.

2.5  Calculation Result Collection, Display and Storage

Once the target waveform and DSPs are picked and parameters are set, user can click the “calculation” button to kick off the calculation routine. At each round of engine call during the loop, an output ASCII file is generated by the engine (detailed output file description is given by SDD_engine_v_1_0.doc) and picked by the routine. The GUI stores the output data of each round and gathers them into multiple tables. When all the calculations are done, a result window will show up displaying all the collected output data in forms of tables, shown in Figure 5.