|
|
| About The Customer |
|
The customer is a global test and measurement solutions and services
provider. Customer provides test, measurement and monitoring devices,
semiconductor products and chemical analysis tools that are invaluable
in research and development, manufacturing, installation and management.
|
| The Challenge |
The platform, consisting of several hardware and software,
sent digital and analog signals to the chipset under test on the System-on-Chip
(SOC), measured the outputs and displayed the result to the user.
One key component of the SOC was called Mixed Signal Tool, used for
testing analog signal. The primary objective of the project was to
replace the existing Mixed Signal Tool by a more sophisticated and
user-friendly one. The new Mixed Signal Tool was designed to have
a powerful waveform-generation and waveform-viewing environment that
created customizable, easy-to-use graphical display and analysis capabilities
for debugging test applications effectively. One key requirement was
to incorporate some user-friendly mechanism by which the user can
easily filter or select the stored waveforms based on some criteria
and load them in the workspace. Additionally, the application had
to provide a robust Application Programming Interface, named "Mauretania
API", to support customizable display and analysis tools used
in Digital, Mixed Signal and RF applications. The API had to be so
rich in functionality that it should be capable to represent all conceivable
GUI task.
|
|
The Solution
|
The core of the solution was implemented in the two
modules, viz. Waveform Navigation Tool and Waveform Debug Tool. Main
functionality of the Waveform Navigation Tool (WNT) was to allow the
user to see the list of waveform files available in the device file
directory in an easy and intuitive manner and let them open and view
the waveforms in the Waveform Debug Tool (WDT). The tool allowed the
user to search and filter the available waveform files based on parameters
like test suite number, pin, label, site etc. and displayed the result
in a tabular form. The waveform data was stored in the form of XML
files and the navigation tool accessed them by means of an XML R/W
API also developed as a part of this project. The other main component,
Waveform Debug Tool, allowed the users to create, view, download,
upload, and analyze waveforms. This tool displayed one or more traces
stored in the waveform files, which the user could zoom, label, set
cursor and marker on, mask some part of it etc. Waveforms could be
shown as line graph, bar graph or scatter diagram. The module used
a third party tool JChart for displaying the traces. The application
was also capable of generating different types of waveforms, like
sine, cosine, saw tooth, triangle etc., based on user given formula.
Waveform Navigation Tool and Waveform Debug Tool were developed as
J2SE packages, making extensive use of the Swing classes. These tools
were integrated with the existing 93K SOC IDE as additional plug-ins
and invoked from there, The fact that the IDE and most other 93K SOC
applications were Java-based was one of the prime reason for developing
this part of Mauretania project on Java platform. It should be mentioned
here that the portion of WDT, which interacted with the hardware for
downloading and uploading the waveforms, were migrated by the client
himself from their old Mixed Signal Tool application. This part was
in C and it was interfaced with WDT by means of Java Native Interface
(JNI).
Another major module developed as a part of the system was the user-callable
API. This API could do almost every GUI activity, like opening, closing,
zooming traces etc., performed by the WNT and WDT, programmatically.
This API was developed as a C++ shared library and interacted with
WNT and WDT through CORBA interfaces. Since these APIs were to be
called primarily from SOC specific user procedures and test functions,
which were all C++ programs, necessitated the API to be developed
in C++.
Some relevant factors for choosing CORBA interface over other inter-process
communication methods like UNIX IPC mechanism, socket, COM/DCOM, RPC
etc. were
a) communication had to be done between Java and C++ application,
b) solution had to be UNIX based, and
c) theoretically the C++ client and Java server may reside in two
different machines. Tao, a third party tool, was used as the Object
Request Broker (ORB), which is necessary for any CORBA based application.
|
| The Benefits |
|
 |
The vastly improved user interfaces
were extremely intuitive, thereby increasing the usability of
the Mixed Signal Tool application and reducing the customer-training
period. |
 |
The API proved to be an extremely
effective tool for the advanced user who could programmatically
debug and troubleshoot their chips under test. |
|
|
|
|