Reveal Troubleshooting Guide - Lattice Semiconductor
Reveal Troubleshooting Guide - Lattice Semiconductor
Reveal Troubleshooting Guide - Lattice Semiconductor
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Reveal</strong> <strong>Troubleshooting</strong><br />
<strong>Guide</strong><br />
<strong>Lattice</strong> <strong>Semiconductor</strong> Corporation<br />
5555 NE Moore Court<br />
Hillsboro, OR 97124<br />
(503) 268-8000<br />
June, 2007
Copyright<br />
Copyright © 2007 <strong>Lattice</strong> <strong>Semiconductor</strong> Corporation.<br />
This document may not, in whole or part, be copied, photocopied,<br />
reproduced, translated, or reduced to any electronic medium or machinereadable<br />
form without prior written consent from <strong>Lattice</strong> <strong>Semiconductor</strong><br />
Corporation.<br />
Trademarks<br />
<strong>Lattice</strong> <strong>Semiconductor</strong> Corporation, L <strong>Lattice</strong> <strong>Semiconductor</strong> Corporation<br />
(logo), L (stylized), L (design), <strong>Lattice</strong> (design), LSC, E 2 CMOS, Extreme<br />
Performance, FlashBAK, flexiFlash, flexiMAC, flexiPCS, FreedomChip, GAL,<br />
GDX, Generic Array Logic, HDL Explorer, IPexpress, ISP, ispATE, ispClock,<br />
ispDOWNLOAD, ispGAL, ispGDS, ispGDX, ispGDXV, ispGDX2,<br />
ispGENERATOR, ispJTAG, ispLEVER, ispLeverCORE, ispLSI, ispMACH,<br />
ispPAC, ispTRACY, ispTURBO, ispVIRTUAL MACHINE, ispVM, ispXP,<br />
ispXPGA, ispXPLD, <strong>Lattice</strong>EC, <strong>Lattice</strong>ECP, <strong>Lattice</strong>ECP-DSP, <strong>Lattice</strong>ECP2,<br />
<strong>Lattice</strong>ECP2M, <strong>Lattice</strong>Mico8, <strong>Lattice</strong>Mico32, <strong>Lattice</strong>SC, <strong>Lattice</strong>SCM,<br />
<strong>Lattice</strong>XP, <strong>Lattice</strong>XP2, MACH, MachXO, MACO, ORCA, PAC, PAC-Designer,<br />
PAL, Performance Analyst, PURESPEED, <strong>Reveal</strong>, Silicon Forest,<br />
Speedlocked, Speed Locking, SuperBIG, SuperCOOL, SuperFAST,<br />
SuperWIDE, sysCLOCK, sysCONFIG, sysDSP, sysHSI, sysI/O, sysMEM, The<br />
Simple Machine for Complex Design, TransFR, UltraMOS, and specific<br />
product designations are either registered trademarks or trademarks of<br />
<strong>Lattice</strong> <strong>Semiconductor</strong> Corporation or its subsidiaries in the United States<br />
and/or other countries. ISP, Bringing the Best Together, and More of the Best<br />
are service marks of <strong>Lattice</strong> <strong>Semiconductor</strong> Corporation.<br />
Other product names used in this publication are for identification purposes<br />
only and may be trademarks of their respective companies.<br />
Disclaimers<br />
NO WARRANTIES: THE INFORMATION PROVIDED IN THIS DOCUMENT<br />
IS “AS IS” WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY<br />
KIND INCLUDING WARRANTIES OF ACCURACY, COMPLETENESS,<br />
MERCHANTABILITY, NONINFRINGEMENT OF INTELLECTUAL<br />
PROPERTY, OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO<br />
EVENT WILL LATTICE SEMICONDUCTOR CORPORATION (LSC) OR ITS<br />
SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER (WHETHER<br />
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL,<br />
INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS,<br />
BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT<br />
OF THE USE OF OR INABILITY TO USE THE INFORMATION PROVIDED<br />
IN THIS DOCUMENT, EVEN IF LSC HAS BEEN ADVISED OF THE<br />
POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME JURISDICTIONS<br />
PROHIBIT THE EXCLUSION OR LIMITATION OF CERTAIN LIABILITY,<br />
SOME OF THE ABOVE LIMITATIONS MAY NOT APPLY TO YOU.<br />
LSC may make changes to these materials, specifications, or information, or<br />
to the products described herein, at any time without notice. LSC makes no<br />
commitment to update this documentation. LSC reserves the right to<br />
discontinue any product or service without notice and assumes no obligation<br />
to correct any errors contained herein or to advise any user of this document<br />
of any correction if such be made. LSC recommends its customers obtain the<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> ii
latest version of the relevant information to establish, before ordering, that the<br />
information being relied upon is current.<br />
Type Conventions Used in This Document<br />
Convention Meaning or Use<br />
Bold Items in the user interface that you select or click. Text that you type<br />
into the user interface.<br />
Variables in commands, code syntax, and path names.<br />
Ctrl+L Press the two keys at the same time.<br />
Courier Code examples. Messages, reports, and prompts from the software.<br />
... Omitted material in a line of code.<br />
.<br />
.<br />
.<br />
Omitted lines in code and report examples.<br />
[ ] Optional items in syntax descriptions. In bus specifications, the<br />
brackets are required.<br />
( ) Grouped items in syntax descriptions.<br />
{ } Repeatable items in syntax descriptions.<br />
| A choice between items in syntax descriptions.<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> iii
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> iv
Contents<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 1<br />
HDL Language Restrictions 1<br />
EDIF Support 2<br />
<strong>Reveal</strong> Inserter and Project Navigator Errors 3<br />
Design Parsing Problems in <strong>Reveal</strong> Inserter 3<br />
Project Navigator Flow Messages 3<br />
Signals Unavailable for Tracing and Triggering 4<br />
JTAG Restrictions 5<br />
Sample Clock and Reset 5<br />
Performance 6<br />
Creating a <strong>Reveal</strong> Logic Analyzer Project 7<br />
REveal <strong>Troubleshooting</strong> <strong>Guide</strong> 1
Contents<br />
REveal <strong>Troubleshooting</strong> <strong>Guide</strong> 2
HDL Language Restrictions<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong><br />
<strong>Guide</strong><br />
This document describes the design restrictions for using on-chip debug.<br />
The following features are valid in the VHDL and Verilog languages but are<br />
not supported in the <strong>Reveal</strong> Inserter when you use the RTL flow:<br />
� Array types of two dimensions or more are not shown in the port or node<br />
section.<br />
� Undeclared wires attached to instantiated component instances are not<br />
shown in the hierarchical design tree. You must declare these wires<br />
explicitly if you want to trace or trigger with them.<br />
� Variables used in generate statements are not available for tracing and<br />
triggering.<br />
� Variables used in conditional statements like if-then-else statements are<br />
not available for tracing and triggering.<br />
� Variables used in selection statements like the case statement are not<br />
available for tracing and triggering.<br />
� If function calls are used in the array declaration, the actual size of the<br />
array is unknown to the <strong>Reveal</strong> Inserter.<br />
� Entity and architecture of the same design cannot be in different files.<br />
The following types are valid in the VHDL language but are not supported in<br />
the <strong>Reveal</strong> Inserter when you use the RTL flow:<br />
� Integer types<br />
� Boolean types<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 1
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> EDIF Support<br />
EDIF Support<br />
� User-defined enumerated types, with the exception of arrays of std_logic<br />
or std_ulogic<br />
You can still use these types in the design, but signals of these types are not<br />
available for tracing or triggering. VHDL signals that are traced or triggered<br />
must be of types std_logic, std_logic_vector, std_ulogic, std_ulogic_vector,<br />
bit, or bit_vector. In addition, subtypes of std_ulogic_vector or<br />
std_logic_vector are supported, as well as user-defined types that are arrays<br />
of std_logic or std_ulogic.<br />
The EDIF flow is fully supported in <strong>Reveal</strong>. However, you must be aware of<br />
the following:<br />
� The <strong>Reveal</strong> Inserter must be started from a Project Navigator project. In<br />
order to use the EDIF flow with the <strong>Reveal</strong> Inserter, you must start the<br />
<strong>Reveal</strong> Inserter from a Project Navigator EDIF project. You cannot start<br />
the EDIF flow from a Project Navigator project that is schematic, VHDL/<br />
schematic, VHDL, Verilog/schematic, or Verilog.<br />
� In the EDIF flow, the representation in the <strong>Reveal</strong> Inserter is of the EDIF<br />
hierarchy and signal names. Buses appear as individual signals instead of<br />
buses, as in the RTL flow.<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 2
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> <strong>Reveal</strong> Inserter and Project Navigator Errors<br />
<strong>Reveal</strong> Inserter and Project Navigator Errors<br />
This section discusses errors that can occur when you run the <strong>Reveal</strong> Inserter<br />
from the Project Navigator.<br />
Design Parsing Problems in <strong>Reveal</strong> Inserter<br />
When you start the <strong>Reveal</strong> Inserter from the Project Navigator, it parses and<br />
statically elaborates the design in order to build the hierarchy representation<br />
and signal list to make them available for debugging. If the design cannot be<br />
parsed and elaborated because of syntax errors, the <strong>Reveal</strong> Inserter’s<br />
graphical user interface will not open. Instead, a message box opens with an<br />
error message similar to that shown in Figure 1 and the location of the<br />
reveal_error.log file. This file contains all the information, warning, and error<br />
messages issued by the compiler when it tries to read the design.<br />
Figure 1: <strong>Reveal</strong> Inserter Design Parsing Error Message<br />
Project Navigator Flow Messages<br />
After the <strong>Reveal</strong> Inserter inserts the debug logic, it generates the debug logic<br />
cores and passes the information to the Project Navigator for building the<br />
design. Several issues could potentially cause the implementation flow to fail<br />
because of the debug insertion. Three types of problems could occur:<br />
� Problems with debug design generation<br />
� Problems with connecting JTAG functionality<br />
� Problems with design implementation<br />
The debug cores are generated in the <strong>Reveal</strong> Inserter. However, the design<br />
must also be modified to allow the debug cores to be connected to the<br />
appropriate signals. The modified design is generated during the Build<br />
Database step in the Project Navigator. The design is modified with the<br />
necessary connections for the debug cores, a temporary HDL file is<br />
generated, and the files are synthesized and converted to the <strong>Lattice</strong><br />
<strong>Semiconductor</strong> netlist format. Errors generated during this stage are<br />
displayed in the automake.log file.<br />
A second step occurs during the Build Database process when the <strong>Reveal</strong><br />
Inserter connects the debug cores to the JTAG functionality on the FPGA.<br />
During this step, a module called JTAGhub is generated, and any <strong>Reveal</strong><br />
debug cores are connected to it. If other modules that use JTAG, such as<br />
ispTRACY, ORCAstra, and the <strong>Lattice</strong> Mico32 Debugger, have already been<br />
connected to the JTAG functionality, an error results. In the ispLEVER 7.0<br />
release, you cannot use <strong>Reveal</strong> on a design if these other modules are used.<br />
To use <strong>Reveal</strong>, you would have to remove any of these other modules from<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 3
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> Signals Unavailable for Tracing and Triggering<br />
the design. In addition, some design elements may have some of these<br />
modules embedded in them, causing the design to be unusable with <strong>Reveal</strong>.<br />
Examples are the QDR and Tri-Speed MAC IPs in which ORCAstra is<br />
embedded.<br />
During the mapping process, errors can occur, such as running out of<br />
available resources or tracing or triggering on signals that are not available in<br />
the FPGA fabric. During debug insertion, the <strong>Reveal</strong> Inserter checks to make<br />
sure that the debug logic is not using more resources than are available in the<br />
FPGA. But it does not check to see if the debug logic is using more resources<br />
than are available after the design is placed in the FPGA. Currently resource<br />
usage can only be accurately checked during the mapping process.<br />
Exceeding the available resources results in a mapping error, requiring the<br />
debug configuration in the <strong>Reveal</strong> Inserter to be reduced in order to fit.<br />
Another potential failure occurs when you trigger or trace signals that are<br />
actually hard routes in the FPGA but are not available in the FPGA routing<br />
fabric, for example, the output of a SERDES block. This output is directly<br />
routed from the FPGA and is not available in the FPGA routing fabric. Many<br />
hard routes are detected and blocked from use as trigger or trace signals, but<br />
it is still possible to select some signals that cannot be connected to the<br />
debug logic.<br />
Signals Unavailable for Tracing and Triggering<br />
Some signals in a VHDL design appear in the signal hierarchy but are not<br />
available for triggering or tracing. The following signals are currently<br />
unavailable:<br />
� Signals used in “generate” statements are not available for tracing and<br />
triggering.<br />
� If function calls are used in the array declaration, the actual size of the<br />
array is unknown to the <strong>Reveal</strong> Inserter.<br />
� Signals that are user-defined enumerated types, integer type, or Boolean<br />
type are not available for tracing or triggering.<br />
Some signals in a Verilog design appear in the signal hierarchy but are not<br />
available for triggering or tracing. The following signals are currently<br />
unavailable:<br />
� Array types of two dimensions or more are not shown in the port or node<br />
section.<br />
� Undeclared wires attached to instantiated component instances are not<br />
shown in the hierarchical design tree. You must declare these wires<br />
explicitly if you want to trace or trigger with them.<br />
� If function calls are used in the array declaration, the actual size of the<br />
array is unknown to the <strong>Reveal</strong> Inserter.<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 4
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> JTAG Restrictions<br />
JTAG Restrictions<br />
Sample Clock and Reset<br />
Signals that are used in a design but are implemented as hard routes in the<br />
FPGA instead of using the FPGA routing fabric are not available for tracing or<br />
triggering. Examples are connections to IB and OB components. Many<br />
common hard routes are automatically shown as unavailable in the <strong>Reveal</strong><br />
Inserter, but some are not. If you select a signal that uses a hard route as a<br />
trace or trigger during implementation, an error will occur during the mapping,<br />
placement, or routing steps.<br />
<strong>Reveal</strong> requires a JTAG connection for configuring the debug logic and<br />
transferring captured data to the PC. In the ispLEVER 7.0 release, <strong>Reveal</strong> is<br />
not compatible with other modules or logic that also requires JTAG access,<br />
such as ispTRACY, the <strong>Lattice</strong>Mico32 Debugger, and ORCAstra. If other<br />
modules or components that also use JTAG are present, an error will occur<br />
during the Build Database step in the Project Navigator, indicating that there<br />
are multiple JTAG modules present. The same error occurs if an IP or module<br />
contains a JTAG module. If <strong>Reveal</strong> is used with QDR and Tri-Speed MAC IPs<br />
containing an ORCAstra module, an error will result. An instantiated JTAG<br />
component primitive causes the same error. Although the FreedomChip flow<br />
for SC and SCM devices uses JTAG, this flow is compatible with <strong>Reveal</strong> and<br />
does not result in a JTAG error.<br />
<strong>Reveal</strong> supports debugging a device in a JTAG chain with multiple devices on<br />
the chain. <strong>Reveal</strong> also supports debugging a device with multiple cores.<br />
However, when you debug a design with multiple devices on a JTAG chain, all<br />
the cores must be present in a single device. Multiple cores distributed among<br />
multiple devices are not currently supported.<br />
The sample clock is used by the <strong>Reveal</strong> debug logic to clock data into the<br />
trace buffer and in the triggering logic. The sample clock is also needed when<br />
the <strong>Reveal</strong> Logic Analyzer communicates with the debug logic through JTAG.<br />
If the sample clock is not running, the <strong>Reveal</strong> Logic Analyzer cannot detect<br />
that the <strong>Reveal</strong> debug logic is available. This information is especially<br />
important when you create a new <strong>Reveal</strong> Logic Analyzer project. The <strong>Reveal</strong><br />
Logic Analyzer checks the debug logic for a signature to make sure that the<br />
bitstream matches the design. If the <strong>Reveal</strong> Logic Analyzer cannot<br />
communicate with the debug logic because the sample clock is not running<br />
(or the design is in reset), the project creation will fail with an error. For these<br />
reasons, the sample clock should be a signal with a reasonably regular<br />
frequency rather than a signal with intermittent pulses.<br />
Resetting the debug logic can also cause the <strong>Reveal</strong> Logic Analyzer to be<br />
unable to communicate with the debug logic. If the reset for the design is<br />
implemented as a local reset signal (LSR), using the <strong>Reveal</strong> Logic Analyzer<br />
when the design is reset causes no errors. However, if any reset for the<br />
design uses a global reset (GSR), the <strong>Reveal</strong> debug logic will be reset when<br />
the signal tied to GSR is used. If the design is in reset when you start the<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 5
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> Performance<br />
Performance<br />
<strong>Reveal</strong> Logic Analyzer, the tool will not be able to communicate and will<br />
generate an error message similar to that shown in Figure 2. If the reset<br />
occurs while the <strong>Reveal</strong> Logic Analyzer is waiting for a trigger, the trigger<br />
settings in the debug logic are lost, and you must manually stop the <strong>Reveal</strong><br />
Logic Analyzer.<br />
Figure 2: <strong>Reveal</strong> Logic Analyzer Communication Error Message<br />
When you open the <strong>Reveal</strong> Inserter for an RTL project, it must first parse the<br />
entire design in order to build the design hierarchy and signal list. Normally<br />
this occurs within a few seconds. Very large designs may take significantly<br />
longer.<br />
When you open the <strong>Reveal</strong> Inserter for an EDIF project, it must read and load<br />
the entire design in order to build the design hierarchy and signal list. For very<br />
large designs, this could take several minutes. On these large designs, there<br />
is a delay until the <strong>Reveal</strong> Inserter starts and then a further delay while it<br />
builds the hierarchy and signal list. Although load times may be long, the<br />
delay is approximately the same as that of other tools loading similar-sized<br />
designs.<br />
When you change trigger settings in the <strong>Reveal</strong> Logic Analyzer, the settings<br />
must be downloaded to the debug logic on the FPGA when you press the Run<br />
button. While the debug logic settings are being downloaded, the<br />
Configuring ... message appears in the upper left corner of the window.<br />
The time taken to configure the debug logic depends on how many trigger<br />
units (TUs) and trigger expressions (TEs) are used. For a few TUs and one or<br />
two TEs, the time is usually a few seconds. For a maximum configuration of<br />
16 TUs and 16 TEs on multiple debug logic cores, the time to configure could<br />
take several minutes. The debug logic does not start looking for the triggers<br />
set until the Configuring ... message is gone and the Running Device<br />
... message appears.<br />
Each debug logic core offers an optional trigger-out signal. The <strong>Reveal</strong><br />
triggering logic, which is composed of trigger units and trigger expressions,<br />
offers unique capabilities and flexibility. However, there is a latency of five<br />
sample clocks to the output of the final trigger condition. The <strong>Reveal</strong> Logic<br />
Analyzer software automatically handles this latency delay so that the trigger<br />
point lines up with the correct data when waveforms are displayed in the<br />
Waveform view. The trigger-out signal also has this five-clock latency delay.<br />
When you use the trigger-out signal as an input to another core or as an<br />
external trigger-out signal, the five-sample-clocks delay from the actual trigger<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 6
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> Creating a <strong>Reveal</strong> Logic Analyzer Project<br />
event must be taken into account. Otherwise, the captured data will not line<br />
up with the desired event.<br />
Creating a <strong>Reveal</strong> Logic Analyzer Project<br />
When you create a new <strong>Reveal</strong> Logic Analyzer project, some additional setup<br />
is required that the <strong>Reveal</strong> Inserter does not require. The target board is<br />
expected to be programmed and turned on. When you first start the <strong>Reveal</strong><br />
Logic Analyzer, the cable settings should be set up. Even if the cable has<br />
already been set up in ispVM System, you must specify it in the <strong>Reveal</strong> Logic<br />
Analyzer. If you are using multiple USB cables on the PC, the <strong>Reveal</strong> Logic<br />
Analyzer only recognizes the cable at the USB 0 slot in the 7.0 release of the<br />
software. Other cables are not available. It may be necessary to switch USB<br />
cables to enable the <strong>Reveal</strong> Logic Analyzer to see the target device in this<br />
situation. This limitation will be addressed in a future software release.<br />
As noted in “Sample Clock and Reset” on page 5, the sample clock should be<br />
running and the design should not be in reset if you use the GSR when you<br />
create a new project or open the <strong>Reveal</strong> Logic Analyzer on an existing project.<br />
If the sample clock is not running, the <strong>Reveal</strong> Logic Analyzer cannot detect<br />
that the <strong>Reveal</strong> debug logic is available. When you create or open a project,<br />
the <strong>Reveal</strong> Logic Analyzer checks the debug logic for a signature to make<br />
sure the bitstream matches the design. If the <strong>Reveal</strong> Logic Analyzer cannot<br />
communicate with the debug logic because the sample clock is not running or<br />
the design is in reset, the project creation will fail with an error. If any reset for<br />
the design uses the global reset (GSR), the <strong>Reveal</strong> debug logic will be reset<br />
when the signal tied to GSR is used. If the design is in reset when you start<br />
the <strong>Reveal</strong> Logic Analyzer, the tool will not be able to communicate and will<br />
generate an error message. If the reset occurs while the <strong>Reveal</strong> Logic<br />
Analyzer is waiting for a trigger, the trigger settings in the debug logic are lost,<br />
and you must manually stop the <strong>Reveal</strong> Logic Analyzer.<br />
<strong>Reveal</strong>, unlike ispTRACY, checks both the debug project files and the<br />
bitstream in the FPGA to make sure that they match. The <strong>Reveal</strong> Inserter<br />
generates a unique signature code that is stored in the settings file and is<br />
implemented as hardware in the debug logic core. It prevents you from<br />
looking at the settings read from the design files while trying to debug a<br />
different setup that was downloaded by mistake to the FPGA. However, if you<br />
used the <strong>Reveal</strong> Inserter to change the debug settings, even though the<br />
design has not been re-implemented and programmed into the FPGA, a<br />
signature error similar to that shown in Figure 3 will occur. Most of the debug<br />
settings files, which contain the automatically generated signature, are shared<br />
between the <strong>Reveal</strong> Inserter and the <strong>Reveal</strong> Logic Analyzer. You can change<br />
the settings in the <strong>Reveal</strong> Logic Analyzer without any signature mismatches<br />
occurring. Since the <strong>Reveal</strong> Inserter can change settings that affect the debug<br />
implementation, any changes in the <strong>Reveal</strong> Inserter cause the signature to be<br />
regenerated. Opening the <strong>Reveal</strong> Inserter without changing any settings and<br />
saving the project also causes the signature to be regenerated.<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 7
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> Creating a <strong>Reveal</strong> Logic Analyzer Project<br />
Figure 3: <strong>Reveal</strong> Logic Analyzer Mismatch Error Message<br />
<strong>Reveal</strong> <strong>Troubleshooting</strong> <strong>Guide</strong> 8