Tools Menu
Several essential, but unrelated, functions are presented under the Tools menu. These operations allow, among other things, the exporting of of defined waveforms to "C" programming language data structures. Also, waveforms defined using Cypress' older GPIF tool can be imported into GPIF Designer from the Tools menu.

Select Waveform Bank

GPIF Designer is able to manage up to 8 sets (i.e. banks) of waveform descriptors. Each bank consists of 4 waveform descriptors, which are displayed on the 4 waveform editor tab pages. At any one time, only one bank of waveform descriptors is displayed. However, the displayed bank of descriptors can be switched via the Tools|Select Waveform Bank menu item.

The bank number of the currently active waveform bank is displayed at the bottom of each waveform editor tab page, as shown above.
By default, only a single waveform bank is enabled. To enable additional banks , use the File|Properties menu.

Map Waveforms to WFSELECT

Each of the 4 waveforms can be configured to perform any arbitrary function (single/fifo read or write). That is, there is no constraint on what function must be implemented on any given waveform tab page. For instance, after performing a File|New operation, the 4 waveform tabs are labelled, successively as Single Read, Single Write, Fifo Read, and Fifo Write, as shown below. (After a File|New operation, there are no waveforms defined. So, the labelling of the tabs is completely arbitrary.)

In the Fifo design example, shown below, the first waveform tab has been used to define a FIFORd operation. The second waveform has been used to define a FIFOWr operation. The 3rd and 4th waveforms are unused.

Because there is no requirement that waveform tab labels reflect the actual function of the waveform defined on that page, and because the designer is allowed the freedom of placing any functional waveform on any tab page, a mapping is needed to tell the GPIF what function is really found on each waveform tab page.
This mapping is defined in the GPIF register, WFSELECT, and is configured via the Tools|Map Waveforms to WFSELECT . . . menu item. The Map Waveforms to WFSELECT dialog box is shown below, with the configuration of the FIFO design example.

Note that, after a File|New operation, the 4 waveforms have been mapped into WFSELECT such that the function named in the tab label would be appropriate for that tab sheet. That is, after a File|New operation, the designer could implement the Single Read function in the first waveform, the Single Write function in the second waveform, the FIFO Read function in waveform #3 and the FIFO Write function in the last waveform. If the designer created these waveform functions, corresponding to the default waveform tab labels, the WFSELECT mapping would not need to be changed.

Export to GPIF.c file

The principal objective in defining a set of GPIF waveforms is to generate the waveform descriptors, as "C" language data structures for inclusion in a firmware project for the FX / FX2. Once the block diagram has been specified and the waveforms have been correctly defined using the waveform editors, GPIF Designer can generate correct "C" language data structures to be used in programming the device.
The generation of the data structures is accomplished via the Tools|Export to GPIF.c file menu item. When this menu item is invoked, the user will be prompted to specify a location and file name for the data structures. It is important to understand that the Export to GPIF.c file function completely over-writes the specified file with the waveform descriptor data. It does NOT merely append or insert the data structures into an existing file. For this reason, the user will usually want to specify a new file as the target of the Export operation.
Also note that it is not necessary to export the waveform descriptor data structures to the same directory as the GPIF Designer project file.
The file generated by the Tools|Export to GPIF.c file function contains many comments reflecting the original GPIF Designer project file from which the data structures were derived. These comments contain strings that reflect waveform tab labels and block diagram configurations such as CTL and RDY line labels. In order to generate a "*.c" file compatible with the older GPIF tool, many of these labels are truncated when exported to the "*.c" file. One should expect to lose some string information if attempting to import a file generated by the Tools|Export to GPIF.c file operation.
The primary vehicle for saving and loading GPIF waveform designs is the File menu. The Tools|Export/Import functions do not retain or recover all the information stored in a GPIF Designer (*.gpf) file.

Import older GPIF.c file

GPIF Designer is the second-generation of Cypress tools for defining GPIF waveform descriptors for the FX/FX2. Waveform descriptors generated by the previous tool can be read into GPIF Designer via the Tools|Import older EZ-USB FX GPIF.c file and Tools|Import older FX2 GPIF.c file menu items.
Because the file formats generated by the older tool differ for EZ-USB FX and FX2, separate import menu items are used to import the appropriate file types. Be sure to invoke the correct operation for the file type that is to be imported.
Note that, in order for the import functions to work, the target file must be in a format compatible with the old tool. If the file has been manually modified so as to render its format incompatible with the older GPIF tool, the import functions will fail to import the file.