Initial check in

This commit is contained in:
2026-01-03 19:05:48 +01:00
commit 1254878a31
253 changed files with 30484 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
<html>
<head>
<title>You need a browser that supports frame to veiw this page.</title>
<meta name="GENERATOR" content="Namo WebEditor v5.0">
<meta name="description" content="Makes a banner frame in the top, menu frame in the left, and main frame in the right. Hyperlinks in the banner frame are targeted to the menu frame.">
</head>
<frameset rows="60, 89%" cols="1*" border="0">
<frame name="banner" scrolling="no" marginwidth="10" marginheight="14" namo_target_frame="contents" src="gpif_hlp/Caption.htm" noresize>
<frameset rows="1*" cols="200, 69%">
<frame name="Index" scrolling="auto" marginwidth="10" marginheight="14" namo_target_frame="detail" src="gpif_hlp/mainmenu.htm">
<frame name="detail" scrolling="auto" marginwidth="10" marginheight="14" src="gpif_hlp/Intro.htm">
</frameset>
<noframes>
<body bgcolor="white" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<p>You need a browser that supports frame to veiw this page.</p>
</body>
</noframes>
</frameset>
</html>
@@ -0,0 +1,27 @@
<html>
<head>
<title>Index</title>
<base target="contents"></head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<table cellpadding="0" cellspacing="0" width="100%" align="center">
<tr>
<td width="191">
<p align="center"><span style="font-size:12pt;"><font face="Verdana">&nbsp;</font></span></p>
</td>
<td width="473">
<p align="center"><strong><samp><font color="black" face="Verdana"><span style="font-size:12pt;">GPIF
User's
Guide</span></font></samp></strong></p>
</td>
<td width="164">
<p align="right"><strong><samp><font color="#0000CC" face="Verdana"><span style="font-size:12pt;"><img src="images/smalllogo.gif" width="95" height="30" border="0"></span></font></samp></strong></p>
</td>
</tr>
</table>
<hr>
<p>&nbsp;</p>
</body>
</html>
@@ -0,0 +1,144 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>GPIF</title>
<meta name="generator" content="BBEdit 6.0">
</head>
<body bgcolor="#FFFFFF">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td align="left" height="36">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="2" color="#000000"><B>FX2
</B></font><font face="Verdana,Arial" size="2" color="black"><B>Introduction/Overview</B></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b><br>&nbsp;</b></font>
</td>
</tr>
<tr>
<td align="left">
<p align="left"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">EZ-USB FX2 offers a highly flexible and configurable Full Speed and High Speed USB peripheral function that's designed
to achieve the maximum USB 2.0 High Speed bandwidth. FX2 accomplishes this through its auto-transfer and peripheral interface architecture.
The GPIF (General Programmable InterFace) engine is one of the vehicles for the auto-transfer architecture, and is used to gluelessly move data
between FX2, your external slave device, and the USB host. The following sections briefly touch upon the silicon architecture and implementation
of FX2, and will lay the groundwork for understanding GPIF concepts discussed later on.<br></font>
<p align="left"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">&nbsp;</font></p>
</td>
</tr>
<tr>
<td align="left">
<font face="verdana, arial, helvetica, sans-serif" size="2" color="#000000"><B>Why an Auto-Transfer Architecture?<br></B>&nbsp;</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">In order to achieve the maximum USB 2.0 High Speed bandwidth, it was proven that the CPU (in this case an enhanced 8051 core)
should never be directly involved in moving the payload data from the external slave device to the USB host (and vice versa). The CPU would clearly be
the largest bottleneck in a High Speed design. So instead an Auto-Transfer mode was invented, whereby the payload data is &quot;auto-committed&quot; from the USB
host to the external slave device and likewise in the other direction. The GPIF engine uses this Auto-Transfer mode to move data to and from the external
slave device. Figures 1 and 2 show a system level view of the data flow for both the IN and OUT directions.<br><br>&nbsp;</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="center">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><img src="images/dataout1.gif" width="524" height="130" align="center" border="0"><br>
Figure 1. System Level View of Data Flow in the <b>OUT</b> Direction<br>
<br>
<br>
</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="center">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><img src="images/datain1.gif" width="524" height="130" align="center" border="0"><br>
Figure 2. System Level View of Data Flow in the <b>IN</b> Direction</font>
<p>&nbsp;</p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">&nbsp;</font></p>
</td>
</tr>
<tr>
<td align="left">
<font face="verdana, arial, helvetica, sans-serif" size="2" color="#000000"><B>Silicon features that facilitate the Auto-Transfer Architecture<br></B>&nbsp;</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b>Endpoint FIFOs</b><br>
<br>In FX2 the USB endpoints share the same physical memory as the FIFO buffers. This is the very backbone of what allows
the Auto-Transfer mechanism to work. Anytime the USB host sends a packet of data the packet is stuffed into an available Endpoint FIFO buffer
(the multiple buffering schemes available allows FX2 to accept up to 4 packets before NAKing the host). The data packet is then ready to be
distributed to the external device. Conversely, a data packet read from the external device can be automatically made available to the USB host.
FX2 can be configured to allow the CPU to manually &quot;commit&quot; the data packets (called Manual Mode) or allow the data packets to be committed
automatically (called Auto Mode) to either the USB or peripheral domain. Figures 3 and 4 show the maximum buffering scheme (4x) in relation to
the overall data path the data packets follow.<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="center">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><br>
<img src="images/atout.gif" width="550" height="130" align="center" border="0"><br>
Figure 3. Auto-Transfer Dataflow in the <b>OUT</b> direction<br>
</font> <p><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><br><br>&nbsp;</font></p>
</td>
</tr>
<tr>
<td align="left">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><img src="images/atin.gif" width="550" height="130" align="center" border="0"><br>
Figure 4. Auto-Transfer Dataflow in the <b>IN</b> direction<br></font> <p align="center">&nbsp;</p>
</td>
</tr>
<tr>
<td align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b>The CPU is the Traffic Cop<br><br></b>The CPU in FX2 has a minor role in the Auto-Transfer architecture as it does not participate in moving the payload data,
but it does play a very important role nonetheless. The CPU configures and defines how the physical interface operates, sets up the endpoint
configurations, triggers GPIF transfers, and can be allowed to manually commit the data packets to either the USB or peripheral domain. It
can also monitor the status of the external world, thus giving it the capability of regulating GPIF transfers.<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr>
<td align="left">
<p>&nbsp;</p>
</td>
</tr>
</table>
</font>
</body>
@@ -0,0 +1,432 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>GPIF</title>
<meta name="generator" content="BBEdit 6.0">
<script language="Javascript">
<!--
function changeFX2(html)
{
descriptionFX2.innerHTML=html
}
function changeGPIF(html)
{
descriptionGPIF.innerHTML='<font face="Verdana" size="1">'+html+'</font>'
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td align="center">
<font face="Verdana" size="2"><b><a name="Overview"></a>GPIF Overview</b></font><font face="Verdana" size="1"><b><br>&nbsp;</b></font>
</td>
</tr>
<tr valign="top">
<td align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">This section introduces the GPIF feature from a hardware standpoint and discusses how to design with GPIF from the ground up.
As the name suggests, the physical connection or interface to the external peripheral is highly configurable. This allows FX2 to become the solution
for 99.9 percent of the parallel interfaces that exist. With the ability to run the physical interface at a maximum rate of 48MHz in 16-bit mode, the
bottleneck in a USB 2.0 system should never be the actual GPIF interconnect itself. One of the objectives of this primer is to guide users down a path
to get the most out of their GPIF designs in terms of performance over the physical interface. Thus, the general thought process for implementing
successful GPIF designs is also discussed, allowing the user to understand and use a design flow methodology for current and future GPIF
implementations. Debugging strategies are provided in Appendix A to guide the user on what the best approaches are for tackling GPIF design problems.<br>
<br>The GPIF (General Programmable InterFace) is a key feature of FX2 used to master an external peripheral without any external
glue logic. The GPIF is basically a controllable state machine that allows the user to generate waveforms required by external peripheral read/write
cycle timing. The CPU's role is minimal; as it basically only has to load the micro code that defines the waveform behaviors into designated FX2 on-chip
RAM space, and manages how they are executed in the application firmware.<br>
&nbsp;</font>
</td>
</tr>
<tr>
<td align="left">
<p>&nbsp;</p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="verdana, arial, helvetica, sans-serif" size="2" color="#000000"><B><a name="Physical"></a>Physical Interconnect</B><br></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><br>
The GPIF has an interconnect which features a configurable 8- or 16-bit data bus, control outputs, and ready inputs.
Figure 5 shows what signals are available to users when they are trying to figure out how to &quot;connect the dots&quot; to their external peripheral.<br>
</font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="center">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><br> <img src="images/connect.gif" align="center" width="460" height="220" border="0" ismap usemap="#ic_map"><br>
Figure 5. GPIF Interconnect Diagram</font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left" height="18">
<p><font face="Verdana" size="1"><b>IFCLK (bi-directional)</b><br>IFCLK
can be either an input or output signal and is determined by what
the system requirements are. As an output signal, IFCLK can be driven
by the FX2 at either 30 MHz or 48 MHz. As an input signal, its range
is from 5-48MHz. If an external IFCLK is used in the design, it
becomes the reference clock for all GPIF operations. Note that the
GPIF can also run on an internal 30 or 48 MHz clock.<br>&nbsp;</font></p>
</td>
</tr>
<tr>
<td colspan="1" align="left" height="18">
<p><font size="1" face="Verdana"><b>GPIFADR[8:0] (output only)</b><br>GPIF
can use GPIFADR[8:0] to provide address lines for peripherals that
need them. These are output only signals and the value presented
on this bus can be auto-incremented.<br>&nbsp;</font></p>
</td>
</tr>
<tr>
<td colspan="1" align="left" height="18">
<p><font size="1" face="Verdana"><b>FD[15:0] (bi-directional)</b><br>This
is the data bus used by GPIF operations and is the conduit for payload
data transferred between FX2 and the external peripheral. It can
be configured to operate as an 8- or 16-bit interface and can be
tri-stated if the system requires it. FD[7:0] represents the least
significant byte (LSB) and FD[15:8] represents the most significant
byte (MSB).<br>&nbsp;</font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left" height="18">
<p><font size="1" face="Verdana"><b>CTL[5:0] (output only)</b><br>These
are control output signals that can be used to provide signals required
by the external peripheral such as read/write strobes, enables,
etc.<br>&nbsp;</font></p>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<p><font size="1" face="Verdana"><b>RDY[5:0] (input only)</b><br>These
are ready input signals that can be used to monitor status outputs
from the external peripheral such as FIFO status flags, data available,
etc. GPIF has the ability to use these signals as decision point
qualifiers for wait-state generation.<br>&nbsp;</font></p>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<p><font face="Verdana" size="1"><b>GSTATE[2:0] (output only)</b><br>These
are debug output signals that represent the states executed in a
GPIF waveform. These are typically connected to a debug port such
as a logic analyzer.<br></font></p>
<p><font face="Verdana" size="1">&nbsp;</font></p>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<font face="verdana, arial, helvetica, sans-serif" size="2" color="#000000"><B><a name="ADFM"></a>Application Design Flow Methodology (ADFM)</B></font>&nbsp; </td>
</tr>
<tr>
<td colspan="1" align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">The following section presents a design flow methodology for GPIF developers wishing to maximize their &quot;first time success&quot;
experience. Although following this methodology may not completely guarantee a 100 per cent success rate, it will definitely give developers the
right tools for embarking on a systematic GPIF design approach, which more often than not translates into eventual success. The design examples
that are discussed later on in this primer will often refer back to these design principles.<br>
</font><font face="Verdana" size="1"><br>&nbsp;</font> </td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b><a name="Interconnect"></a>Design GPIF Interconnect</b><br></font>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Using section 3.2, you should have a pretty good basis for determining how FX2 is going to be connected up to your peripheral
device using GPIF. This is also a good time to start collecting the FX2 datasheet and Technical Reference Manual, as well as the peripheral's datasheet
as a minimum. You can then start by asking yourself the following questions:<br></font>
</ul>
<blockquote>
<ul>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Is the data path going to be 8- or 16-bit?</font>
<ul>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">This decision is often dictated by what size data path the peripheral offers. If it has a 16-bit data path, use it to maximize the bandwidth over the physical interface.</font>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Endianness and bit nomenclature may also come into play here so watch how those lines are wired.</font>
</ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><br></font>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Will an external IFCLK be used or an internal 30 or 48 MHz clock source?</font>
<ul>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">This decision is often made based on how flexible the peripheral is in terms of its own operating modes. For example, if it can accept a 30 or 48
MHz clock input then there's a good chance the internal 30 or 48 MHz clock source can be used to serve as the clock input for the slave device.</font><font face="Verdana" size="1"><br>&nbsp;</font><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Does the peripheral require any address lines during its read/write cycles?</font>
</ul>
<ul>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">If the peripheral requires any lines to be addressed during a read/write cycle operation, then GPIFADR[8:0] can be used.</font>
</ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><br></font>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">How many control lines does the peripheral need?</font>
<ul>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Designate GPIF control outputs from your choice of CTL[5:0]. The peripheral may require read/write signals, chip selects, among other control
inputs during a read/write cycle. Determine what they are and allocate CTL[5:0] appropriately.</font>
</ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><br></font>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">How many inputs does the GPIF need to monitor from the peripheral?</font>
<ul>
<li><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Determining how many status signals need to be monitored during a read/write cycle usually makes this decision. Determine what they are and allocate RDY[5:0] appropriately.<br>&nbsp;</font>
</ul>
</ul>
</blockquote>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Note: Not all FX2 package types have the complete set of GPIF signals available so the designer has to be mindful of this when determining the GPIF
interconnect. The designer also needs to consider what other signals may be used (such as port I/O) to interface the FX2 to the peripheral (e.g. reset
signals, other address lines, etc.). For instance, the 56-pin package type does not bring out GPIFADR[8:0]. Therefore, if the peripheral needs some sort
of address scheme before a GPIF read/write cycle is initiated, port I/O pins must be used instead (See TI-DSP example for more details).<br>
<br>&nbsp;</font></p>
</ul>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b><a name="FW"></a>Use Firmware Frameworks</b></font><font face="Verdana" size="1">&nbsp;</font>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Before embarking on any firmware project, let alone a GPIF one, it is recommended to start with a firmware frameworks based Keil
uVision2 project. Not only will this ensure that the integration and test phase will be smoother, it will also help USB applications support know that
you're starting from a well-known and well-tested firmware base. Any of our firmware examples will be frameworks based so you can start with one of
those, or start by copying the contents of C:\Cypress\Usb\Target\Fw\FX2 to a new sub-directory. This will allow you to start with a &quot;clean&quot; firmware
base. Starting with a firmware frameworks project also allows you to concentrate on the user application code as the USB protocol servicing has been
handled already (see the file called fw.c and the development kit documentation for more details).<br>&nbsp;
</font></p>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">There are basically two major portions to a complete GPIF applications solution:</font>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">a)
The higher-level firmware that configures the GPIF and launches the transfers (including the rest of the user application code).
&nbsp;<br><br>b) The GPIF waveform descriptors that implement the physical bus timing.<br><br>Part a) normally consists of five main files (fw.c, periph.c (user can rename this file), dscr.a51, ezusb.lib, usbjmptb.obj) which makes up the Keil
uVision 2 firmware frameworks project. <br><br>Part b) is typically a self-contained source file that contains the GPIF waveform descriptors and is added to the
Keil project. The GPIF Designer a user mode application supplied with the development kit software, exports
this &quot;C&quot; language source file.<br>
</font><font face="Verdana" size="1">&nbsp;</font></p>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left" height="11">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b><a name="Wvform Descriptors"></a>Implement GPIF Waveforms Descriptors using GPIF Designer</b><br></font>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<p><font face="Verdana" size="1"><br></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">As mentioned above, GPIF Designer generates the GPIF waveform descriptors that implement the physical bus timing. &nbsp;&nbsp; GPIF Designer
can implement any of four waveform types: Single Write, Single Read, FIFO Write, and FIFO Read. Each descriptor is 32 bytes long and resides in a
special GPIF waveform descriptor area in on-chip memory space, once loaded by the CPU.<br><br>It is ultimately the developer's responsibility to create these GPIF waveform descriptors that will, in turn, trigger single or FIFO read/write transactions
to the peripheral. The developer has seven states or intervals (S0-S6) to work with before having to terminate the transaction naturally by branching to a
&quot;special&quot; IDLE state (S7) (Figure 6 shows an example of a simple waveform broken down into the GPIF state transitions). Once the GPIF waveforms are ready
to be exercised by the CPU, the reading or writing of specific GPIF &quot;trigger&quot; registers determine at any one time which of the four waveform types get
executed by the GPIF engine.<br>
</font></p>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<p><br>&nbsp;<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><img src="images/waveform.gif" align="center" width="480" height="175" border="0"><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Figure 6. Illustrating a simple waveform broken down into GPIF states<br>&nbsp;
</font></p>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">The usage details of the GPIF Designer
tool will become clear in the discussion of the two design examples. It is important to note at
this point that the first set of waveforms the user should implement is the single read/write transaction waveforms. This will allow the user to flesh-out the physical interconnect and get data moving back and forth between the USB host, FX2, the peripheral, and back. It's always wise to start by
implementing single read/write waveforms before leaping into the more conceptually difficult FIFO read/write transactions, because getting comfortable
with GPIF and that first confidence booster is essential to a successful design. It may sound like starting with single transactions is a waste of time,
but taking the time to absorb the learning curve up front will pay large dividends in the end.<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b><a name="SingleRd/Wr"></a>Implement Single Read/Write transactions</b></font>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">The main goal of implementing single read/write transactions is to be able to confirm that the physical interconnect is sound
between GPIF and the peripheral, and that basic data movement can be achieved in the final system. It is possible to get an entire design working even
if only single transactions are utilized. Another advantage of performing this stage first in the GPIF development cycle is that all areas of the system
(hardware, firmware, software) can be verified within a relatively short period of time (compared to jumping into FIFO transactions first). Especially
for first time users learning about the GPIF, this is a heavily recommended development stage to go through.
&nbsp;<br><br>Even though single transactions are the easiest of GPIF waveforms to implement, it may take several iterations of integration
and test of the GAS project before the user is happy with the initial design, since this stage can be also considered as the &quot;fleshing out&quot; stage. There
may be hardware-timing issues that pop up, hardware connection issues, firmware code flow issues, driver issues, etc., but this is the right time to
become aware of these types of issues in order not to get burned too much later on if a problem arises.<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b><a name="FIFORd/Wr"></a>Implement FIFO Read/Write Transactions</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">Once the user is satisfied with the single transaction implementation, the next logical step is to implement GPIF FIFO
Read/Write transactions to achieve higher bandwidth numbers. This development stage is a two-phase process in itself because it is highly recommended
that the FIFO Write waveforms be implemented and tested first. FIFO Write transactions are always the easier to implement out of the two types. The
user can perform a FIFO Write transaction and verify the integrity of the data on the peripheral side, and if the data looks good then implementing
FIFO Reads is the next step. This is an important accomplishment because it will rule out the FIFO Write code as the culprit if problems arise with
the FIFO Read waveform. Otherwise, you will never know which side is truly at fault if each operation is not implemented and tested independently.<br><br>At
this development stage, there may be also several iterations of integration and test before the user is happy with the
overall performance of the design. Issues such as meeting setup and hold time arise, especially for synchronous applications where the main reference
for GPIF operations becomes the external IFCLK or the internal 30/48MHz clock source.<br>
<br>
</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b>Optimize if Necessary</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">In generating the GPIF waveforms, the user may initially decide to be generous with the physical bus timing. So, there may
be room for improvement to cut down the cycle time for each GPIF transaction and still meet the timing parameters required by the peripheral. The
design may also be revised to improve firmware code efficiency and overall firmware code flow at this stage.<br>
<br>
</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"><b>Summary</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">This section has discussed a GPIF application development flow that uses a systematic approach to help ensure a successful GPIF
design the first time around. Although it has been touched on at somewhat of a macro level, it gives the user a good feel for the amount of effort
involved and an approach to tackle a GPIF design from start to finish, no matter the skill level possessed. Figure 7 summarizes this section in an
ADFM Flow Diagram. The sections ahead discuss the two design examples that will dive into the hardware, firmware, and software necessary to implement
them.<br>
<br>
</font>
</ul>
</td>
</tr>
<tr>
<td colspan="1" align="left">
<p>&nbsp;</p>
</td>
</tr>
</table>
</body>
</html>
@@ -0,0 +1,48 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>GPIF</title>
<meta name="generator" content="BBEdit 6.0">
<script language="Javascript">
<!--
function changeFX2(html)
{
descriptionFX2.innerHTML=html
}
function changeGPIF(html)
{
descriptionGPIF.innerHTML='<font face="Verdana" size="1">'+html+'</font>'
}
//-->
</script>
</head>
<body bgcolor="white">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td align="center">
<p><b><font face="Verdana" size="2">Introduction</font><font face="Verdana" size="1"><br>&nbsp;</font></b></p>
</td>
</tr>
<tr valign="top">
<td align="center">
<p align="left">
<font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">To achieve the maximum sustained throughput in USB 2.0 High Speed designs, the physical interconnect should never be the primary bottleneck
in the system. EZ-USB FX2's GPIF (General Programmable InterFace) provides a highly configurable and flexible glueless peripheral interface
that allows the highest possible bandwidth to be achieved over the physical layer. However, along with this flexibility comes added complexity,
and so starting on the right foot has never been more important. To help you get started on your own GPIF designs, this online guide sheds some light
on the architecture and implementation of the FX2 GPIF, discusses application usage models, and debugging strategies. Two end-to-end examples (</font><A href="../../fifo/app_note.htm" target="_top"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">FIFO</font></A><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000"> and </font><A href="../../dsp/app_note.htm" target="_top"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">DSP</font></A><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">) are
also provided to reinforce GPIF concepts and provide users with concrete design examples. For the best learning experience, use this online guide in
conjunction with the </font><A target="resource window"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">FX2 Technical Reference Manual</font></A><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000000">.<br><br>&nbsp;</font>
</td>
</tr>
</table>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,21 @@
<html>
<head>
<title>Contents</title>
<base target="detail"></head>
<body bgcolor="#CCCCCC" text="black" link="blue" vlink="purple" alink="red">
<p align="left"><b><font face="Verdana" size="1"><a href="Intro.htm">Introduction</a></font></b></p>
<p align="left"><font face="Verdana" size="1"><b><a href="FX2UG.htm">FX2 Overview</a></b></font></p>
<p align="left"><font face="Verdana" size="1"><b><a href="GenGPIF.htm#Overview">GPIF
Overview</a><br> </b>&nbsp;&nbsp;&nbsp;<a href="GenGPIF.htm#Physical">Physical
Interconnect</a><br>&nbsp;&nbsp;&nbsp;<a href="GenGPIF.htm#ADFM">Design
Flow Methodology</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="GenGPIF.htm#Interconnect">Design
GPIF Interconnect</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="GenGPIF.htm#FW">Use
Firmware Frameworks</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="GenGPIF.htm#Wvform Descriptors">Design GPIF Waveforms</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="GenGPIF.htm#SingleRd/Wr">Implement
Single Rd/Wr</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="GenGPIF.htm#FIFORd/Wr">Implement
FIFO Rd/Wr</a><br></font></p>
</body>
</html>
+21
View File
@@ -0,0 +1,21 @@
<html>
<head>
<title>You need a browser that supports frame to veiw this page.</title>
<meta name="GENERATOR" content="Namo WebEditor v5.0">
<meta name="description" content="Makes a banner frame in the top, menu frame in the left, and main frame in the right. Hyperlinks in the banner frame are targeted to the menu frame.">
</head>
<frameset rows="60, 89%" cols="1*" border="0">
<frame name="banner" scrolling="no" marginwidth="10" marginheight="14" namo_target_frame="contents" src="main_hlp/Caption.htm">
<frameset rows="1*" cols="200, 80%">
<frame name="contents" scrolling="auto" marginwidth="10" marginheight="14" namo_target_frame="detail" src="main_hlp/mainmenu.htm">
<frame name="detail" scrolling="yes" marginwidth="10" marginheight="14" src="main_hlp/Overview.htm">
</frameset>
<noframes>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<p>You need a browser that supports frame to veiw this page.</p>
</body>
</noframes>
</frameset>
</html>
+1
View File
@@ -0,0 +1 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
@@ -0,0 +1,317 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Block Diagram</title>
<meta name="generator" content="BBEdit 6.0">
<script language="JavaScript">
<!--
function na_preload_img()
{
var img_list = na_preload_img.arguments;
if (document.preloadlist == null)
document.preloadlist = new Array();
var top = document.preloadlist.length;
for (var i=0; i < img_list.length; i++) {
document.preloadlist[top+i] = new Image;
document.preloadlist[top+i].src = img_list[i+1];
}
}
function na_change_img_src(name, nsdoc, rpath, preload)
{
var img = eval((navigator.appName.indexOf('Netscape', 0) != -1) ? nsdoc+'.'+name : 'document.all.'+name);
if (name == '')
return;
if (img) {
img.altsrc = img.src;
img.src = rpath;
}
}
function na_restore_img_src(name, nsdoc)
{
var img = eval((navigator.appName.indexOf('Netscape', 0) != -1) ? nsdoc+'.'+name : 'document.all.'+name);
if (name == '')
return;
if (img && img.altsrc) {
img.src = img.altsrc;
img.altsrc = null;
}
}
// -->
</script>
</head>
<body bgcolor="white" OnLoad="na_preload_img(false, 'images/ChipSel.gif');">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td colspan="1" align="left">
<p align="center"><font face="Verdana,Arial" size="2" color="black"><b><a name="BlockDiagram"></a>Block
Diagram&nbsp;</b></font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="Verdana,Arial" size="1" color="black"><br>The
first tab page presents a block diagram representing the logical
connection&nbsp;of the FX/FX2 to an attached slave device.&nbsp;The
configuration of this diagram controls the parameters available
during creation of the four waveform descriptors (on the next&nbsp;4
tab pages).<br><br></font>
<p align="center"><img src="images/BlkDiag.gif" width="432" height="327" border="0"></p>
<p align="left"><font face="Verdana,Arial" size="1" color="black"><br>For
instance, the number of CTL lines available when creating a waveform
is configured using the block diagram. <br><br>Only one block diagram
is saved in any GPIF Designer project file (*.GPF).<br><br>Once
waveforms have been designed, changing the block diagram may give
rise to undesired changes in&nbsp;the waveforms. &nbsp;For this
reason, it is highly recommended that <b>the first step</b> in designing
GPIF&nbsp;waveforms be the <b>proper configuration of the Block
Diagram</b>.<br><br></font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="Verdana,Arial" size="1" color="black"><b><a name="Chip"></a>Chip
Selection</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="Verdana,Arial" size="1" color="black">The
first step in configuration of the block diagram should be to
designate the Cypress FX/FX2 chip and pin-package for which
you will be designing.</font>
<p><font face="Verdana,Arial" size="1" color="black">The large,
blue, left rectange represents the FX/FX2 chip. &nbsp;Right-click
in the main body of that rectangle to bring-up the chip-selection
dialog box.<br>
</font></p>
<p align="center"><a href="#" OnMouseOut="na_restore_img_src('image1', 'document')" OnMouseOver="na_change_img_src('image1', 'document', 'images/ChipSel.gif', true);"><font face="Verdana" size="1" color="black"><img src="images/ChipSel.gif" width="432" height="327" border="0" name="image1"></font></a></p>
<p><font face="Verdana,Arial" size="1" color="black">Changing
chips, after waveforms have already been configured, will not
erase those waveforms. &nbsp;However, because the available
CTL and RDY lines may have changed, those waveforms may no longer
represent what the designer had in mind. &nbsp;If you change
chips after having designed waveforms, you should re-visit each
waveform (paying special attention to STATUS and CTL Action
Points) to verify their correctness.<br>&nbsp;</font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="Verdana,Arial" size="1" color="black"><b><a name="Slave"></a>Slave
Labeling</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="Verdana,Arial" size="1" color="black">The
large, blue, right rectangle represents the device attached
to the FX/FX2 chip. &nbsp;The label of this device can be modified
by right-clicking in the main body of the rectangle.</font>
<p><font face="Verdana,Arial" size="1" color="black">The label
of the slave block has no impact whatever on the waveform generation.
&nbsp;It is provided as a matter of convenience only. &nbsp;The
label is saved, along with the block diagram, in GPIF Designer
project files (*.GPF).<br>&nbsp;</font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left" height="13">
<font face="Verdana,Arial" size="1" color="black"><b><a name="Clock"></a>Clock
Settings</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p align="left">
<font face="Verdana,Arial" size="1" color="black">Right-click
on the Clock display area of the block diagram to bring-up the
Clock Properties dialog box.</font>
<p align="center"><font face="Verdana,Arial" size="1" color="black"><br><img src="images/ConfigClk.gif" width="432" height="327" border="0">&nbsp;</font></p>
<p><font face="Verdana,Arial" size="1" color="black">The <b>Internal
/ External</b> radio buttons of the dialog control the setting
of the IFCLKSRC bit (b7) of the IFCONFIG register.</font></p>
<p><font face="Verdana,Arial" size="1" color="black">The <b>Invert
Clock</b> checkbox (FX2 only) controls the setting of the IFCLKPOL
bit (b4) of the IFCONFIG register.</font></p>
<p><font face="Verdana,Arial" size="1" color="black">The <b>IFCLK
Output</b> checkbox (FX2 only) controls the setting of the IFCLKOE
bit (b5) of the IFCONFIG register.</font></p>
<p><font face="Verdana,Arial" size="1" color="black">The <b>30MHz
/ 48MHz </b>radio buttons (only available if Internal clock
is selected) control the setting of the 3048MHZ bit (b6) of
the IFCONFIG register.</font></p>
<p align="center"><font face="Verdana,Arial" size="1" color="black"><img src="images/ConfigClk2.gif" width="432" height="327" border="0">&nbsp;</font></p>
<p><font face="Verdana,Arial" size="1" color="black">When
External Clock is selected, the <b>Clock Frequency</b> is only
used
to calculate the DeltaT displayed on the waveform editor tab
pages. &nbsp;This setting has no impact on the GPIF waveform
descriptor data that is exported to a GPIF.c file. &nbsp;Rather,
it is useful to correctly depict time intervals during waveform
editing.<br>&nbsp;</font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="Verdana,Arial" size="1" color="black"><b><a name="DataBus"></a>Data
Bus&nbsp;Selection</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="Verdana,Arial" size="1" color="black">The
second black data band, labelled Data [15:8], can be visually
enabled and disabled by right-clicking on that band.<br><br>This
setting has no impact on any of the rest of the program or on
the waveform descriptor data generated using the Tools | Export
function.<br>&nbsp;</font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="Verdana,Arial" size="1" color="black"><b><a name="ADRLines"></a>ADR
Line Configuration</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="Verdana,Arial" size="1" color="black">Right-click
on the group of ADR lines to bring-up the Config ADR Lines dialog
box. &nbsp;The dialog enables individual or group selection
of the address lines.<br><br>Like the Data Bus control, these
settings have no implact on the rest of the program or on the
waveform descriptor data generated by the Tools | Export function.
&nbsp;They serve only to provide a visual reminder of the actual
hardware application for which the waveform descriptors were
designed.<br>&nbsp;</font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="Verdana,Arial" size="1" color="black"><b><a name="RDYLines"></a>RDY
Line Configuration</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left" height="464">
<p>
<font face="Verdana,Arial" size="1" color="black">The
RDY lines are used in the definition of </font><a href="WavefmEditors.htm#Status_APs"><font face="Verdana,Arial" size="1" color="black">STATUS
Action Points</font></a><font face="Verdana,Arial" size="1" color="black">
(also known as Decision Points) in the waveform editors. &nbsp;The names
of the selected RDY lines are presented in the list of operands
for a decision point. &nbsp;So, the proper configuration of
the RDY lines is important.<br><br>To bring-up the Config RDY
Lines dialog, right click on any of the block diagram's RDY lines.</font>
<p align="center"><img src="images/ConfigRDY.gif" width="432" height="327" border="0"></p>
<p align="left"><font face="Verdana,Arial" size="1" color="black"><br><br>The
internal <b>FIFO Flag</b> is always available in the list of
operands for a decision point. &nbsp;This dialog only allows
you to change the name for this status line that will appear
in the operand list. &nbsp;[When defining a waveform decision
point, selection of the FIFO Flag operand will generate a value
of 6&nbsp;in the respective TERMA or TERMB&nbsp;fields of the
LOGIC FUNCTION&nbsp;register for the state instruction.]<br><br>The
<b>Internal RDY</b> line&nbsp;is always available in the list
of operands for a decision point. &nbsp;This dialog only allows
you to change the name for this status line that will appear
in the operand list. &nbsp;[When defining a waveform decision
point, selection of the Internal RDY operand will generate a
value of 7&nbsp;in the respective TERMA or TERMB&nbsp;fields
of the LOGIC FUNCTION&nbsp;register for the state instruction.]<br><br>The
<b>Init val of Internal RDY</b> radio buttons control the initial
value of the Internal RDY status line. &nbsp;[They designate
the initial value of the INTRDY bit (b7) of the GPIFREADYCFG
register.]<br><br>Check the <b>Sync RDY to IFCLK</b> box if
the RDY signals are synchronized to the internal clock signal.
&nbsp;[Checking this box causes the SAS bit (b6) of GPIFREADYCFG
to be set to 1.]<br><br>The transaction counter (TC) can be
substituted for RDY line #5. &nbsp;Check the <b>Subst TC for
RDY 5</b> checkbox to implement the substitution. &nbsp;When
this box is checked, RDY 5 becomes permanently available in
the list of decision point operands. &nbsp;When the <b>Subst
TC for RDY 5</b> box is checked, the program places a default
label of TCXpire for line #5. &nbsp;This label can be modified,
even though RDY line #5 cannot be de-selected. &nbsp;[Checking
this box sets the TCXRDY5 bit (b5) of the GPIFREADYCFG register
to 1.]<br><br>The <b>External Inputs</b> can all be individually
selected and labelled. &nbsp;Only the labels for selected lines
are presented in the list of operands for a decision point.
&nbsp;[When defining a waveform decision point, selection of
the External Input&nbsp;RDY lines as an operand will generate
a value between 0 and 5&nbsp;in the respective TERMA or TERMB&nbsp;fields
of the LOGIC FUNCTION&nbsp;register for the state instruction.]<br>&nbsp;</font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="Verdana,Arial" size="1" color="black"><b><a name="CTLLines"></a>CTL
Line Configuration</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="Verdana,Arial" size="1" color="black">To
configure the CTL lines, right click on any of the block diagram's CTL lines.</font>
<p align="center"><img src="images/ConfigCTL.gif" width="432" height="327" border="0"></p>
<p><font face="Verdana,Arial" size="1" color="black">The <b>Lines
Can Be Tri-Stated?</b> radio buttons significantly impact the
options available for CTL lines in both the block diagram and
the waveform editors. &nbsp;If the lines can be tri-stated,
a maximum of 4 CTL lines are available (3 for the 56-pin FX2).
&nbsp;Also, tri-stateable lines cannot be configured for Open-drain
output. [These Tri-Stated? radio buttons control the value of
the TRICTL bit (b7) of the GPIFCTLCFG register.]<br><br>Once
the <b>Lines Can Be Tri-Stated?</b> selection has been made,
the CTL lines to be used should be selected and labelled. &nbsp;Only
selected lines will be displayed and actionable in the waveform
editors.<br><br></font><a href="WavefmEditors.htm#CTRL_APs"><font face="Verdana,Arial" size="1" color="black">CTL Action Points</font></a><font face="Verdana,Arial" size="1" color="black"> placed on the waveforms
have 2 or 3 available actions, depending on whether or not the
lines have been configured as&nbsp;tri-stateable here.<br><br>If
the lines cannot be tri-stated, select the output (<b>CMOS vs
Open-drain</b>) for each line. &nbsp;[Bits 0-5 of GPIFCTLCFG
register are set to 1, for the respective CTL lines, if Open-drain
is selected. &nbsp;Selecting CMOS sets the respective bits to
0.]</font></p>
</td>
</tr>
</table>
<p><font face="Verdana" size="1" color="black">&nbsp;</font></p>
</font>
</body>
</html>
@@ -0,0 +1,25 @@
<html>
<head>
<title>Index</title>
<base target="contents"></head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<table cellpadding="0" cellspacing="0" width="100%" align="center">
<tr>
<td width="198">
<p align="center"><span style="font-size:12pt;"><font face="Verdana">&nbsp;</font></span></p>
</td>
<td width="441">
<p align="center"><strong><samp><font color="black" face="Verdana"><span style="font-size:12pt;">GPIF
Designer User's
Guide</span></font><font color="black" face="Verdana" size="1">&nbsp;</font></samp></strong></p>
</td>
<td width="189">
<p align="right"><strong><samp><font color="#0000CC" face="Verdana" size="1"><img src="images/smalllogo.gif" width="95" height="30" border="0">&nbsp;</font></samp></strong></p>
</td>
</tr>
</table>
<hr></body>
</html>
@@ -0,0 +1,275 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>GPIF</title>
<meta name="generator" content="BBEdit 6.0">
</head>
<body bgcolor="white">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td colspan="1" align="left">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="2" color="black"><b><a name="File"></a>File
Menu</b></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><br>&nbsp;</b></font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
File menu allows GPIF Designer projects to be loaded from and saved
to disk. &nbsp;It also provides a simple mechanism for starting
fresh, with a pristine, new project. &nbsp;Finally, some non-waveform-specific
project properties are also accessed&nbsp;from this menu.<br>
<br>
</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="New"></a>New</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
</font><font face="Verdana,Arial" size="1" color="black"><i>File|New
</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">menu
item erases all user-placed </font><a href="WavefmEditors.htm#ActionPoints"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">waveform
action points</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
and&nbsp;resets all block diagram settings to default values
for the selected chip.<br><br>Selection of </font><font face="Verdana,Arial" size="1" color="black"><i>File|New</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
will bring-up the </font><a href="BlockDiagram.htm#Chip"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Chip
Selection</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog box. &nbsp;The selection of a chip is needed in order
to determine default values for the new block diagram.<br><br>The
</font><font face="Verdana,Arial" size="1" color="black"><i>File|New</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
item severs any attachment to a GPIF Designer project file.
&nbsp;So, the </font><font face="Verdana,Arial" size="1" color="black"><i>File|Save</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
operation is temporarily disabled until the new project has
been saved using the </font><font face="Verdana,Arial" size="1" color="black"><i>File|Save
As . . .</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu item.<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="Open"></a>Open</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="Verdana,Arial" size="1" color="black"><i>File|Open</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
has the expected functionality of allowing the user to select
a previously saved GPIF Designer project file.<br><br>When the
program launches, the default directory for &nbsp;</font><font face="Verdana,Arial" size="1" color="black"><i>File|Open</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
is set to the directory in which GPIF Designer exectable file
is located. &nbsp;When a Designer project file (.gpf) has been
opened, the starting directory for </font><font face="Verdana,Arial" size="1" color="black"><i>File|Open</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
is set to the directory of&nbsp;the current project file.<br><br>One important side effect
of </font><font face="Verdana,Arial" size="1" color="black"><i>File|Open</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"> is that, if GPIF
Designer finds a file named &quot;app_note.htm&quot; in the
directory from which the project file is loaded, that file will
be accessible from the </font><a href="HelpMenu.htm#Project"><font face="Verdana,Arial" size="1" color="black"><i>This
Project</i></font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
item of the Help menu.<br><br>The name and path of the currently
open (i.e. active) project file is displayed in the caption
of the GPIF Designer main window.<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="Save"></a>Save</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="Verdana,Arial" size="1" color="black"><i>File|Save</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
writes all the block diagram and waveform information to the
currently active&nbsp;GPIF Designer project file. &nbsp;The
waveforms of all enabled </font><a href="ToolsMenu.htm#SelectBank"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">banks</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
are saved.<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="SaveAs"></a>Save
As</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="Verdana,Arial" size="1" color="black"><i>File|Save
As</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
prompts for a name and location of the new GPIF Designer project
file in which to save all the block diagram and waveform information.
&nbsp;After saving the data, the new file becomes the currently
open (i.e. active) project file.<br><br>GPIF Designer project
files should have the suffix .gpf.&nbsp; <br>
</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="Properties"></a>Properties</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
</font><font face="Verdana,Arial" size="1" color="black"><i>File|Properties</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu item brings-up the Properties dialog box shown below.<br></font>
<p align="center"><img src="images/FileProps.gif" width="432" height="327" border="0"></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br>The
</font><font face="Verdana,Arial" size="1" color="black"><i>Show
vertical grid on waveform diagrams</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
checkbox allows modification of&nbsp;the waveform appearance
to show or hide the vertical grid lines. &nbsp;Below is an example
of a waveform without the grid lines. &nbsp;</font></p>
<p align="center"><img src="images/NoGrid.gif" width="432" height="327" border="0"></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">By
default, the vertical grid lines are turned-on when </font><font face="Verdana,Arial" size="1" color="black"><i>File|New</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
is invoked.&nbsp;&nbsp;This setting is saved along with all
other parameters to the GPIF Designer project files (*.gpf)
when the </font><font face="Verdana,Arial" size="1" color="black"><i>File|Save</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
or </font><font face="Verdana,Arial" size="1" color="black"><i>File|Save
As</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
operations are performed. &nbsp;<br><br></font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p><font face="Verdana,Arial" size="1" color="black"><b><a name="DebugOutput"></a></b></font><font face="Verdana" size="1" color="black"><b>Debug
Output</b></font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
</font><font face="Verdana,Arial" size="1" color="black"><i>Enable
GPIF Debug Output on PE[2:0]</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
checkbox controls the value of the GSTATE bit (b2) of the IFCONFIG
register. &nbsp;Check this box in order to read the values of
GSTATE bits [2:0]&nbsp;on lines&nbsp;[2:0] of port E.<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p><font face="Verdana,Arial" size="1" color="black"><b><a name="EnableBanks"></a>Waveform
Banks Enabled</b></font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">GPIF
Designer is able to manage up to 8 sets (i.e. banks) of waveform
descriptors. &nbsp;Each bank&nbsp;consists of 4 waveform descriptors,
which are displayed on the 4 waveform editor tab pages. &nbsp;At
any one time, only one bank of waveform descriptors is displayed.
&nbsp;However, the displayed bank of descriptors can be switched
via the </font><a href="ToolsMenu.htm#SelectBank"><i><font face="Verdana,Arial" size="1" color="black">Tools|Select
Waveform Bank</font></i></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu item.<br><br>The number of waveform banks available is
configured using the </font><font face="Verdana,Arial" size="1" color="black"><i>Waveform
Banks Enabled</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
field of the </font><font face="Verdana,Arial" size="1" color="black"><i>File|Properties</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog box. &nbsp;<br></font></p>
<p align="center"><img src="images/FileProps.gif" width="432" height="327" border="0"></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">When the
</font><font face="Verdana,Arial" size="1" color="black"><i>Tools|Export
to GPIF.c</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
file menu item is invoked, waveform
descriptor data structures are exported for all enabled banks. &nbsp;If
more than 1 bank is enabled, the resulting &quot;*.c&quot; file will
be larger
and more complex.<br><br>It is more common to use the multiple
banks to store variations of similar waveforms, for training purposes,
than to actually generate multiple waveform descriptor data
structures in an exported .c file.<br><br>By default, only 1
waveform bank is enabled when </font><font face="Verdana,Arial" size="1" color="black"><i>File|New</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
is invoked.</font></p>
</ul>
</td>
</tr>
</table>
<p>&nbsp;</p>
</font>
</body>
</html>
@@ -0,0 +1,115 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>GPIF</title>
<meta name="generator" content="BBEdit 6.0">
</head>
<body bgcolor="white" text="#000099">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td colspan="1" align="left">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="2" color="black"><b><a name="Help"></a>Help
Menu</b></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><br></b>&nbsp;</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Cypress
GPIF Designer help menu provides access to on-line documentation
for the Designer tool&nbsp;itself, for Cypress-provided GPIF Designer&nbsp;application
files, and for the FX and FX2 GPIFs, generally.<br>
<br>
<br>
</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b>This
<a name="Tool"></a>Tool</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Accesses
the GPIF Designer User's Guide that you are now reading.<br>
<br>
<br>
</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b>This
<a name="Project"></a>Project</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">This
menu item opens a project-specific application note. &nbsp;The program
displays&nbsp;a file called &quot;app_note.htm&quot; from&nbsp;the
directory from which the currently open&nbsp;GPIF Designer project
file was loaded.
<br>
<br>
</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b>General
<a name="GPIF"></a>GPIF</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left" height="36">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">This
menu item opens an on-line GPIF Primer document, providing technical
information about the FX / FX2 GPIF.<br>
</font>
<p> <font color="black">&nbsp;</font></p>
</ul>
</td>
</tr>
</table>
</font>
</body>
</html>
@@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Overview</title>
<meta name="generator" content="BBEdit 6.0">
</head>
<body bgcolor="white">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td colspan="1" align="left">
<p align="center"><font face="Verdana,Arial" size="2" color="black"><b>Overview<br>&nbsp;</b></font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left" height="111">
<p>
<font face="Verdana,Arial" size="1" color="black">Cypress
GPIF Designer allows the user to create and modify GPIF waveform descriptors for the EZ-USB FX and FX2 chips using a graphical user interface.<br>
<br>
The main window consists of 5 tab pages. The first page
presents a block diagram representing the logical connection of
the the FX/FX2 to&nbsp;an associated slave device. <br><br>Each
of the remaining four pages contains a waveform editor. &nbsp;These
editors enable the&nbsp;creation of 4 distinct GPIF state machines
or &quot;waveforms&quot;.<br><br>As a general rule, existing settings
can usually be modified by right-clicking the mouse on the region
where the setting is displayed. &nbsp;This applies to both the block
diagram and the waveforms.<br><br>Waveforms are modified by placing,
moving or modifying Action Points on various waveform Bands. &nbsp;Use
the left mouse button to place or drag action points. &nbsp;Use
the right mouse button to modify an existing action point.<br>
<br>&nbsp;</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="Verdana,Arial" size="1" color="black"><b>Additional
Information</b></font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="Verdana,Arial" size="1" color="black">An
extensive discussion of general GPIF functionality and programming
is distributed as a </font><a href="../gpif_hlp.htm" target="_parent"><font face="Verdana,Arial" size="1" color="black">General
GPIF User's Guide</font></a><font face="Verdana,Arial" size="1" color="black">,
accessible from the main Help menu.<br><br>PDF (Adobe Acrobat) files
of a <i>GPIF Primer</i> as well as the <i>FX and FX2 Technical Reference
Manuals</i> are located in the <i>PDFs</i> sub-directory within&nbsp;GPIF
Designer install directory.<br><br>Also, design examples
provided by Cypress include on-line application notes for those
examples. &nbsp;Those notes are automatically loaded when the project's
*.gpf file is opened. &nbsp;(See the </font><a href="HelpMenu.htm#Help"><font face="Verdana,Arial" size="1" color="black">Help</font></a><font face="Verdana,Arial" size="1" color="black">
section of this User's Guide for more information.)<br><br>
</font>
</td>
</tr>
</table>
</font>
</body>
</html>
@@ -0,0 +1,240 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>GPIF</title>
<meta name="generator" content="BBEdit 6.0">
</head>
<body bgcolor="white">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td colspan="1" align="left" height="13">
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="2" color="black"><b><a name="Tools"></a>Tools
Menu</b></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><br>&nbsp;</b></font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Several
essential, but unrelated, functions are presented under the Tools
menu. &nbsp;These operations allow, among other things, the exporting
of of defined waveforms to &quot;C&quot; programming language data
structures. &nbsp;Also, waveforms defined using Cypress' older GPIF
tool can be imported into </font><font face="Verdana,Arial" size="1" color="black"><i>GPIF
Designer</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
from the </font><font face="Verdana,Arial" size="1" color="black"><i>Tools</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu.<br>
<br>
</font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="SelectBank"></a>Select
Waveform Bank</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">GPIF
Designer is able to manage up to 8 sets (i.e. banks) of waveform
descriptors. &nbsp;Each bank&nbsp;consists of 4 waveform descriptors,
which are displayed on the 4 waveform editor tab pages. &nbsp;At
any one time, only one bank of waveform descriptors is displayed.
&nbsp;However, the displayed bank of descriptors can be switched
via the </font><i><font face="Verdana,Arial" size="1" color="black">Tools|Select
Waveform Bank</font></i><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu item.<br></font></p>
<p align="center"><font color="black"><img src="images/Bank6.gif" width="432" height="327" border="0"></font></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
bank number of the currently active&nbsp;waveform bank is displayed
at the bottom of each waveform editor tab page, as shown above.<br><br>By
default, only a single waveform bank is enabled. &nbsp;To </font><a href="FileMenu.htm#EnableBanks"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">enable
additional banks</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">,
use the </font><font face="Verdana,Arial" size="1" color="black"><i>File|Properties</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu.<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="MapWFSELECT"></a>Map
Waveforms to WFSELECT</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Each
of the 4 waveforms can be configured to perform any arbitrary
function (single/fifo read or write). &nbsp;That is, there is
no constraint on what function must be implemented on any given
waveform tab page. &nbsp;For instance, after performing a </font><font face="Verdana,Arial" size="1" color="black"><i>File|New</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
operation, the 4 waveform tabs are&nbsp;labelled, successively
as </font><font face="Verdana,Arial" size="1" color="black"><i>Single
Read, Single Write, Fifo Read,</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
and </font><font face="Verdana,Arial" size="1" color="black"><i>Fifo
Write,</i> as shown below<i>.</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">&nbsp;&nbsp;(After
a </font><font face="Verdana,Arial" size="1" color="black"><i>File|New</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
operation, there are no waveforms defined. &nbsp;So, the labelling
of the tabs is completely arbitrary.)<br></font>
<p align="center"><font color="black"><img src="images/NewFile.gif" width="432" height="327" border="0"></font></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br><br>In
the Fifo design example, shown below, the first waveform tab
has been used to define a FIFORd operation. &nbsp;The second
waveform has been used to define a FIFOWr operation. &nbsp;The
3rd and 4th waveforms are unused.<br></font></p>
<p align="center"><font color="black"><img src="images/FIFO.gif" width="432" height="327" border="0"></font></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br><br>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. &nbsp;<br><br>This
mapping is defined in the GPIF register, WFSELECT, and is configured
via the </font><font face="Verdana,Arial" size="1" color="black"><i>Tools|Map
Waveforms to WFSELECT . . .</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu item. &nbsp;The </font><font face="Verdana,Arial" size="1" color="black"><i>Map
Waveforms to WFSELECT</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog box is shown below, with the configuration of the FIFO
design example.</font></p>
<p align="center"><font color="black"><img src="images/WFSELECT.gif" width="432" height="327" border="0"><br></font></p>
<p align="left"><font color="black" face="Verdana" size="1"><br><br>Note
that, after a <i>File|New</i> operation, the 4 waveforms have
been mapped into WFSELECT such that the function named in the
tab label would be appropriate&nbsp;for that tab sheet. &nbsp;That
is, after a <i>File|New</i> operation, the designer could implement
the <i>Single Read</i> function in the first waveform,&nbsp;the
<i>Single Write</i> function in the second waveform, the <i>FIFO
Read </i>function in waveform #3 and the <i>FIFO Write</i> function&nbsp;in
the last waveform. &nbsp;If the designer created these waveform
functions, corresponding to the default waveform tab labels,
the WFSELECT mapping would not need to be changed.</font></p>
<p align="center"><font color="black"><img src="images/DefaultWFSELECT.gif" width="432" height="327" border="0">&nbsp;</font></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br>
</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="Export"></a>Export
to GPIF.c file</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
principal objective in defining a set of GPIF waveforms is to
generate the waveform descriptors, as &quot;C&quot; language
data structures&nbsp;for inclusion&nbsp;in a firmware project
for the FX / FX2. &nbsp;Once the block diagram has been specified
and the waveforms have been correctly defined using the waveform
editors, GPIF Designer can generate correct &quot;C&quot; language
data structures to be used in programming the device. &nbsp;<br><br>The
generation of the data structures is accomplished via the </font><font face="Verdana,Arial" size="1" color="black"><i>Tools|Export
to GPIF.c file</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu item. &nbsp;When this menu item is invoked, the user will
be prompted to specify a location and file name for the data
structures. &nbsp;It is important to understand that the </font><font face="Verdana,Arial" size="1" color="black"><i>Export
to GPIF.c file</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
function completely over-writes the specified&nbsp;file with
the waveform descriptor data. &nbsp;It does NOT merely append
or insert the data structures into an existing file. &nbsp;For
this reason, the user will usually want to specify a new file
as the target of the Export operation.<br><br>Also note that
it is not necessary to export the waveform descriptor data structures
to the same directory as the GPIF Designer project file.<br><br>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. &nbsp;These
comments contain strings that reflect waveform tab labels and
block diagram configurations such as CTL and RDY line labels.
&nbsp;In order to generate a &quot;*.c&quot; file compatible
with the older GPIF tool, many of these labels are truncated
when exported&nbsp;to the &quot;*.c&quot; file. &nbsp;One should
expect to lose some string information if attempting to import
a file generated by the Tools|Export to GPIF.c file operation.<br><br>The
primary vehicle for saving and loading GPIF waveform designs
is the </font><font face="Verdana,Arial" size="1" color="black"><i>File</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu. &nbsp;The </font><font face="Verdana,Arial" size="1" color="black"><i>Tools|Export/Import</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
functions do not retain or recover all the information stored
in a GPIF Designer (*.gpf) file.<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="Import"></a>Import
older GPIF.c file</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">GPIF
Designer is the second-generation of Cypress tools for defining
GPIF waveform descriptors for the FX/FX2. &nbsp;Waveform descriptors
generated by the previous tool can be read into GPIF Designer
via the</font><font face="Verdana,Arial" size="1" color="black"><i>
Tools|Import older EZ-USB FX GPIF.c file</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
and </font><font face="Verdana,Arial" size="1" color="black"><i>Tools|Import
older FX2 GPIF.c file</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
menu items.<br><br>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. &nbsp;Be
sure to invoke the correct operation for the file type that
is to be imported.<br><br>Note that, in order for the import
functions to work, the target file must be in a format compatible
with the old tool. &nbsp;If the file has been manually modified
so as to render its&nbsp;format incompatible with the older
GPIF tool, the import functions will fail to import the file.<br>&nbsp;</font>
</ul>
</td>
</tr>
</table>
</font>
</body>
</html>
@@ -0,0 +1,735 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Waveform Editors</title>
<meta name="generator" content="BBEdit 6.0">
</head>
<body bgcolor="white">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr valign="top">
<td colspan="1" align="left">
<p align="center"><font face="verdana, arial" size="2" color="black"><b><a name="Waveform"></a>Waveform
Editors&nbsp;</b></font>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br>The
four tab pages following the </font><a href="BlockDiagram.htm#BlockDiagram"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Block Diagram</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"> page present graphical
editors for defining four distinct GPIF waveforms (i.e. state machines).<br><br>Each
of the four waveforms may be&nbsp;configured for a specific type
of data transaction. &nbsp;For instance, the waveform depicted below
is for iterative reading of data from a connected FIFO device. &nbsp;The
second waveform (on the tab labeled &quot;FIFOWr&quot;) is for iterative
writing of data to a connected FIFO device.<br><br>Each of the waveforms
can be configured for any IO task (i.e. Single Read, Single Write,
Multi Read, Multi Write, etc.) &nbsp;That is, the first waveform
could be created for Single Write operation, rather than the FIFO
Read operation shown below.<br><br>The label of each waveform tab
can be modified by right-clicking on the page tab.</font>
<p align="center"><font color="black"><img src="images/FifoWave.gif" width="432" height="327" border="0"><br></font></p>
<p align="center"><font color="black">&nbsp;</font></p>
<p align="left"><font color="black" face="Verdana" size="1">Each
waveform tab page contains certain graphic elements which are used
in the design of a waveform. &nbsp;The thick, horizontal lines are
called bands. &nbsp;The States band shows the GPIF states that are
implied by Action Points of the other bands. &nbsp;Action Points,
placed on the several bands, define the state machine that is the
waveform.</font></p>
<p align="center"><font color="black"><img src="images/LabeledWave.gif" width="432" height="432" border="0"></font></p>
<p> <font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The DeltaT
displayed in the lower left corner of each Waveform Editor tab shows
the time, in ns, from the cursor to the nearest Action Point left
of the cursor.<br>
<br>
</font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="ActionPoints"></a>Action
Points</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Action
Points are the vehicle for imposing state and line&nbsp;transitions
in a waveform. &nbsp;To place an action point on a band, left-click
on the band. &nbsp;Action points can be dragged to different
positions on the&nbsp;band in which they reside. &nbsp;<br><br>Each
type of band has a corresponding specific type of action point
associated with it. &nbsp;And, each type of action point has
a different set of behaviors or properties that can be configured.
&nbsp;To set the properties of an action point, right-click
the action point. &nbsp;(The Addr action points are not configurable.
&nbsp;They have a single function which is to increment the
address.)</font>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">To
delete an action point, right-click the action point and select
&quot;Delete&quot; from the pop-up menu. &nbsp;To delete all
the user-placed action points from a waveform, right-click the
waveform tab and select &quot;Clear waveform&quot; from the
pop-up menu.<br><br>An &quot;empty&quot; waveform contains the
permanent action points shown below. &nbsp;These permanent action
points cannot be deleted or moved. &nbsp;However, their properties
can be modified by right-clicking on them.<br></font></p>
<p align="center"><font color="black"><img src="images/PermAPs.gif" width="432" height="360" border="0"></font></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br>To
copy all the action points from one waveform to another, right-click
on the current waveform tab and select &quot;Copy waveform .
. .&quot; from the pop-up menu. &nbsp;A dialog box will pop-up,
prompting for the destination tab page to receive the new action
points. &nbsp;The &quot;Copy waveform&quot; function erases
all existing action points from the destination waveform before
copying the new action points to that location. &nbsp;So, the
destination waveform becomes an exact copy of the source.
&nbsp;<br>&nbsp;</font></p>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="DATA_APs"></a>DATA
Action Points</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p align="left">
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Data
action points control&nbsp;two parameters of the data bus.
&nbsp;First, the action point controls whether to keep the
same data on the bus or place new data onto the bus. &nbsp;Second,
the action point controls whether to activate or de-activate
the data bus.<br><br></font><font face="Verdana,Arial" size="1" color="black"><i>Same
vs Next
</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">status of the bus is depicted by the COLOR of the data trace.
&nbsp;A change in color depicts Next data. &nbsp;Constant
color connotes Same data.<br><br></font><font face="Verdana,Arial" size="1" color="black"><i>Active vs Inactive</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"> status
of the bus is depicted by the POSITION of the data trace.
&nbsp;A trace running along the bottom of the band represents
inactive. &nbsp;A trace along the top connotes an active
bus.<br></font>
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br><br></font><img src="images/DataAP.gif" width="432" height="396" border="0"></p>
</ul>
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">&nbsp;<br>In
the waveform above, the first data action point keeps the
same data (trace color stays the same) on the bus and de-activates
the data (trace moves to bottom of band). &nbsp;The
next data action point places Next data on the bus (trace
color changes) and activates the data (trace moves to top
of band). &nbsp;The third data action point keeps the same
data (trace color stays yellow) on the bus and de-activates
the data (trace moves to bottom of the band). &nbsp;Finally,
the last data action point keeps the same data (trace stays
yellow) and activates the bus (trace moves to top of band).<br><br>Data
action points, for the FX2 series chips, also have two variations
on the &quot;</font><font face="Verdana,Arial" size="1" color="black">Next
Data&quot;</font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
theme. &nbsp;These are </font><font face="Verdana,Arial" size="1" color="black"><i>SGLDATAH/L</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
and </font><font face="Verdana,Arial" size="1" color="black"><i>UDMA_CRCH/L</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">.
&nbsp;Either of those selection has the same effect as </font><font face="Verdana,Arial" size="1" color="black"><i>Next
FIFO Data</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
on the displayed data trace. &nbsp;</font><font face="Verdana,Arial" size="1" color="black"><i>SGLDATAH/L</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
and </font><font face="Verdana,Arial" size="1" color="black"><i>UDMA_CRCH/L</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
merely specify alternate sources of the next data.<br><br>When
a new Data action point is placed on the Data band, the
initial state of the action point is </font><font face="Verdana,Arial" size="1" color="black"><i>Same
Data</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
with&nbsp;opposite activity to the last (rightmost) action
point on the band.<br><br>Data action points located on
the left edge of the IDLE state cannot present any form
of &quot;Next Data&quot;. &nbsp;Such Data action points
are limited to </font><font face="Verdana,Arial" size="1" color="black"><i>Activate
/ De-activate</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
as their functional domain.&nbsp;<br><br>HINT: Rather than
clicking on the Data action points directly, it is also possible
to modify the state of the Data trace by right-clicking on the Data
band in the region of the trace. &nbsp;This action simply&nbsp;modifies
the properties of the nearest Data action point left of the mouse.&nbsp;&nbsp;&nbsp;When
you click on the band, rather than an action point, the &quot;Delete&quot;
menu item will not appear.<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="ADDR_APs"></a>ADDR
Action Points</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Addr
action points are represented as a plus symbol (+) on the
Addr band. &nbsp;Placing an Addr action point causes the
value of the address bus to be incremented at that point.
&nbsp;<br><br>Addr action points have no other functionality.
&nbsp;So, the pop-up menu for these action points only provides
the mechanism for deletion of the point. &nbsp;Of course,
like all action points, Addr action points can be dragged.<br><br>Addr
action points cannot be placed&nbsp;on the left boundary
of the IDLE state because the IDLE state does not have the
capability of incrementing the address.&nbsp;<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="Status_APs"></a>Status
Action Points</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Status
action points are also referred to as Decision Points. &nbsp;These
action points are used to cause the GPIF to remain in a
given state until (or branch to a different state when)
some condition of the RDY lines is achieved.<br><br>Status
action points create states of indefinite length. &nbsp;(The
state will last until the decision causes a branch away
from the state.) &nbsp;To indicate this, the clock trace
at the top of each waveform diagram is &quot;broken&quot;
above any status action point.<br><br>After a Status action
point has been placed, the </font><font face="Verdana,Arial" size="1" color="black"><i>Specify
Decision Point</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog box will automatically be displayed to allow specification
of the branching / exit condition for the state. &nbsp;(Note that
the Status action point has already been placed when the dialog
pops-up. &nbsp;Clicking the </font><font face="Verdana,Arial" size="1" color="black"><i>Cancel</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
button of the dialog will not delete the action point.) &nbsp;The</font><font face="Verdana,Arial" size="1" color="black"><i>
Specify Decision Point</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog box can be accessed later by right-clicking on the decision
point and selecting Edit from the pop-up menu.<br><br>The exit / branch decision is a
logic operation between any two of the enabled RDY lines
(including internal status lines) as specified on the </font><a href="BlockDiagram.htm#BlockDiagram"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">block
diagram</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">. &nbsp;When the GPIF enters a state containing a
decision point, any other actions indicated by action points
at the start of the state are executed. &nbsp;Then, the
logic condition is evaluated. &nbsp;If the condition is
satisfied, the GPIF will branch to (GOTO) the first state
specified. &nbsp;Otherwise, it will branch to the second
(ELSE) state specified.<br></font>
<p align="center"><img src="images/DecisionPt.gif" width="432" height="327" border="0"></p>
</ul>
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
decision point, displayed above, is of interest. &nbsp;It
specifies that, on entry into state S3, the transaction
counter (TCXpire) should be tested. &nbsp;(Note that TCXpire
is compared against itself, causing the decision to be based
on a single input.) &nbsp;If TCXpire = 1 the GPIF will branch
to the IDLE state, concluding the waveform. &nbsp;If TCXpire
= 0, &nbsp;the GPIF will branch to state S3 (the current
state). &nbsp;This decision point essentially says &quot;Stay
in S3 until the transaction counter expires. &nbsp;Then
exit the waveform.&quot;<br><br>For instructions on how
to make the transaction counter (TC) an input to decision
points, see the discussion of </font><a href="BlockDiagram.htm#RDYLines"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">RDY
Line Configuration</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
in the Block Diagram section.<br><br>Status action points
are not allowed on the left boundary of the IDLE state because
the IDLE state is not able to execute the conditional branching
mechanism of a decision point. &nbsp;If you attempt to place
a Status action point on the IDLE state boundary, the waveform
editor will automatically insert a buffer state between
the action point and the IDLE state.<br><br>Because the
input arguments for a decision point depend on the RDY line
configuration of the Block Diagram, all decision points of
each waveform should be edited and verified for correctness
whenever the configuration of the RDY lines is changed.&nbsp;<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="Loop"></a>LOOP
/ Re-Execute</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
LOOP (Re-execute) checkbox in the Specify Decision Point
dialog, controls whether or not the other actions of
the state are repeated when the decision branches to
the same state. &nbsp;For instance, at the beginning
of S3 in&nbsp;the below&nbsp;waveform, the Data bus
is asserted and next data is placed on the bus, the
address is incremented,&nbsp;and CTL lines REN# and
OE# are sent high. &nbsp;<br></font>
<p align="center"><img src="images/Loop.gif" width="432" height="327" border="0"></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">If
TCXpire is not 1, the GPIF will branch back to S3, the
current state. &nbsp;Because the LOOP (Re-execute) box
is checked, next data will again be placed on the data
bus and the address again be incremented&nbsp;&nbsp;These
activities will repeat&nbsp;each time the decision point
branches back into S3.<br><br>[If LOOP (Re-execute)
is checked, the Re-Execute bit (b7) of the Length/Branch
register of the&nbsp;state instruction is set to 1.]&nbsp;<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="CTRL_APs"></a>CTRL
Action Points</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Depending
on the </font><a href="BlockDiagram.htm#CTLLines"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">CTL
line Configuration</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
of the Block diagram, up to 6 CTL bands will be displayed
in the waveform editors. &nbsp;Each CTL action point can
be configured as High (1), Low (0), or Tri-state (z) if
the CTL lines have been configured to allow&nbsp;tri-state.<br><br>Whenever
a new CTL line is dropped onto a CTL band, it's initial
state is opposite to that of the last (rightmost) action
point on the band. &nbsp;(In deciding&nbsp;this initial
status tri-state is considered to be Low (0).)<br><br>HINT:
Rather than clicking on the CTL&nbsp;action points directly, it
is also possible to modify the state of the CTL&nbsp;traces by right-clicking
on the CTL&nbsp;bands in the region of the traces. &nbsp;This action
simply&nbsp;modifies the properties of the nearest CTL&nbsp;action
point left of the mouse.&nbsp;&nbsp;&nbsp;When you click on the
band, rather than an action point, the &quot;Delete&quot; menu item
will not appear.<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="States"></a>States</b></font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
FX/FX2 GPIF is implemented as a state machine, capable of 8
distinct states (including the IDLE) state. &nbsp;Each waveform
editor contains&nbsp;a States band that displays&nbsp;the&nbsp;states
implied by the action points of the waveform.<br><br>New states
cannot be created directly, by left-clicking on the state band.
&nbsp;Rather, they are created by placing action points on other
bands. &nbsp;Whenever an action point is placed on a band, the
waveform editor checks to see if the action point has been placed
on an existing state boundary. &nbsp;If not, a new state is
created. &nbsp;When the GPIF state machine enters one of the
states of a&nbsp;waveform,&nbsp;it will execute those action
points found along the state's left boundary.<br><br>By default,
state durations are calculated from their displayed length in
the waveform. &nbsp;(See </font><a href="WavefmEditors.htm#SetStateDuration"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Set
State Duration</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">,
to learn about setting&nbsp;the duration to a fixed length.)
&nbsp;When the cursor moves over a state, the duration of the
state will be briefly pop-up just below the cursor.<br><br>[The IDLE state has no specific duration
and is only defined&nbsp;by the action points of the Data and
CTL bands.]&nbsp;<br>&nbsp;</font> </td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="StateProps"></a>State
Properties</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">There
are some state properties that are not implied by action
points. &nbsp;These are configured by right-clicking on
the state to bring up a State Properties dialog box. &nbsp;<br></font>
<p align="center"><img src="images/StateProps.gif" width="432" height="327" border="0"></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
State Properties dialog for non-decision point states (such
as S2, above) do not allow configuration of Flow State.
&nbsp;<br><br><br><br>The State Properties dialog for state
S3 (a decision point state) has&nbsp;the Flow State configuration
controls enabled, below.<br></font></p>
<p align="center"><img src="images/StateProps2.gif" width="432" height="327" border="0"></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br>[The
IDLE state does not have properties that can be configured
via the State Properties dialog box. &nbsp;Right clicking
on the IDLE state has no effect.]<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="StateGenInt"></a>Generate
Interrupt</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">On
entry to a given state, the GPIF can generate a GPIFWF&nbsp;interrupt
on the INT4 line. &nbsp;To enable the interrupt, bring-up the </font><font face="Verdana,Arial" size="1" color="black"><i>State
Properties</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog box by right-clicking on the state. &nbsp;Then,&nbsp;check
the </font><font face="Verdana,Arial" size="1" color="black"><i>Generate
Interrupt</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box in the dialog.<br>
<br>[Checking the Generate Interrupt box will
set the GINT bit (b4) of the OPCODE register of the state instruction
to 1.]<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="SetStateDuration"></a>Set
State Duration</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Non-decision
point states can range in duration from 1 to 256 clock cycles. &nbsp;However,
the waveform editors only display 20 clock cycles. &nbsp;In order
to create states with longer durations, the state must be designated
as a &quot;fixed duration&quot;, rather than a calculated duration
state. &nbsp;Once this is done, there is no correlation between
the states visible length and its duration.<br><br>To set a fixed&nbsp;state
duration, bring-up the </font><a href="WavefmEditors.htm#StateProps"><i><font face="Verdana,Arial" size="1" color="black">State
Properties</font></i></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog by right-clicking on the state of interest. &nbsp;(Only non-decision
point states can have their duration set.) &nbsp;Then click the
</font><font face="Verdana,Arial" size="1" color="black"><i>Set
State Duration</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
button. &nbsp;The dialog box, shown below, will appear.<br></font>
<ul>
<p align="center"><img src="images/StateDuration.gif" width="432" height="327" border="0"></p>
</ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Un-check
the </font><font face="Verdana,Arial" size="1" color="black"><i>Calculate
Duration from Waveform Diagram</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box. &nbsp;This will cause the duration to stay at the value of
the </font><font face="Verdana,Arial" size="1" color="black"><i>Duration
(Clock Cycles)</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
field, regardless of how long the state is made to appear on the
waveform diagram.<br><br>When viewing a waveform, the only way to
be sure of a state's duration is to move the mouse over the state
and read the duration shown in the pop-up hint.<br><br>Note that
the need to make&nbsp;a state's duration fixed is somewhat uncommon.<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="UseAsFlowState"></a>Use
as the Flow State</b><br></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Decision
point states can also be designated as a Flow State. &nbsp;To designate
a decision point state as the flow state, right-click on the decision
point state to bring-up the </font><a href="WavefmEditors.htm#StateProps"><i><font face="Verdana,Arial" size="1" color="black">State
Properties</font></i></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog box. &nbsp;Then, check the </font><font face="Verdana,Arial" size="1" color="black"><i>Use
as the Flow State</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box.&nbsp;<br><br>Only one Flow State can exist in a given waveform.
&nbsp;When a state has been designated as the flow state for a waveform,
the state will be colored yellow.<br></font>
<p align="center"><img src="images/FlowState.gif" width="432" height="360" border="0"></p>
<ul>
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">&nbsp;</font></p>
</ul>
</ul>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="ConfigFlowState"></a>Configure
Flow State</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">If&nbsp;the
</font><font face="Verdana,Arial" size="1" color="black"><i>Use
as the Flow State</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box of the </font><font face="Verdana,Arial" size="1" color="black"><i>State
Properties</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog is checked, the </font><font face="Verdana,Arial" size="1" color="black"><i>Configure
Flow State</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
button will be enabled, allowing configuration of the flow-state
parameters. &nbsp;Click on the </font><font face="Verdana,Arial" size="1" color="black"><i>Configure
Flow State</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
button to bring-up the </font><font face="Verdana,Arial" size="1" color="black"><i>Flow
State Parameters</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog box, below.<br></font>
<p align="center"><img src="images/StateProps2.gif" width="432" height="327" border="0"></p>
<ul>
<ul>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">&nbsp;</font></p>
</ul>
</ul>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="FlowLogic"></a>Flow
Logic</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
Flow Logic tab of the </font><font face="Verdana,Arial" size="1" color="black"><i>Flow
State Parameters</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog is used to define&nbsp;the state of CTL lines, based on the
state of RDY lines. &nbsp;This is similar to the configuration of
</font><a href="WavefmEditors.htm#Status_APs"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Status
action points</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">,
except that the flow logic does not control exit conditions of the
state. &nbsp;Rather, the flow logic test is repeatedly performed
and the configuration of the CTL lines repeatedly changed based
on the outcome of the test. &nbsp;This repeated functionality persists
until the branching conditions of the state's decision point cause
the GPIF to exit the state.<br><br>To cause a CTL line to be set
High (1) when the condition of the test is satisfied, check the
box for &nbsp;the CTL line in the THEN section. &nbsp;Un-check the
box to make the line go Low (0). &nbsp;Similarly, when the condition
is not satisfied, the state of the CTL lines can be explicitly controlled
using the checkboxes of the ELSE section.</font>
<p align="center"><img src="images/FlowLogic.gif" width="432" height="327" border="0"></p>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">If
Tri-state has been enabled in the </font><a href="BlockDiagram.htm#CTLLines"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">Configure
CTL lines</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
dialog of the block diagram, the </font><font face="Verdana,Arial" size="1" color="black"><i>Enable
output</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
checkboxes will be enabled.<br><br>[The THEN section of checkboxes
controls the contents of the FLOWEQ1CTL register. &nbsp;The ELSE
section of checkboxes controls the FLOWEQ0CTL register.]<br>&nbsp;</font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="Strobe"></a>Strobe</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
Strobe tab configures a&nbsp;</font><font face="Verdana,Arial" size="1" color="black"><i>Master
Strobe Pin</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
to be used in causing data to be read or written during the flow
state. [Most of the settings on this tab control bits of the FLOWSTB
register.]<br><br>The </font><font face="Verdana,Arial" size="1" color="black"><i>Slave</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
checkbox should be checked if the GPIF is acting as a&nbsp;slave
on the bus. &nbsp;In this condition, the </font><font face="Verdana,Arial" size="1" color="black"><i>Master
Strobe Pin</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
can be selected from a list of the </font><a href="BlockDiagram.htm#RDYLines"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">available&nbsp;RDY
lines</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">.
&nbsp;Also, in this condition, check the </font><font face="Verdana,Arial" size="1" color="black"><i>RDYASYNC</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box to make the selected </font><font face="Verdana,Arial" size="1" color="black"><i>Master
Strobe Pin</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
synchronous to IFCLK.<br></font>
<p align="center"><i><font color="black" size="1" face="Verdana,Arial"><img src="images/FlowStrobe2.gif" width="432" height="327" border="0"></font></i></p>
<p><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br><br>Un-check
the </font><font face="Verdana,Arial" size="1" color="black"><i>Slave</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
checkbox if the GPIF is acting as the bus master. &nbsp;In this
condition, the </font><font face="Verdana,Arial" size="1" color="black"><i>Master
Strobe Pin</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
can be selected from a list of the </font><a href="BlockDiagram.htm#CTLLines"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">available
CTL lines</font></a><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">.
&nbsp;&nbsp;Also, in this condition, check the </font><font face="Verdana,Arial" size="1" color="black"><i>CTLTOGL</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box to cause the THEN (i.e. satisfied) condition of the </font><font face="Verdana,Arial" size="1" color="black"><i>Flow
Logic</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
to toggle&nbsp;the </font><font face="Verdana,Arial" size="1" color="black"><i>Master
Strobe Pin</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">.
&nbsp;Un-check the </font><font face="Verdana,Arial" size="1" color="black"><i>CTLTOGL</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box to cause the ELSE (i.e. not satisfied) condition of the Flow
Logic to toggle&nbsp;the </font><font face="Verdana,Arial" size="1" color="black"><i>Master
Strobe Pin.<br><br></i></font></p>
<p align="center"><i><font color="black" size="1" face="Verdana,Arial"><img src="images/FlowStrobe1.gif" width="432" height="327" border="0"></font></i></p>
<p><font color="black" size="1" face="Verdana,Arial">Uncheck the
</font><i><font color="black" size="1" face="Verdana,Arial">SUSTAIN
</font></i><font color="black" size="1" face="Verdana,Arial">box
to allow &nbsp;the <i>Master Strobe Pin</i> CTL line to be restored
to its waveform-defined state when the GPIF exits the flow state</font><i><font color="black" size="1" face="Verdana,Arial">.<br><br><br>C</font></i><font color="black" size="1" face="Verdana,Arial">heck
the <i>RISING EDGE</i> DATA XFER box to transfer data on the rising
edge of the clock when <i>Master Strobe Pin</i> is toggled. &nbsp;</font><i><font color="black" size="1" face="Verdana,Arial">C</font></i><font color="black" size="1" face="Verdana,Arial">heck
the <i>Falling EDGE</i> DATA XFER box to transfer data on the falling&nbsp;edge
of the clock when <i>Master Strobe Pin</i> is toggled. &nbsp;Both
<i>RISING EDGE</i> and <i>FALLING EDGE</i> can be selected to cause
double-edge data transfers when <i>Master Strobe Pin</i> is toggled.
&nbsp;[The DATA XFER check boxes control bits 0 and 1 of the FLOWSTBEDGE
register.]<br><br>The<i> Master Strobe Half Period</i> field defines
the half period of the<i> Master Strobe Pin</i> toggling frequency.
&nbsp;The minimum value is 2 (or 1 clock pulse). &nbsp;A value of
3 would cause the <i>Master Strobe Pin</i> to toggle every 1.5 clock
pulses.<br>&nbsp;</font></p>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><b><a name="GHold-Off"></a>Hold-Off</b></font>
</ul>
</td>
</tr>
<tr valign="top">
<td colspan="1" align="left">
<ul>
<p>
<font face="verdana, arial, helvetica, sans-serif" size="1" color="black">The
Hold-Off tab contains controls to configure the FLOWHOLDOFF register
and the GPIFHOLDTIME register.
&nbsp;<br><br>These settings are only useful in certain conditions.
&nbsp;If the GPIF is acting as a slave on the bus (</font><font face="Verdana,Arial" size="1" color="black"><i>Slave</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box on the </font><font face="Verdana,Arial" size="1" color="black"><i>Strobe</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
tab is checked) and the Master Strobe is asynchronous to the IFCLK
signal </font><font face="Verdana,Arial" size="1" color="black">(<i>RDYASYNC</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box on the Strobe tab is not checked), the Hold-Off settings will
be used when data is written to the GPIF.<br><br>Check the </font><font face="Verdana,Arial" size="1" color="black"><i>HOCTL
pin is asserted when Not Ready (HOSTATE)</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
box to cause the Hold-off CTL bin to be sent High (1) when not ready.
[Checking this box causes the HOSTATE bit (b3) of the FLOWHOLDOFF
register to be set to 1.]<br><br>Select the CTL pin that will be
used to indicate a Hold-off condition from the </font><font face="Verdana,Arial" size="1" color="black"><i>CTL
Pin Used to indicate Hold-Off</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
drop-down list. [The line selected determines the value of the HOCTL
bits (2:0) of FLOWHOLDOFF register.]<br><br>The </font><font face="Verdana,Arial" size="1" color="black"><i>Hold-Off
Period (clocks)</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
field indicates how long to keep&nbsp;the </font><font face="Verdana,Arial" size="1" color="black"><i>CTL
Pin Used to indicate Hold-Off</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
in&nbsp;the Hold-Off State in order to allow the external bus master
to catch-up. &nbsp;[This value is placed in the HOPERIOD field (bits
7:4) of the FLOWHOLDOFF register.]<br><br>The </font><font face="Verdana,Arial" size="1" color="black"><i>Hold
Time (clocks)</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
field determines how long data is held on the DATA bus when
written by the GPIF. &nbsp;This value can be set to 0, 1/2 or
1 clock cycle. &nbsp;[The </font><font face="Verdana,Arial" size="1" color="black"><i>Hold
Time (clocks)</i></font><font face="verdana, arial, helvetica, sans-serif" size="1" color="black">
setting controls the value of the GPIFHOLDTIME register.]<br></font>
<p align="center"><font face="verdana, arial, helvetica, sans-serif" size="1" color="black"><br><img src="images/FlowHoldOff.gif" width="432" height="327" border="0">
</font></p>
</ul>
</td>
</tr>
</table>
</font>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@@ -0,0 +1,38 @@
<html>
<head>
<title>Contents</title>
<base target="detail"></head>
<body bgcolor="#CCCCCC" text="black" link="blue" vlink="purple" alink="red">
<p align="left"><font face="Verdana" size="1"><b><a href="Overview.htm">Overview</a></b></font></p>
<p align="left"><font face="Verdana" size="1"><b><a href="BlockDiagram.htm#BlockDiagram">Block Diagram</a><br></b> &nbsp;&nbsp;&nbsp;<a href="BlockDiagram.htm#Chip">Chip
Selection<br></a> &nbsp;&nbsp;&nbsp;<a href="BlockDiagram.htm#Slave">Slave Labeling</a><br>&nbsp;&nbsp;&nbsp;<a href="BlockDiagram.htm#Clock">Clock Settings</a><br>
&nbsp;&nbsp;&nbsp;<a href="BlockDiagram.htm#DataBus">Data Bus Selection</a><br> &nbsp;&nbsp;&nbsp;<a href="BlockDiagram.htm#ADRLines">ADR line Configuration<br></a>
&nbsp;&nbsp;&nbsp;<a href="BlockDiagram.htm#RDYLines">RDY line Configuration</a><br> &nbsp;&nbsp;&nbsp;<a href="BlockDiagram.htm#CTLLines">CTL line Configuration</a></font></p>
<p align="left"><font face="Verdana" size="1"><b><a href="WavefmEditors.htm">Waveform Editors</a><br></b> &nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#ActionPoints">Action
Points</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#DATA_APs">DATA Action Points<br></a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#ADDR_APs">ADDR
Action Points</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#Status_APs">STATUS Action Points</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#Loop">Loop / Re-Execute</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#CTRL_APs">CTRL Action Points</a><br> &nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#States">States</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#StateProps">Properties</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#StateGenInt">Generate
Interrupt<br></a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#SetStateDuration">Set
State Duration</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#UseAsFlowState">Use
as the Flow State</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#ConfigFlowState">Configure
Flow State</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#FlowLogic">Flow
Logic</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#Strobe">Strobe</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="WavefmEditors.htm#GHold-Off">Hold-Off</a></font></p>
<p align="left"><font face="Verdana" size="1"><b><a href="FileMenu.htm#File">File</a></b><br> &nbsp;&nbsp;&nbsp;<a href="FileMenu.htm#New">New</a><br>
&nbsp;&nbsp;&nbsp;<a href="FileMenu.htm#Open">Open</a><br> &nbsp;&nbsp;&nbsp;<a href="FileMenu.htm#Save">Save</a><br> &nbsp;&nbsp;&nbsp;<a href="FileMenu.htm#SaveAs">Save
As<br></a> &nbsp;&nbsp;&nbsp;<a href="FileMenu.htm#Properties">Properties</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="FileMenu.htm#DebugOutput">Debug
Output</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="FileMenu.htm#EnableBanks">Banks
Enabled</a></font></p>
<p align="left"><font face="Verdana" size="1"><b><a href="ToolsMenu.htm#Tools">Tools</a></b><br> &nbsp;&nbsp;&nbsp;<a href="ToolsMenu.htm#SelectBank">Select
Waveform Bank</a><br> &nbsp;&nbsp;&nbsp;<a href="ToolsMenu.htm#MapWFSELECT">Map Wforms to WFSELECT</a><br> &nbsp;&nbsp;&nbsp;<a href="ToolsMenu.htm#Export">Export
to GPIF.c file</a><br> &nbsp;&nbsp;&nbsp;<a href="ToolsMenu.htm#Import">Import older GPIF.c file</a></font></p>
<p align="left"><font face="Verdana" size="1"><b><a href="HelpMenu.htm#Help">Help</a></b><a href="HelpMenu.htm#Help"><br></a> &nbsp;&nbsp;&nbsp;<a href="HelpMenu.htm#Tool">This
tool<br></a> &nbsp;&nbsp;&nbsp;<a href="HelpMenu.htm#Project">This project<br></a> &nbsp;&nbsp;&nbsp;<a href="HelpMenu.htm#GPIF">General GPIF</a></font></p>
</body>
</html>