18.12.2012 Views

Reveal Troubleshooting Guide - Lattice Semiconductor

Reveal Troubleshooting Guide - Lattice Semiconductor

Reveal Troubleshooting Guide - Lattice Semiconductor

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!