Publication number 16555-97011
First edition, January 1997
For Safety information, Warranties, and Regulatory
information, see the pages behind the Index
Copyright Hewlett-Packard Company 1987, 1990, 1993, 1994, 1997
All Rights Reserved
HP 16554A, HP 16555A, and
HP 16555D State/Timing Logic
Analyzers
ii
In This Book
Programming the HP 16554A/
1
HP 16555A/HP 16555D
This guide, combined with the
HP 16500/16501A Programmer’s
Guide, provides you with the information
needed to program the HP 16554A and
HP 16555A/D logic analyzer modules.
Each module has its own reference to
supplement the mainframe manual since
not all mainframes will be configured with
the same modules.
This manual is organized in three parts.
Part 1 consists of chapters 1 and 2 which
contain general information and
instructions to help you get started.
Chapter 1 also contains:
Mainframe system commands that are
•
frequently used with the logic analyzer
module
HP 16554A/HP 16555A/HP 16555D
•
logic analyzer command tree
Alphabetic command-to-subsystem
•
directory
Chapter 2 contains module-level
commands.
Part 2 consists of chapters 3 through 16
which contain the subsystem commands
for the logic analyzer and chapter 17
which contains information on the
SYSTem:DATA and SYSTem:SETup
commands for this module.
2
3
4
5
6
7
8
9
10
11
12
13
Module Level Commands
MACHine Subsystem
WLISt Subsystem
SFORmat Subsy stem
STRigger (STRace) Subsystem
SLISt Subsystem
SWAVeform Subsystem
SCHart Subsy stem
COMPare Subsystem
TFORmat Subsystem
TTRigger (TTRace) Subsystem
TWAVeform Subsystem
14
TLISt Subsyste m
iii
Part 3, chapter 18, contains program examples of actual tasks that show you
how to get started in programming the HP 16554A and HP 16555A/D logic
analyzers. These examples are written in HP BASIC 6.2; however, the
program concepts can be used in any other popular programming language.
Error messages for the HP 16554A and HP 16555A/D are included in generic
system error messages and are in the HP 16500/16501A Programmer’sGuide.
iv
15
SYMBol Subsystem
16
17
18
SPA Subsystem
DATA and SETup Commands
Programming Examples
Index
v
vi
Contents
Part 1 General Information
1 Programming the HP 16554A/ HP 16555A/HP 16555D
Selecting the Module 1–3
Programming the Logic Analyzer 1–3
Mainframe Commands 1–5
Command Set Organization 1–8
Module Status Reporting 1–12
MESE<N> 1–13
MESR<N> 1–15
Data Format 17–3
SYSTem:DATA 17–4
Section Header Description 17–6
Section Data 17–6
Data Preamble Description 17–7
Acquisition Data Description 17–11
Time Tag Data Description 17–13
SYSTem:SETup 17–13
Contents–8
Part 3 Programming Examples
18 Programming Examples
Making a Timing Analyzer Measurement 18–3
Making a State Analyzer Measurement 18–5
Making a State Compare Analyzer Measurement 18–9
Transferring the Logic Analyzer Configuration 18–14
Checking for Measurement Completion 18–18
Sending Queries to the Logic Analyzer 18–19
Index
Contents
Contents–9
Contents–10
Part 1
1 Introduction to Programming
2 Module Level Commands
General Information
1
Programming the HP 16554A/
HP 16555A/HP 16555D
Introduction
This chapter introduces you to the basic command structure used to
program the logic analyzer. Also included is an example program that
sets up the timing analyzer for a basic timing measurement.
Additional program examples are in chapter 18.
1–2
Programming the HP 16554A/ HP 16555A/HP 16555D
Selecting the Module
Selecting the Module
Before you can program the logic analyzer, you must first "select" it. This
directs your commands to the logic analyzer.
To select the module, use the system command :SELect followed by the
numeric reference for the slot location of the logic analyzer (1 through 10
refering to slots A through J respectively). For example, if the logic analyzer
is in slot E, then the command:
:SELect 5
would select this module. For more information on the select command,
refer to the HP 16500/16501A Programmer’s Guide. It is available through
your HP Sales Office.
Programming the Logic Analyzer
A typical logic analyzer program will do the following:
select the appropriate module
•
name a specified analyzer
•
specify the analyzer type
•
assign pods
•
assign labels
•
sets pod thresholds
•
specify a trigger condition
•
set up the display
•
specify acquisition type
•
start acquiring data
•
1–3
Programming the HP 16554A/ HP 16555A/HP 16555D
Programming the Logic Analyzer
The following example program sets up the logic analyzer to make a simple
timing analyzer measurement.
The three Xs (XXX) after the "OUTPUT" statements in the previous example
refer to the device address required for programming over either HP-IB or
RS-232-C. Refer to your controller manual and programming language
reference manual for information on initializing the interface.
Program Comments
Line 10 selects the logic analyzer in slot C.
Line 20 names machine (analyzer) 1 "TIMING".
Line 30 specifies machine 1 is a timing analyzer.
Line 40 assigns pods 1 and 2 to machine 1.
Line 50 sets up the Timing Format menu by assigning the label COUNT, and
assigning a polarity and channels to the label.
Line 60 selects the trigger pattern for the timing analyzer.
Line 70 sets the range to 100 ns (10 times s/div).
Line 80 changes the onscreen display to the Timing Waveforms menu.
Line 90 inserts the label "COUNT" in the Timing Waveform menu.
Line 100 specifies the Single run mode.
Line 110 starts data acquisition.
For more information on the specific logic analyzer commands, refer to
chapters 2 through 17.
1–4
Programming the HP 16554A/ HP 16555A/HP 16555D
Mainframe Commands
Mainframe Commands
These commands are part of the HP 16500/16501A mainframe system and
are mentioned here only for reference. For more information on these
commands, refer to the HP 16500/16501A Programmer’s Guide.
CARDcage? Query
The CARDcage query returns a string of integers which identifies the
modules that are installed in the mainframe. The returned string is in two
parts. The first five two-digit numbers identify the card type. The
identification number for the HP 16554A and HP 16555A/D logic analyzers is
34. A "−1" in the first part of the string indicates no card is installed in the
slot.
The five single-digit numbers in the second part of the string indicate which
card has the controlling software for the module; that is, where the master
card is located.
Example
12,11,−1,−1,34,2,2,0,0,5
A returned string of 12,11,-1,-1,34,2,2,0,0,5 means that an
oscilloscope time base card (ID number 11) is loaded in slot B and the
oscilloscope acquisition card (ID number 12) is loaded in slot A. The next
two slots (C and D) are empty (−1). Slot E contains a logic analyzer module
(ID number 34).
The next group of numbers (2,2,0,0,5) indicate that a two-card module is
installed in slots A and B with the master card in slot B. The "0" indicates an
empty slot, or the module software is not recognized or is not loaded. The
last digit (5) in this group indicates a one-card module is loaded in slot E.
Complete information for the CARDcage query is in the HP 16500/16501AProgrammer’s Guide.
1–5
Programming the HP 16554A/ HP 16555A/HP 16555D
Mainframe Commands
MENU Command/query
The MENU command selects a new displayed menu. The first parameter (X)
specifies the desired module. The optional, second parameter specifies the
desired menu in the module. The second parameter defaults to 0 if it is not
specified. The query returns the currently selected and displayed menu.
For the HP 16554A/HP 16555A/HP 16555D Logic Analyzers:
X,0 — State/Timing
•
Configuration
X,1 — Format 1
•
X,2 — Format 2
•
X,3 — Trigger 1
•
X,4 — Trigger 2
•
X,5 — Waveform 1
•
X,6 — Waveform 2
•
X,7 — Listing 1
•
If a machine is turned off, its menus are not available. The Mixed Display is
available only when one or both analyzers are state analyzers.
SELect Command/query
The SELect command selects which module or intermodule will have parser
control. SELect 0 selects the intermodule, SELect 1 through 5 selects
modules A through E respectively. Values −1 and −2 select software options
1 and 2. The SELect query returns the currently selected module.
STARt Command
The STARt command starts the specified module. If the specified module is
configured for intermodule (group run), STARt will start all modules
configured as part of the intermodule run.
X,8 — Listing 2
•
X,9 — Mixed Display
•
X,10 — Compare 1
•
X,11 — Compare 2
•
X,12 — Chart 1
•
X,13 — Chart 2
•
X,14 — SPA 1
•
X,15 — SPA 2
•
1–6
Programming the HP 16554A/ HP 16555A/HP 16555D
Mainframe Commands
STOP Command
The STOP command stops the specified module. If the specified module is
configured as part of an intermodule run, STOP will stop all associated
modules.
STARt and STOP are overlapped commands. Overlapped commands allow
execution of subsequent commands while the logic analyzer operations
initiated by the overlapped command are still in progress. For more
information, see *OPC and *WAI commands in Chapter 5 of the
HP 16500/16501AProgrammer’s Guide.
RMODe Command/query
The RMODe command specifies the run mode (single or repetitive) for a
module. If the selected module is configured for intermodule, the
intermodule run mode will be set by this command. The RMODe query
returns the current setting.
SYSTem:ERRor? Query
The SYSTem:ERRor query returns the oldest error in the error queue. In
order to return all the errors in the error queue, a simple FOR/NEXT loop can
be written to query the queue until all errors are returned. Once all errors
are returned, the query will return zeros.
SYSTem:PRINt Command/query
The SYSTem:PRINt command initiates a print of the screen or listing buffer
over the current printer communication interface. The SYSTem:PRINt query
sends the screen or listing buffer data over the current controller
communication interface.
MMEMory Subsystem
The MMEMory Subsystem provides access to both internal disc drives for
loading and storing configurations.
INTermodule Subsystem
The INTermodule Subsystem commands are used to specify intermodule
arming between multiple modules.
1–7
Programming the HP 16554A/ HP 16555A/HP 16555D
Command Set Organization
Command Set Organization
The command set for the HP 16554A/HP 16555A/HP 16555D is divided into
module-level commands and subsystem commands. Module-level commands
are listed in Chapter 2, "Module Level Commands" and each of the subsystem
commands are covered in their individual chapters starting with Chapter 3,
"MACHine Subsystem."
Each of these chapters contains a description of the subsystem, syntax
diagrams, and the commands in alphabetical order. The commands are
shown in long form and short form using upper and lowercase letters. For
example, LABel indicates that the long form of the command is LABEL and
the short form is LAB. Each of the commands contain a description of the
command and its arguments, the command syntax, and a programming
example.
Figure 1-1 on the following page shows the command tree for the
HP 16554A/HP 16555A/HP 16555D logic analyzer module. The (x) following
the SELect command at the top of the tree represents the slot number where
the logic analyzer module is installed. The number may range from 1 through
10, representing slots A through J, respectively.
Each module reports its status to the Module Event Status Register
(MESR<N>), which in turn reports to the Combined Event Status Register
(CESR) in the HP 16500/16501A mainframe (see HP 16500/16501AProgrammer’s Guide chapter 6). The Module Event Status Register is
enabled by the Module Event Status Enable Register (MESE<N>).
The MESE<N> and MESR<N> instructions are not used in conjunction with
the SELect command, so they are not listed in the HP 16554A/HP 16555A/
HP 16555D’s command tree.
The following descriptions of the MESE<N> and MESR<N> instructions
provide the module specific information needed to enable and interpret the
contents of the registers.
Module Status Reporting
1–12
MESE<N>
Command:MESE<N><enable_mask>
The MESE<N> command sets the Module Event Status Enable register bits.
The MESE register contains a mask value for the bits enabled in the MESR
register. A one in the MESE will enable the corresponding bit in the MESR, a
zero will disable the bit.
The first parameter <N> specifies the module. The second parameter
specifies the enable value.
Refer to table 1-2 for information about the Module Event Status register bits,
bit weights, and what each bit masks for the module. Complete information
for status reporting is in chapter 6 of the HP 16500/16501A Programmer’sGuide manual.
<N>{1|2|3|4|5|6|7|8|9|10} number of slot in which the module resides. 1
refers to slot A, and so on.
Programming the HP 16554A/ HP 16555A/HP 16555D
MESE<N>
<enable_mask>integer from 0 to 255
ExampleOUTPUT XXX;":MESE5 1"
Query:MESE<N>?
The MESE query returns the current setting.
Returned Format
Example 10 OUTPUT XXX;":MESE5?"
[:MESE<N>]<enable_mask><NL>
20 ENTER XXX; Mes
30 PRINT Mes
40 END
1–13
Programming the HP 16554A/ HP 16555A/HP 16555D
MESE<N>
Table 1-2Module Event Status Enable Register (A "1" enables the MESR bit)
BitWeightEnables
7128Not used
664Not used
532Not used
416Not used
38Pattern searches failed
24Trigger found
12RNT-Run until satisfied
01MC-Measurement complete
The Module Event Status Enable Register contains a mask value for the bits
to be enabled in the Module Event Status Register (MESR). A one in the
MESE enables the corresponding bit in the MESR, and a zero disables the bit.
1–14
MESR<N>
Query:MESR<N>?
The MESR<N> query returns the contents of the Module Event Status
register. When you read the MESR, the value returned is the total bit weights
of all bits that are set at the time the register is read. Reading the register
clears the Module Event Status Register.
Table 1-3 shows each bit in the Module Event Status Register and its bit
weight for this module.
The parameter 1 through 10 refers to the module in slot A through J
respectively.
Returned Format
<status>integer from 0 to 255
[MESR<N>]<status><NL>
<N>{1|2|3|4|5|6|7|8|9|10}number of slot in which the module resides
Programming the HP 16554A/ HP 16555A/HP 16555D
MESR<N>
Example 10 OUTPUT XXX;":MESR5?"
20 ENTER XXX; Mer
30 PRINT Mer
40 END
1–15
Programming the HP 16554A/ HP 16555A/HP 16555D
MESR<N>
Table 1-3Module Event Status Register
BitWeightCondition
7128Not used
664Not used
532Not used
416Not used
381 = One or more pattern searches failed
241 = Trigger found
121 = Run until satisfied
011 = Measurement complete
0 = Pattern search es did not fail
0 = Trigger not found
0 = Run until not satisf ied
0 = Measurement not complete
1–16
2
Module Level Commands
Introduction
The logic analyzer module level commands access the global
functions of the HP 16554A/HP 16555A/HP 16555D logic analyzer
module. These commands are:
The ARMLine command selects which machine generates the arm out signal
on the IMB (intermodule bus). This command is only valid when two
analyzers are on. However, the query is always valid.
<N>{1|2}
ExampleOUTPUT XXX;":ARMLIN E MACHINE1"
Query:ARMLine?
If the analyzer is set up for OR’d triggering, then the ARMLine query returns
an empty string. This cannot be used for setting up OR’d triggering.
Returned Format[:ARMLine]{MACHine<N>|}<NL>
Module Level Commands
ARMLine
ExampleOUTPUT XXX;":ARMLin e?"
DBLock
Command:DBL ock {P ACKe d | UN Pack ed}
The DBLock command specifies the data block format that is contained in
the response from a :SYSTem:DATA? query. See Chapter 17 for more
information on the :SYSTem:DATA command and query.
The PACKed option (default) uploads data in a compressed format. This
option is used to upload data for archiving, or for reloading back into the
analyzer. When an analyzer configuration is saved to disk, the PACKed data
format is always used (regardless of the current DBLock selection).
2–5
Module Level Commands
MACHine
The UNPacked option uploads data in a format that is easy to interpret and
process. The UNPacked format cannot be downloaded back into the analyzer.
ExampleOUTPUT XXX;":DBLOCK PACKED"
Query:DBLock?
The DBLock query returns the current data block format selection.
Returned Format
ExampleOUTPUT XXX;":DBLock ?"
[:DBLock]{PACKed | UNPacked}<NL>
MACHine
Command:MACHine<N>
The MACHine command selects which of the two machines (analyzers) the
subsequent commands or queries will refer to. MACHine is also a subsystem
containing commands that control the logic analyzer system level functions.
Examples include pod assignments, analyzer names, and analyzer type. See
chapter 3 for details about the MACHine subsystem.
<N>{1|2}
ExampleOUTPUT XXX;":MACHIN E1:NAME ’DRA MTEST’"
2–6
SPA
Command:SPA<N>
The SPA command selects which of the two analyzers the subsequent
commands or queries will refer to. SPA is also a subsystem containing
commands that control the logic analyzer SPA functions. See chapter 16 for
details about the SPA subsystem.
<N>{1|2}
ExampleOUTPUT XXX;":SPA1:M ODE OVERVIEW "
WLISt
Module Level Commands
SPA
Command:WLISt
The WLISt selector accesses the commands used to place markers and query
marker positions in Timing/State Mixed mode. The WLISt subsystem also
contains commands that allows you to insert waveforms from other
time-correlated machines and modules. The details of the WLISt subsystem
are in chapter 4.
9 SCHart Subsystem
10 COMPare
11 TFORmat Subsystem
12 TTRigger (TTRace) Subsystem
13 TWAVeform Subsystem
14 TLISt Subsystem
15 SYMBol Subsystem
16 SPA Subsystem
17 DATA and SETup Commands
Commands
3
MACHine Subsystem
Introduction
The MACHine subsystem contains the commands that control the
machine level of operation of the logic analyzer. Some of the functions
are normally found in the Trigger menu. These commands are:
• ARM
• LEVelarm
The functions of three of these commands reside in the State/Timing
Configuration menu. These commands are:
• ASSign
• NAME
• TYPE
Even though the functions of the following commands reside in the
Format menu they are at the machine level of the command tree and
are therefore located in the MACHine subsystem. These commands
are:
• REName
• RESource
3–2
Figure 3-1
MACHine Subsystem
Machine Subsystem Syntax Diagram
3–3
MACHine Subsyst em
MACHine
Table 3-1 Machine Subsystem Parameter Values
ParameterValue
arm_source
pod_list
pod_numinteger from 1 to 12
arm_levelinteger from 1 to 11 representing sequence level
machine_names tring of up to 10 alphanumeric characters
res_id
new_textstring of up to 8 alphanumeric characters
state_terms
res_terms
The MACHine <N> selector specifies which of the two analyzers (machines)
available in the module the commands or queries following will refer to.
Because the MACHine<N> command is a root level command, it will normally
appear as the first element of a compound header.
<N>{1|2} (the machine number)
ExampleOUTPUT XXX; ":MACHINE1:NAME ’TIMING’"
3–4
ARM
Command:MAC Hine {1|2 }: ARM <a rm_s ou rce>
The ARM command specifies the arming source of the specified analyzer
(machine). The RUN option disables the arm source. For example, if you do
not want to use either the intermodule bus or the other machine to arm the
current machine, you specify the RUN option.
If you are using an HP 16500C mainframe, you can set up OR’d Triggering by
arming the module from INTermodule when intermodule is set to Group Run
with OR TRIGGER. See the HP 16500C Programmer’s Guide for details.
<arm_source>{RUN|INTermodule|MACHine{1|2}}
ExampleOUTPUT XXX;":MACHINE1:ARM MACHINE2"
MACHine Subsystem
ARM
Query:MACHine{1|2}:ARM?
The ARM query returns the source that the current analyzer (machine) will
be armed by.
Returned Format[:MACHin e{ 1| 2}:ARM ] <arm_sourc e>
ExampleOUTPUT XXX;":MACHIN E1:ARM?"
3–5
MACHine Subsyst em
ASSign
ASSign
Command:MACHine{1|2}:ASSign <pod_list>
The ASSign command assigns pods to a particular analyzer (machine). The
ASSign command will assign two pods for each pod number you specify
because pods must be assigned to analyzers in pairs. NONE clears all pods
from the specified analyzer (machine) and places them in the "unassigned"
category.
If you specify a pod number greater than currently available, the logic
analysis system generates an "Argument out of range" error.
<pod_list>{NONE | <pod >#[, <pod >#]...}
<pod>#an integer from 1 to 12
ExampleThis example assigns pod pairs 1/2 and 5/6 to machine 1:
OUTPUT XXX;":MACHINE1:ASSIGN 5, 2, 1"
Query:MACHine{1|2}:ASSign?
The ASSign query returns which pods are assigned to the current analyzer
(machine).
Returned Format[:MACHine{1|2}:ASSign] <pod_list><NL>
ExampleOUTPUT XXX;":MACHIN E1:ASSIGN? "
3–6
LEVelarm
Command:MACHine{1|2}:LEVelarm <arm_level>
The LEVelarm command allows you to specify the sequence level for a
specified machine that will be armed by the Intermodule Bus or the other
machine. This command is only valid if the specified machine is on and the
arming source is not set to RUN with the ARM command.
<arm_level>integer from 1 to 11 representing sequence level
ExampleOUTPUT XXX;":MACHIN E1:LEVELAR M 2"
Query:MACHine{1|2}:LEVelarm?
MACHine Subsystem
LEVelarm
The LEVelarm query returns the current sequence level receiving the arming
for a specified machine.
Returned Format[:MACHine{1|2}:LEVelarm] <arm_level><NL>
ExampleOUTPUT XXX;":MACHIN E1:LEVELAR M?"
3–7
MACHine Subsyst em
NAME
NAME
Command:MACHine{1|2}:NAME <machine_name>
The NAME command allows you to assign a name of up to 10 characters to a
particular analyzer (machine) for easier identification. Spaces are valid
characters.
<machine_name>string of up to 10 alphanumeric characters
ExampleOUTPUT XXX;":MACHIN E1:NAME ’DRA M TEST’"
Query:MACHine{1|2}:NAME?
The NAME query returns the current analyzer name as an ASCII string.
The REName command allows you to assign a specific name of up to eight
characters to terms A through J, Range 1 and 2, Timer 1 and 2, and Edge 1
and 2. The terms do not have to be assigned to the specified machine. The
DEFault option sets all resource term names to the default names assigned
when turning on the instrument.
3–8
MACHine Subsystem
<res_id>{<state_terms>|H|J} for state analyzer
{<state_terms>|EDGE{1|2}} for timing analyzer
<new_text>string of up to 8 alphanumeric characters
The REName query returns the current names for specified terms assigned
to the specified analyzer.
Returned Format[:MACHine{1|2}:RENAME] <res_id>,<new_text><NL>
ExampleOUTPUT XXX;":MACHINE1:RENAME? D"
RESource
RESource
Command:MACHine{1|2} :RESourc e {<re s_id>[,< res_id>] ...}
The RESource command allows you to assign resource terms A through G
and I, Range 1 and 2, and Timer 1 and 2 to a particular analyzer.
In the timing analyzer only, two additional resource terms are available.
These terms are Edge 1 and 2. These terms are always assigned to the
machine that is configured as the timing analyzer.
In state analyzers that are not configured for high speed, terms H and J are
also available. H and J are not available to timing or high-speed analyzers.
<res_id><state_terms> for high-speed state analyzer or
{<state_terms|H|J} for 100-MHz state analyzer or
{<state_terms>|EDGE{1|2}} for timing analyzer
ExampleOUTPUT XXX;":MACHIN E1:RESOURC E A,C,RANGE1"
Query:MACHine{1|2}:RESOURCE?
The RESource query returns the current resource terms assigned to the
specified analyzer. If no resource terms are assigned, no <res_id> is returned.
Returned Format[:MACHine{1|2 }:RESOURCE ] <res_id>[, <res_id>,...]< NL>
ExampleOUTPUT XXX;":MACHIN E1:RESOURC E?"
TYPE
Command:MACHine{1|2}:TYPE <analyzer type>
The TYPE command specifies what type a specified analyzer (machine) will
be. The analyzer types are state or timing. State Compare (COMPare) and
SPA are considered to be state analyzers because they use an external clock,
but need to specified as COMPare or SPA.
The TYPE command also allows you to turn off a particular machine.
Only one timing analyzer can be specified at a time.
<analyzer
type>
ExampleOUTPUT XXX;":MACHIN E1:TYPE STAT E"
{OFF|COMPare|SPA|STATe|TIMing}
3–10
Query:MACHine{1|2}:TYPE?
The TYPE query returns the current analyzer type for the specified analyzer.
Returned Format
[:MACHine{1|2}:TYPE] <analyzer type><NL>
ExampleOUTPUT XXX;":MACHIN E1:TYPE?"
MACHine Subsystem
TYPE
3–11
3–12
4
WLISt Subsystem
Introduction
The commands in the WLISt (Waveforms/LISting) subsystem control
the X and O marker placement on the waveforms portion of the
Timing/State mixed mode display. The XSTate and OSTate queries
return what states the X and O markers are on. Because the markers
can only be placed on the timing waveforms, the queries return what
state (state acquisition memory location) the marked pattern is stored
in.
In order to have mixed mode, one machine must be a state analyzer
with time tagging on (use MACH ine< N>:S TRigger: TAG TIME).
• DELay
• INSert
• LINE
• MINus
• OSTate
• OTIMe
• OVERlay
• PLUS
• RANGe
• REMove
• XOTime
• XSTate
• XTIMe
4–2
Figure 4-1
WLISt Subsystem
WLISt Subsyst em Syntax Diagram
4–3
WLISt Subsystem
WLISt
Table 4-1WLISt Subs ystem Parameter Values
ParameterValue
delay_valuereal number between -2500 s and +2 500 s
module_spec
bit_idinteger from 0 to 31
label_names tring of up to 6 alphanumeric characters
line_num_mid_screeninteger from -516096 to +516096 (HP 16554A) or -1040384 to
waveform
acquisition_spec
time_valuereal number
time_rangereal number between 10 ns and 10 ks
{1|2|3|4|5|6|7|8|9|10} (slot where master card
is installed)
+1040384 (HP 16555A) or -2080768 to +2080768 (HP 16555D)
string containing <acquisition_spec>{1|2}
{A|B|C|D|E|F|G|H|I|J}
WLISt
Selector:WLISt
The WLISt (Waveforms/LISting) selector is used as a part of a compound
header to access the settings normally found in the Mixed Mode menu.
Because the WLISt command is a root-level command, it will always appear
as the first element of a compound header.
The WLISt subsystem is only available when one or more state analyzers with
time tagging on are specified.
Example
OUTPUT XXX;":WLIST: XTIME 40.0E− 6"
4–4
DELay
Command:WLISt:DELay <delay_value>
The DELay command specifies the amount of time between the timing
trigger and the horizontal center of the the timing waveform display. The
allowable values for delay are −2500 s to +2500 s.
WLISt Subsystem
DELay
<delay_value>
Example
Query:WLISt:DELay?
Returned Format[:WLISt:DELay ] <delay_val ue><NL>
ExampleOUTPUT XXX;":WLIST: DELAY?"
real number between −2500 s and +2500 s
OUTPUT XXX;":WLIST: DELAY 100E−6"
The DELay query returns the current time offset (delay) value from the
trigger.
4–5
WLISt Subsystem
INSert
INSert
Command:WLI St:I NSer t [< modu le_s pe c>,] <lab el _nam e>
[,{< bit_ id>| OV ERla y|AL L} ]
The INSert command inserts waveforms in the timing waveform display. The
waveforms are added from top to bottom up to a maximum of 96 waveforms.
Once 96 waveforms are present, each time you insert another waveform, it
replaces the last waveform.
Time-correlated waveforms from the oscilloscope and another logic analyzer
module can also be inserted in the logic analyzer’s timing waveforms display.
Oscilloscope waveforms occupy the same display space as three logic
analyzer waveforms. When inserting waveforms from the oscilloscope or
another logic analyzer module, the optional first parameter must be used,
which is the module specifier. 1 through 10 corresponds to modules A
through J. If you do not specify the module, the selected module is assumed.
The second parameter specifies the label name that will be inserted. The
optional third parameter specifies the label bit number, overlay, or all. If a
number is specified, only the waveform for that bit number is added to the
screen.
If you specify OVERlay, all the bits of the label are displayed as a composite
overlaid waveform. If you specify ALL, all the bits are displayed sequentially.
If you do not specify the third parameter, ALL is assumed.
<module_spec>{1|2|3|4|5|6|7|8|9|10}
<label_name>string of up to 6 alphanumeric characters
<bit_id>integer from 0 to 31
ExampleOUTPUT XXX;":WLIST:INSERT 3, ’WAVE’,9"
4–6
Inserting Oscilloscope Waveforms
WLISt Subsystem
LINE
Command
<module_spec>{1|2|3|4|5|6|7|8|9|10} slot in which master card is installed
<label_name>string of one alpha and one numeric character, identical to that on the
ExampleOUTPUT XXX;":WLIST:INSERT 3, ’C1’"
:WLI St:I NSer t <m odul e_sp ec >,<l abel _n ame>
This inserts a waveform from an oscilloscope to the timing waveforms display.
oscilloscope waveform display.
LINE
Command:WLI St:L INE <l in e_nu m_mi d_ scre en>
The LINE command allows you to scroll the timing analyzer listing vertically.
The command specifies the state line number relative to the trigger. The
analyzer then highlights the specified line at the center of the screen.
<line_num_mid_
screen>
integer from -516096 to +516096 (HP 16554A)
or -1040384 to +1040384 (HP 16555A)
or -2080768 to +2080768 (HP 16555D).
ExampleOUTPUT XXX;":WLIST:LINE 0"
4–7
WLISt Subsystem
MINus
Query:WLISt:LINE?
The LINE query returns the line number for the state currently in the data
listing roll box at center screen.
Returned Format[:WLISt: LI NE ] <line_ num_mid_sc reen><NL>
The MINus command inserts time-correlated A−B (A minus B) oscilloscope
waveforms on the screen. The first parameter is the module specifier where
the oscilloscope module resides, where 1 through 10 refers to slots A through
J. The next two parameters specify which waveforms will be subtracted from
each other.
MINus only inserts oscilloscope waveforms. It cannot be used with analyzer
waveforms.
<module_spec>{1|2|3|4|5|6|7|8|9|10}(slot where master card is located)
{A|B|C|D|E|F|G|H|I|J} (slot where acquisition card is located)
4–8
OSTate
Query:WLISt:OSTate?
The OSTate query returns the state where the O Marker is positioned. If data
is not valid, the query returns 2147483647.
Returned Format[:WLISt: OS Ta te] <sta te_num><NL >
<state_num>integer
ExampleOUTPUT XXX;":WLIST: OSTATE?"
OTIMe
Command:WLISt:OTIMe <time_value>
WLISt Subsystem
OSTate
The OTIMe command positions the O Marker on the timing waveforms in the
mixed mode display. If the data is not valid, the command performs no
action.
<time_value>real number
Example
OUTPUT XXX;":WLIST: OTIME 40.0E− 6"
4–9
WLISt Subsystem
OVERlay
Query:WLISt:OTIMe?
The OTIMe query returns the O Marker position in time. If data is not valid,
the query returns 9.9E37.
Returned Format[:WLISt:OTIMe ] <time_valu e><NL>
ExampleOUTPUT XXX;":WLIST: OTIME?"
OVERlay
Command:WLISt:OVERla y <module_ numb er>,<lab el>
[,<label>]...
The OVERlay command overlays two or more oscilloscope waveforms and
adds the resultant waveform to the current waveform display. The first
parameter of the command syntax specifies which slot contains the
oscilloscope time base card. The next parameters are the labels of the
waveforms that are to be overlaid.
Overlay only inserts os cilloscope waveforms. It can not be used with analyzer
waveforms.
<module_spec>{1|2|3|4|5|6|7|8|9|10}(slot where master card is located)
The PLUS command inserts time-correlated A+B oscilloscope waveforms on
the screen. The first parameter specifies which slot is the oscilloscope
module. 1 through 10 refers to slots A through J. The next two parameters
specify which waveforms will be added to each other.
PLUS only inserts oscilloscope waveforms. It canno t be used with analyzer
waveforms.
<module_spec>{1|2|3|4|5|6|7|8|9|10} (slot where master card is located)
{A|B|C|D|E|F|G|H|I|J} (slot where acquisition card is located)
4–11
WLISt Subsystem
RANGe
RANGe
Command:WLISt:RANGe <time_value>
The RANGe command specifies the full-screen time in the timing waveform
menu. It is equivalent to ten times the seconds per division setting on the
display. The allowable values for RANGe are from 10 ns to 10 ks.
<time_range>real number between 10 ns and 10 ks
Example
Query:WLISt:RANGe?
Returned Format
ExampleOUTPUT XXX;":WLIST: RANGE?"
OUTPUT XXX;":WLIST: RANGE 100E−9"
The RANGe query returns the current full-screen time.
[:WLISt:RANGe] <tim e_value><N L>
REMove
Command:WLISt:REMove
The REMove command deletes all waveforms from the display.
ExampleOUTPUT XXX;":WLIST: REMOVE"
4–12
XOTime
Query:WLISt:XOTime?
The XOTime query returns the time from the X marker to the O marker. If
data is not valid, the query returns 9.9E37.
Returned Format[:WLISt: XO Ti me] <tim e_value><N L>
<time_value>real number
ExampleOUTPUT XXX;":WLIST: XOTIME?"
XSTate
Query:WLISt:XSTate?
WLISt Subsystem
XOTime
The XSTate query returns the state where the X Marker is positioned. If data
is not valid, the query returns 2147483647.
Returned Format[:WLISt: XS Ta te] <sta te_num><NL >
<state_num>integer
ExampleOUTPUT XXX;":WLIST: XSTATE?"
4–13
WLISt Subsystem
XTIMe
XTIMe
Command:WLISt:XTIMe <time_value>
The XTIMe command positions the X Marker on the timing waveforms in the
mixed mode display. If the data is not valid, the command performs no
action.
<time_value>real number
Example
Query:WLISt:XTIMe?
Returned Format[:WLISt:XTIMe ] <time_valu e><NL>
ExampleOUTPUT XXX;":WLIST: XTIME?"
OUTPUT XXX;":WLIST: XTIME 40.0E− 6"
The XTIMe query returns the X Marker position in time. If data is not valid,
the query returns 9.9E37.
4–14
5
SFORmat Subsystem
Introduction
The SFORmat subsystem contains the commands available for the
State Format menu in the HP 16554A/HP 16555A/HP 16555D logic
analyzer modules. These commands are:
• CLOCk
• LABel
• MASTer
• MODE
• MOPQual
• MQUal
• REMove
• SETHold
• SLAVe
• SOPQual
• SQUal
• THReshold
5–2
Figure 5-1
SFORmat Subsy stem
SFORmat Subsystem Syntax Diagram
5–3
Figure 5-1 (continued)
SFORmat Subsystem
SFORmat Subsystem Syntax Diagram (continued)
5–4
Table 5-1SFORmat Subsystem Parameter Values
ParameterValue
<N> an integer from 1 to 12
label_namestring of up to 6 alphanumeric characters
polarity
clock_bitsformat (integer from 0 to 65535) for a clock (clocks are assigned
upper_bitsformat (integer from 0 to 65535) for a pod (pods are assigned in
lower_bitsformat (integer from 0 to 65535) for a pod (po ds are assigned in
clock_id
clock_spec
clock_pair_id
qual_operation
qual_num
qual_level
pod_numan integer fro m 1 to 12
set_hold_value
valuevoltage (real number) -6.00 to +6.00
The SFORmat (State Format) selector is used as a part of a compound
header to access the settings in the State Format menu. It always follows the
MACHine selector because it selects a branch directly below the MACHine
level in the command tree.
The CLOCk command selects the clocking mode for a given pod when the
pod is assigned to the state analyzer. When the MASTer option is specified,
the pod will sample all channels on the master clock. When the SLAVe option
is specified, the pod will sample all channels on the slave clock. When the
DEMultiplex option is specified, only one pod of a pod pair can acquire data.
The bits of the selected pod will be clocked by the demultiplex master for
labels with bits assigned under the Master pod. The same bits will be clocked
by the demultiplex slave for labels with bits assigned under the Slave pod.
The master clock always follows the slave clock when both are used.
The LABel command allows you to specify polarity and assign channels to
new or existing labels. If the specified label name does not match an existing
label name, a new label will be created.
The order of the pod-specification parameters is significant. The first one
listed will match the highest-numbered pod assigned to the machine you’re
using. Each pod specification after that is assigned to the next highestnumbered pod. This way the specifications match the left-to-right
descending order of the pods you see on the Format display. Not including
enough pod specifications results in the lowest numbered pod(s) being
assigned a value of zero (all channels excluded). If you include more pod
specifications than there are pods for that machine, the extra ones will be
ignored. However, an error is reported any time more than 22 pod
specifications are listed.
The polarity can be specified at any point after the label name.
Because pods contain 16 channels, the format value for a pod must be
between 0 and 65535 (2
each bit will correspond to a single channel. A "1" in a bit position means the
associated channel in that pod is assigned to the label. A "0" in a bit position
means the associated channel in that pod is excluded from the label. Leading
zeroes may be omitted. For example, assigning #B1111001100 is equivalent
to entering "......****..**.." through the touchscreen.
A label can not have a total of more than 32 channels assigned to it.
16
−1). When giving the pod assignment in binary,
LABel
5–7
SFORmat Subsystem
LABel
<name>string of up to 6 alphanumeric characters
<polarity>{POSitive | NEGative}
<clock_bits>format (integer from 0 to 65535) for a clock (clocks are assigned in
decreasing order)
<upper_bits>
<lower_bits>
format (integer from 0 to 65535) for a pod (pods are assigned in decreasing
order)
The LABel query returns the current specification for the selected (by name)
label. If the label does not exist, nothing is returned. The polarity is always
returned as the first parameter. Numbers are always returned in decimal
format. Label names are case-sensitive.
The MASTer clock command allows you to specify a master clock for a given
machine. The master clock is used in all clocking modes (Master, Slave, and
Demultiplexed). Each command deals with only one clock (J,K,L,M);
therefore, a complete clock specification requires four commands, one for
each clock. Edge specifications (RISing, FALLing, or BOTH) are ORed.
The MODE command places an HP 16555 state analyzer in either 100 MHz
(normal) or 110 MHz (fast) mode. The HP 16554A has only one state
analysis mode, 70 MHz. In 110-MHz mode, the h and j resource terms are not
available.
ExampleOUTPUT XXX;":MACHIN E2:SFORMAT :MODE NORM"
Query:MACHine{1|2}:SFORmat:MODE?
The MODE query is valid for both the HP 16554 and HP 16555.
Returned Format
[:MACHine{1|2}:SFORmat:MODE] {NORMal|FAST}<NL>
ExampleOUTPUT XXX;":MACHIN E2:SFORMAT :MODE?"
5–10
SFORmat Subsystem
MOPQual
Command:MAC Hine {1|2 }: SFOR mat: MO PQua l <clo ck _pai r_id >,
<qua l_op erat io n>
The MOPQual (master operation qualifier) command allows you to specify
either the AND or the OR operation between master clock qualifier pair 1/2,
or between master clock qualifier pair 3/4. For example, you can specify a
master clock operation qualifier 1 AND 2.
The SETHold (setup/hold) command allows you to set the setup and hold
specification for the state analyzer.
Even though the command requires integers to specify the setup and hold,
the query returns the current settings in a string. For example, if you send
the integer 0 for the setup and hold value, the query will return 3.5/0.0 ns as
an ASCII string when you have one clock and one edge specified.
5–13
SFORmat Subsystem
SETHold
<pod_num>an integer from 1 to 12
<set_hold_
value>
Table 5-2
integer {0|1|2|3|4|5|6|7|8|9} representing the following setup and
hold values:
Setup and hold values
For one clock and one edgeFor one cloc k and both edgesMultiple Clocks
The SLAVe clock command allows you to specify a slave clock for a given
machine. The slave clock is only used in the Slave and Demultiplexed
clocking modes. Each command deals with only one clock (J,K,L,M);
therefore, a complete clock specification requires four commands, one for
each clock. Edge specifications (RISing, FALLing, or BOTH) are ORed.
When slave clock is being used at least one edge must be specified.
Command:MAC Hine {1|2 }: SFOR mat: SO PQua l <clo ck _pai r_id >,
<qua l_op erat io n>
The SOPQual (slave operation qualifier) command allows you to specify
either the AND or the OR operation between slave clock qualifier pair 1/2, or
between slave clock qualifier pair 3/4. For example you can specify a slave
clock operation qualifier 1 AND 2.
The THReshold command allows you to set the voltage threshold for a given
pod to ECL, TTL, or a specific voltage from −6.00 V to +6.00 V in 0.05 volt
increments.
The THReshold query returns the current threshold for a given pod.
[:MACHine{1|2}:SFORmat:THReshold<N>] <value><NL>
5–18
6
STRigger (STRace) Subsystem
Introduction
The STRigger subsystem contains the commands available for the
State Trigger menu in the HP 16554A/HP 16555A/HP 16555D logic
analyzer modules. The State Trigger subsystem will also accept the
STRace selector as used in previous HP 16500-Series logic analyzer
modules to eliminate the need to rewrite programs containing STRace
as the selector keyword. The STRigger subsystem commands are:
• ACQuisition
• BRANch
• CLEar
• FIND
• MLENgth
• RANGe
• SEQuence
• STORe
• TAG
• TAKenbranch
• TCONtrol
• TERM
• TIMER
• TPOSition
6–2
Figure 6-1
STRigger (STRace) Subsystem
STRigger Subsystem Syntax Diagram
6–3
Figure 6-1 (continued)
STRigger (STRace) Subsystem
STRigger Subsystem Syntax Diagram (continued)
6–4
Table 6-1STRigger Subsystem Parameter Values
ParameterValue
branch_qualifier
qualifier see "Qualifier" on page 6–6
to_lev_numinteger from 1 to last level
proceed_qualifier
occurrencenumber from 1 to 1048575
label_namestring of up to 6 alphanumeric characters
start_pattern
stop_pattern
num_of_levelsinteger from 2 to 12
lev_of_triginteger from 1 to (number of existing sequence lev els - 1)
store_qualifier
state_tag_qualifier
timer_num
timer_value400 ns to 500 seconds
term_id
pattern
post_valueinteger from 0 to 100 representing percentage
memory_length
The qualifier for the state trigger subsystem can be terms A through J, Timer
1 and 2, and Range 1 and 2. In addition, qualifiers can be the NOT boolean
function of terms, timers, and ranges. The qualifier can also be an expression
or combination of expressions as shown below and figure 6-2, "Complex
Qualifier," on page 6-10.
The following parameters show how qualifiers are specified in all commands
of the STRigger subsystem that use <qualifier>.
<qualifier>
{ "ANYSTATE" | "NOSTATE" | "<expression>" }
<expression>{<ex pr es sion1a >|<express ion1b>|<ex pressi on1a> OR
<expression1b>|<expression1a> AND <expression1b>}
<expression1a>{<expression1a_term>|(<expression1a_term>[ OR
<expression1a_term>]* )|(<expression1a_term>[ AND
<expression1a_ term>]* )}
<term3a>{ A | NOTA }
<term3b>{ B | NOTB }
<term3c>{ C | NOTC }
<term3d>{ D | NOTD }
<term3e>{ E | NOTE }
<term3f>{ F | NOTF }
<term3g>{ G | NOTG }
<term3h>{ H | NOTH }
<term3i>{ I | NOTI }
<timer3a>{ TIME R1 < | TI MER1>}
<timer3b>{ TIME R2 < | TI MER2>}
H, NOTH, J, and NOTJ are not available in 110-MHz mode.
Qualifier RulesThe following rules apply to qualifiers:
Qualifiers are quoted strings and, therefore, need quotes.
•
Expressions are evaluated from left to right.
•
Parentheses are used to change the order evaluation and are optional.
•
An expression must map into the combination logic presented in the
•
combination pop-up menu (see figure 6-2 on page 6-10).
Examples’A’
’( A OR B )’
’(( A OR B ) AND C )’
’(( A OR B ) AND C AND IN_RANGE2 )’
’(( A OR B ) AND ( C AND IN_RANGE1 ))’
’IN_RANGE1 AND ( A OR B ) AND C’
6–7
STRigger (STRace) Subsystem
STRigger (STRace)
STRigger (STRace)
Selector:MACHine{1|2}:STRigger
The STRigger (STRace) (State Trigger) selector is used as a part of a
compound header to access the settings found in the State Trace menu. It
always follows the MACHine selector because it selects a branch directly
below the MACHine level in the command tree.
ExampleOUTPUT XXX;":MACHIN E1:STRIGGE R:TAG TIME"
ACQuisition
Command:MACHine{1|2}:STRigger:ACQuisition
{AUTOmatic|MANual}
The ACQuisition command allows you to specify the acquisition mode for the
State analyzer.
The BRANch command defines the branch qualifier for a given sequence
level. When this branch qualifier is matched, it will cause the sequencer
to jump to the specified sequence level. The branch qualifier functions like
the "else on" branch of a sequence level.
The terms used by the branch qualifier (A through J, except in 110-MHz
mode) are defined by the TERM command. The meaning of IN_RANGE andOUT_RANGE is determined by the RANGE command.
Within the limitations shown by the syntax definitions, complex expressions
may be formed using the AND and OR operators. Expressions are limited to
what you could manually enter through the State Trigger menu. Regarding
parentheses, the syntax definitions on the next page show only the required
ones. Additional parentheses are allowed as long as the meaning of the
expression is not changed. Figure 6-2 shows a complex expression as seen in
the State Trigger menu.
STRigger (STRace) Subsystem
BRANch
ExampleThe following statements are all correct and have the same meaning. Notice
that the conventional rules for precedence are not followed. The expressions
are evaluated from left to right.
OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH1 ’C AND D OR F OR G’, 1"
OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH1 ’((C AND D) OR (F OR G))’, 1"
OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH1 ’F OR (C AND D) OR G’,1"
<N>integer from 1 to <number_of_levels>
<to_level_
number>
<number_of_
levels>
<branch_
qualifier>
integer from 1 to <number_of_levels>
integer from 2 to the number of existing sequence levels (maximum 12)
OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH2 ’A’, 7"
OUTPUT XXX; ":MA CHIN E1:S TRIGGER:BRANCH3 ’((A OR B) OR NOTG)’, 1"
Query:MACHine{1|2}:STRigger:BRANch<N>?
The BRANch query returns the current branch qualifier specification for a
given sequence level.
Returned Format[:MACHine{1|2}:STRigger:BRANch<N>]
<branch_qualifier>,<to_level_num><NL>
ExampleOUTPUT XXX;":MACHIN E1:STRIGGE R:BRANCH3?"
Figure 6-2
Complex qualifier
Figure 6-2 is a front panel representation of the complex qualifier ( a Or b)
Or (f Or g)
.
6–10
STRigger (STRace) Subsystem
CLEar
ExampleThe following example would be used to specify the complex qualifier shown
in figure 6-2.
OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH1 ’((A OR B) AND (F OR
G))’, 2"
Terms A through E, RANGE 1, and TIMER 1 must be grouped together
and terms F through J, RANGE 2, and TIMER 2 must be grouped together.
In the first level, terms from one group may not be mixed with terms from the
other. For example, the expression
((A OR IN_RANGE2) AND (C OR G)) is
not allowed because the term C cannot be specified in the F, G, and I group.
In the first level, the operators you can use are
XOR, NXOR
. Either AND or OR may be used at the second level to join the two
AND, NAND, OR, NOR,
groups together. It is acceptable for a group to consist of a single term.
Thus, an expression like
(B AND G) is legal, since the two operands are both
simple terms from separate groups.
CLEar
Command:MACHine{1|2}:STRigger:CLEar
{All|SEQuence|RESource}
The CLEar command allows you to clear all settings in the State Trigger
menu, clear only the Sequence levels, or clear only the resource term
patterns. Cleared settings are replaced with the defaults.
The FIND command defines the proceed qualifier for a given sequence level.
The qualifier tells the state analyzer when to proceed to the next sequence
level. When this proceed qualifier is matched the specified number of times,
the sequencer will proceed to the next sequence level. In the sequence level
where the trigger is specified, the FIND command specifies the trigger
qualifier (see SEQuence command).
The terms A through J are defined by the TERM command. The meaning of
IN_RANGE and OUT_RANGE is determined by the RANGe command.
Expressions are limited to what you could manually enter through the State
Trigger menu. Regarding parentheses, the syntax definitions below show
only the required ones. Additional parentheses are allowed as long as the
meaning of the expression is not changed. See page 6-9 for a detailed
example.
<N>
integer from 1 to (number of existing sequence levels −1)