Page 1
HP 64700 Emulators Terminal Interface: Analyzer User’s Guide Edition 1 64740-90909E1187 Printed in U.S.A. 11/87...
Page 3
Hewlett-Packard Company. The information contained in this document is subject to change without notice. AdvanceLink, Vectra and HP are trademarks of Hewlett-Packard Company. IBM and PC AT are registered trademarks of International Business Machines Corporation.
Page 4
Printing History New editions are complete revisions of the manual. The dates on the ti- tle page change only when a new edition is published. A software code may be printed before the date; this indicates the ver- sion level of the software product at the time the manual was issued. Many product updates and fixes do not require manual changes and, conversely, manual corrections may be done without accompanying product changes.
Using this Manual This manual will show you how to use the HP 64700 series analyzer with the firmware resident Terminal Interface. This manual will: Briefly introduce the analyzer and its features. • Show you how to use the analyzer in its simplest, power-up condi- •...
Page 6
Chapter 3 Accessing Full Analyzer Capability. This chapter shows you how to ac- cess and use the full power and capability of the HP 64700 Series ana- lyzer (more powerful sequencing and the use complex expressions). Chapter 4 Using the External Analyzer. This chapter shows you how to use the external analyzer as part of the emulation analyzer or as an inde- pendent state analyzer.
Page 11
Using Slave Clocks for Demultiplexing (tsck) ....6-6 Mixed Clocks ........6-7 True Demultiplexing .
Page 12
Illustrations Figure 1-1. Block Diagram of HP 64700 Series Analyzer ..1-2 Figure 2-1. Pseudo-Code Algorithm of Sample Program ..2-3 Figure 2-2. Sample Program Listing ......2-4 Figure 2-3.
The analyzer commands are the same in every emulator; consequently, this manual is shipped with every HP 64700 Series emulator. A block diagram of the analyzer is shown in figure 1-1.
Coordinated When multiple HP 64700 Series emulators are connected via the Coor- dinated Measurement Bus (CMB), you can use the analyzer to trigger Measurements...
Other Features The list above is only a basic description of the HP 64700 Series ana- lyzer features. The chapters which follow show you how to use these features.
Getting Started Introduction This chapter shows you how to use the emulation analyzer from mak- ing simple measurements to searching for a sequence of states. It does not describe how to access or use the full capability of the analyzer (see the chapter on "Accessing Full Analyzer Capability").
Program listings will be more meaningful. The examples in this chapter have been generated using an 80186 (HP 64764) emulator. The sample program is written in 80186 assembly language.
Initialize the stack pointer. AGAIN: Save the two previous random numbers. Call the RAND random number generator subroutine. Test the two least significant bits of the previous random number. If 00B then goto CALLER_0. If 01B then goto CALLER_1. If 10B then goto CALLER_2. If 11B then goto CALLER_3.
49 * The WRITE_NUMBER routine writes the random 50 * number to the RESULTS area. The second 51 * previous number is the offset in this area. 0448 26889D0005 52 WRITE_NUMBER RESULTS[DI],BL 044D C3 54 * The RAND routine generates a pseudo-random 55 * number from 0-0FFH, and leaves the result 56 * in AX.
Load the Program Absolute files, in a number of different file formats, can be loaded into an HP 64700 Series emulator in a number of different ways. Refer to the Terminal Interface: Emulator User’s Guide for information on load- ing programs into the emulator.
Starting the Trace (t) Enter the t (trace) command to tell the analyzer to begin monitoring the states which appear on the trace signals. You will see a message which confirms that a trace is started. U>t Emulation trace started Halting the Trace (th) The th (trace halt) command allows you to halt a trace measurement.
default trigger condition is any state, the first state after the t command becomes the trigger state. Because all captured states are stored, the next 511 states are stored in the trace. The "sequence term" and "occurrence left" items are explained later. Displaying the Trace Use the tl (trace list) command to display the trace data.
Page 25
must use the -d option to the tl command to view the mnemonic infor- mation in disassembled form. The fourth column shows the count information (time is counted by de- fault). The "R" indicates that each count is relative to the previous state. The fifth column contains information about the sequencer.
Expressions in So far, the default trace specifications have been used, and you have not entered any expressions. Expressions are used in commands which Trace Commands qualify the trace. This section describes the expressions which may be used in trace commands. Expressions may be specified in the following forms (the pound sign, # , appears before comments): any/all # special tokens...
Trace Labels Labels shown in the forms above may be predefined trace labels or la- bels which you define with the tlb (trace label) command or the xtlb (ex- ternal trace label) command if you have an external analyzer. Trace la- bels can be up to 31 characters long.
Page 28
Hexadecimal (base H or h). For example: 6eh, 9xH, 0f3, or 0cfh. • (The leading digit of a hexadecimal constant must be 0-9.) Decimal (base T or t, for base "ten"). For example: 27t or 99T. • (Don’t cares are not allowed in decimal numbers.) Binary (base Y or y).
Note All operations are carried out on 32-bit numbers. Refer to the Terminal Interface: User’s Reference description of expr for operator truth tables. Predefined Equates The equ (specify equates) command allows you to equate values with names. Equates for common status values are predefined. To view the for Emulation names equated with common analysis status, enter the equ command Analyzer Status...
Refer to the appropriate Terminal Interface: Emulator User’s Guide for information on the status signals for your HP 64700 series emulator. Expression Examples Some example trace command expressions follow. addr=500 and data=30 and stat=mr addr=400+5*20t and data=0 stat=0xx10y addr=520..532 stat!=0xx10y or stat!=0x1xxy...
Page 31
The tf command primarily allows you to arrange the columns of trace information in a different manner. However, notice that you can in- clude any trace label in the trace. (This is especially useful with the ex- ternal analyzer.) Also, notice that the trace label information can be displayed in various number bases, and that counts can be displayed relative or absolute.
Specifying a The tg (specify simple trigger) command allows you to specify when the analyzer should begin storing states. For example, suppose you want to Simple Trigger look at the execution of the sample program after the AGAIN label, (tg) and therefore, you would like to begin storing states after the AGAIN address occurs.
Page 33
As you can see in the trace status display, 512 analyzer states are saved in the trace list. To display the "next" lines in a trace list, enter the tl (trace list) command with no options. U>tl Line addr,H 8018x mnemonic,H count,R ----- ------...
Page 34
006fc 0440H, mem write 0.520 uS 00448 MOV ES:BYTE PTR 0500H[DI],BL 0.160 uS The instructions shown in the trace list above decide which caller will call the WRITE_NUMBER subroutine. Line 58 shows the disassem- bled mnemonic of the instruction which calls the WRITE_NUMBER subroutine.
Specifying an When specifying a simple trigger, you can include an occurrence count. The occurrence count specifies that the analyzer trigger on the Nth oc- Occurrence Count currence of some state. For example, to trigger the analyzer when the address 40FH occurs a hundred times, enter the command below. U>tg addr=40f 100 The default base for an occurrence count is decimal.
0059c xx3bH, mem write 36.24 uS 00535 c1xxH, mem write 35.40 uS 0053b 45xxH, mem write 36.48 uS 005c1 7dxxH, mem write 36.48 uS 00545 11xxH, mem write 36.20 uS 0057d e0xxH, mem write 36.20 uS 00511 3fxxH, mem write 35.00 uS Notice that the trigger state (line 0) is included in the trace list;...
Changing the Suppose now that you are interested in only one address in the RE- SULTS area. You wish to see how many loops of the program occur Count Qualifier between each write of a random number to this address. You can use (tcq) the tcq (trace count qualifier) command to count a state which occurs once on each loop of the program.
the first term. The same secondary branch condition is used for all se- quence terms, and secondary branches are always back to the first term; therefore, the secondary branch is called the global restart. Resetting the To reset the sequencer to its default, power-up state use the -r option to the tsq (trace sequencer) command.
mand as a conditional statement. For example, "If (some state occurs), then branch". Because sequence term 1 is the last term and a branch out of the last term constitutes the trigger, the primary branch expression (any) of term 1 specifies the trigger condition. The expression any says that any captured trace state will cause a branch.
whose address equals 40FH will trigger the analyzer, causing trace memory to be filled with states and stop. When the tg command is entered with no options, the primary branch expression of the first sequence term is displayed. This is the trigger condition only when one term exists in the sequencer.
The sequencer specification above is represented in figure 2-4. The pri- mary branch expression of the first sequence term is the address associ- ated with CALLER_3 (443H). The primary branch expression for the second sequence term is the specific write condition we would like to trace;...
Page 44
U>t Emulation trace started U>ts --- Emulation Trace Status --- NEW User trace complete Arm ignored Trigger in memory Arm to trigger ? States 512 (512) 0..511 Sequence term 3 Occurrence left 1 The "Sequence term" line of the trace status display shows the number of the term the sequencer was in when the trace completed.
Remember, the primary branch out of the last term constitutes the trigger. Also, a primary branch always advances to the next higher term. A secondary branch from any term is always made back to the first sequence term (global restart). Inserting Sequence The sequencer may have a total of 4 terms.
Deleting Sequence You delete sequence terms using the -d option to the tsq (trace se- quencer specification) command. For example, to delete the terms Terms (tsq -d) which were just inserted, enter the following commands. U>tsq -d 2 U>tsq -d 3 After a term is deleted, the remaining terms are renumbered;...
Page 47
appear before the trigger in the trace and reissuing the trace will result in the trace list which follows. U>tp -b 10 U>t Emulation trace started U>tl Line addr,H 8018x mnemonic,H count,R ----- ------ ------------------------------------ --------- 00444 0002H, opcode fetch 00443 INSTRUCTION--opcode unavailable 00446...
Tracing a If a background monitor is being used, you can trace the program as it starts up by breaking to background, starting the trace, and running the Program as it program as shown by the commands below. Starts Up U>tinit U>b M>t...
Accessing Full Analyzer Capability Introduction This chapter: Introduces the terms "complex configuration" and "easy configura- • tion" to represent the analyzer configurations which respectively al- low access to the full capability (as described in this chapter) and the capability provided with the easy-to-use configuration (as de- scribed in the "Getting Started"...
Prerequisites Before reading the examples in this chapter you should already know how the emulator operates. You should know what the various emula- tor prompts mean, and you should know how to use the emulation commands. Refer to the appropriate Terminal Interface: Emulator User’s Guide to learn about the emulator;...
Primary Branch In the "easy" configuration, primary branches are always made to the next higher sequence term. Expressions In the "complex" configuration, primary branches may be made to any sequence term. Secondary Branch In the "easy" trace configuration, the secondary branch expression is a global restart.
Page 52
U>help tpat tpat - set and display pattern resources tpat - display all patterns tpat <pattern> - display named patterns tpat <pattern> <label>=<value> - equals pattern tpat <pattern> <label>!=<value> - not equals pattern tpat <pattern> <label>=<value> and <label>=<value> tpat <pattern> <label>!=<value> or <label>!=<value> --- VALID <pattern>...
Page 53
Again, values may be specified as described in the "Getting Started" chapter. Examples of valid range specifications follow. U>trng addr=500..5ff U>trng data=0080..008f Combining Resources The eight patterns (p1..p8), the range (r for "in range" or !r for "not in range"), and the arm qualifier (described in the "Making Coordinated Measurements"...
Page 54
This set combination is invalid because p1 and p2 are in the same set. Note that "p1 ~ p1" is allowed; this type of expression may occasionally be useful if you are running out of pattern resources and wish to specify a logical NOT of some existing pattern.
Commands that Changing the trace configuration will affect the following trace com- mands. In a few cases, the options of the affected trace command are Change in the different. However, in most cases, the only difference is that complex "Complex" expressions are used where easy configuration expressions were used Configuration before.
The Sample The sample program used to illustrate the use of the analyzer in the "complex" configuration is the same as the example used in the "Get- Program ting Started" chapter, except that after a certain number of random numbers are written, a quicksort routine sorts the random numbers. After the random numbers are sorted, the program runs again.
Page 57
25 * The instructions which follow determine which 26 * caller calls WRITE_NUMBER (depends on the last 27 * two bits of the previous random number). 0422 D0DC AH,1 0424 7207 ONE_THREE 0426 D0DC AH,1 0428 7216 CALLER_2 042A E90700 CALLER_0 042D D0DC 33 ONE_THREE...
Page 58
80 *---------------------------------------------------- 81 * The WRITE_NUMBER subroutine writes the random 82 * number to the RESULTS area. The second previous 83 * random number is the offset in this area. 84 *---------------------------------------------------- 0474 26889D0005 86 WRITE_NUMBER RESULTS[DI],BL 0479 C3 89 *---------------------------------------------------- 90 * The QSORT subroutine is passed the high and low 91 * addresses of some area of bytes to be sorted on 92 * the stack.
Page 59
04A3 8825 [DI],AH 04A5 EBE2 INC_LOW 136 * SI = low address (needed to swap dividing value). 04A7 8B7602 137 OUT SI,[BP+2] 138 * Swap dividing value and high index value. 04AA 8A15 DL,[DI] 04AC 8814 [SI],DL 04AE 8805 [DI],AL 143 * The area is now split into two smaller areas.
Before You Can Use You must map memory, load the program, and run the program as was done in the previous chapter. The only difference is that another block the Analyzer of emulation memory must be mapped since the stack takes up more space.
The Default After entering the "complex" analyzer configuration, the sequencer is in its default state. The tsq (trace sequencer specification) command with Sequencer no options will display the sequencer. Specification (tsq U>tsq tif 1 any 2 tif 2 any 3 tif 3 any 4 tif 4 any 5 tif 5 any 6...
Figure 3-2. "Complex" Configuration Default Sequencer Specifying a Using the tg (simple trigger) command in the "complex" configuration will cause the first two sequence terms to be modified. The pattern Simple Trigger specified in the tg command becomes the primary branch expression of (tg) the first sequence term.
Page 63
The result of the tg command in the "complex" configuration is the same as in the "easy" configuration, and equivalent tg commands (where the pattern is the same as the "easy" configuration expression, and the storage qualifiers are the same) will yield identical traces in each of the trace configurations.
Figure 3-3. Simple Trigger in "Complex" Configuration Using the This section contains three examples of setting up the sequencer: Sequencer in the "Complex" Configuration The first example shows the general steps to follow when setting • up the sequencer in the complex configuration. Labels from a hy- pothetical program are used to illustrate the steps involved.
Hints to Make When you become experienced at using the "complex" configuration, you will be able to simply enter the trace commands for the measure- Setting Up the ment you want. Until then, following the steps listed below may make Sequencer Easy it easier for you to set up the sequencer.
taken. Also, occurrence counts may only be specified with primary branch expressions. The following examples are based on a hypothetical program whose flowchart is shown in figure 3-4. Suppose there is a problem in the hypothetical program. You can iden- tify two situations which cause this problem, but you are not quite sure as to why the problem occurs, and you would like to trace the program execution around either of these situations.
Page 67
when the specific state occurs in the specific process. The sequencer should take the following steps. Step 1: First of all, you want the sequencer to search for PROC- ESS_1. Step 2: After PROCESS_1 is found, you want the sequencer to search for TRIG_STATE_1 until PROCESS_1 exits.
A pseudo-code algorithm of the sequencer follows. Term_1: If (PROCESS_1 occurs) Then go to Term_2. Term_2: If (TRIG_STATE_1 occurs before PROCESS_1_EXIT) Then trigger the analyzer, i.e., go to Term_5. Else if (PROCESS_1_EXIT occurs before TRIG_STATE_1) Then go to Term_3. Term_3: If (PROCESS_2 occurs before PROCESS_3) Then go to Term_4.
Page 69
Draw Sequencer Diagram After you have listed (or while you are listing) the steps you want the se- quencer to take, draw a state diagram of the sequencer as it would fol- low those steps. For example, the sequencer diagram for the steps listed above is shown in figure 3-5.
Page 70
U>tsq -t 5 Specify Storage Qualifiers Since each sequence term may have a storage qualifier, storage quali- fier specification is part of the sequencer setup. Suppose, in the exam- ple above, that you do not wish to store states while searching for PROCESS_1 but that you wish to store all states after PROCESS_1 is found.
Tracing "Windows" One common use for the "complex" configuration sequencer is to trace "windows" of execution or, perhaps, to eliminate "windows" of execu- of Activity tion from traces. For example, suppose you wish to trace only the exe- cution within a certain range of addresses. These addresses could be a subroutine or perhaps they are just the addresses of instructions in which you are interested.
Figure 3-6. Tracing a "Window" of Activity Specify trace patterns that equal these addresses. U>tpat p1 addr=Rand # WINDOW ENABLE. U>tpat p2 addr=RandRet # WINDOW DISABLE. U>tpat p3 addr=QsortCall # TRIGGER CONDITION. Specify the primary and secondary branch expressions, and specify the trigger term.
Page 73
dow enable. However, since the RAND subroutine is located after the QSORT call, prefetches from the Rand address would be interpreted as window enable conditions. Two prefetches from the Rand address occur: one before the QSORT call, and one after. The primary branch condition of the trigger term causes the sequencer to continue search- ing for the window enable condition after the two prefetches from the Rand address.
Page 74
Enter the tsq command with no options to display the sequencer speci- fication. U>tsq tif 1 p1 2 tif 2 p2 1 tif 3 p1 1 2 tif 4 any 5 tif 5 any 6 tif 6 any 7 tif 7 any 8 tif 8 never tsq -t 3 tsto 1 none...
Page 75
Starting the trace, waiting for the measurement to complete, and dis- playing the trace will result in the following information. U>t Emulation trace started U>tl -t 50 Line addr,H 8018x mnemonic,H count,R ----- ------ ------------------------------------ --------- 0046c 0600H, opcode fetch 0046a INSTRUCTION--opcode unavailable 0.120 uS...
Isolating and Tracing There is a "bug" in this chapter’s sample program. Occasionally, after the 256 bytes of the RESULTS area have been sorted by the QSORT Specific Conditions subroutine, you will see a byte out of order in the last eight or so bytes of the area.
Page 77
Enable software breakpoints with the bc (emulator break conditions) command, and execute the sort macro. M>bc -e bp M>bp 489 M>bp 412 M>sort # bp -e 489;r;w 1;bp -e 412;r;w 1;m -db 500..5ff # waiting for 1 second..# waiting for 1 second..00500..0050f 80 80 81 83 83 85 88 89 8e 8f 8f 92 92 92 93 94 00510..0051f...
Page 78
M>r U>tg any U>tpat p1 addr=45a U>tsto p1 U>trng addr=5f8..5ff U>tpq r U>t Emulation trace started U>w -m # waiting for analysis measurements to complete... U>tl Line addr,H 8018x mnemonic,H count,R ----- ------ ------------------------------------ --------- 00428 1672H, opcode fetch 005fd 3dxxH, mem write prestore 005fc...
QSORT address from being interpreted as entry into the rou- tine.) 2. If a write of 39H to address 5FFH occurs, this may or may not be the trigger event -- another condition must be tested (see 3). Else, if the QSORT routine exits before a write of 39H to 5FFH occurs, the trigger event has not occurred in this loop of the program;...
Page 80
The corresponding sequencer diagram is shown in figure 3-7. The commands to set up the sequencer, display the sequencer, issue the trace, and display the trace are shown below. Since we are interested in the instructions which occur before the trigger, the trigger position is specified such that only 10 states are stored after the trigger state.
Page 81
tif 2 p2 3 tif 3 p3 4 tif 4 never tif 5 any 6 tif 6 any 7 tif 7 any 8 tif 8 never tsq -t 4 tsto 1 none tsto 2 all tsto 3 all tsto 4 all tsto 5 none tsto 6 none tsto 7 none...
Page 82
U>tl -210 Line addr,H 8018x mnemonic,H count,R ----- ------ ------------------------------------ --------- -210 0048e CMP DI,SI 0.160 uS -209 00492 f5ebH, opcode fetch 0.400 uS -208 00490 JLE SHORT 04a7H 0.120 uS -207 00494 3a4fH, opcode fetch 0.400 uS -206 004a7 8bxxH, opcode fetch 0.680 uS -205...
Page 83
*---------------------------------------------------- * The QSORT subroutine is passed the high and low * addresses of some area of bytes to be sorted on * the stack. *---------------------------------------------------- QSORT BP,SP DI,[BP+4] ; DI = high index. SI,[BP+2] ; SI = low index. * The following section splits the area to be sorted * into two areas.
Page 84
INC_LOW * SI = low address (needed to swap dividing value). SI,[BP+2] * Swap dividing value and high index value. DL,[DI] [SI],DL [DI],AL * The area is now split into two smaller areas. * The last high index value is the middle of the * two areas.
Using the External Analyzer Introduction Your HP 64700 Series analyzer may optionally contain 16 external trace signals. These trace lines allow you to analyze additional target system signals. The external analyzer may be configured as an exten- sion to the emulation analyzer, as an independent state analyzer, or as an independent timing analyzer.
Connect the analyzer probe to signals of interest in your target sys- • tem. Specify threshold voltages of external trace signals. • Label the external trace signals. • Select the external analyzer mode. • Connecting the The following steps must be taken to connect the analyzer probe to the target system: Analyzer Probe Lines to the Target...
Assembling the Analyzer Probe The analyzer probe is a two-piece assembly, consisting of ribbon cable and 18 probe wires (16 data channels and the J and K clock inputs) at- tached to a connector. Either end of the ribbon cable may be con- nected to the 18 wire connector, and the connectors are keyed so they may only be attached one way.
Connecting the Probe to the Emulator The external analyzer probe is attached to a connector under the snap- on cover in the front upper right corner of the emulator. Remove the snap-on cover by pressing the side tabs toward the center of the cover; then, pull the cover out.
Note Check for bent connector pins before connecting the analyzer probe to the emulator. Figure 4-4. Connecting the Probe to the Emulator Using the External Analyzer 4-5...
Page 90
Connecting Probe Wires to the Target System Caution Turn OFF target system power before connecting analyzer probe wires to the target system. The probe grabbers are difficult to handle with precision, and it is extremely easy to short the pins of a chip (or other connectors which are close together) with the probe wire while trying to connect it.
Specifying External The external analyzer probe signals are divided into two groups: the lower byte (channels 0 through 7 and the J clock), and the upper byte Trace Signal (channels 8 through 15 and the K clock). You can specify a threshold Threshold Voltages voltage for each of these groups.
Selecting the By default, on power-up or after trace initialization (tinit), the external analyzer is aligned with the emulator. In this mode, you have 16 exter- External Analyzer nal trace signals which are clocked with the same signal(s) as the emula- Mode tion analyzer.
State Analyzer the emulation analyzer, except that only 16 bits of analysis are available. Your HP 64700 Series emulator now contains two state analyzers; two sets of analyzer resources (trace memory, patterns, qualifiers, etc.) are available, one for the emulation analyzer and one for the independent state analyzer.
Specifying the The clock source for the independent state analyzer is specified with the xtck (external trace clock) command. The independent state ana- Independent lyzer may be clocked with target system clock signals connected to the Analyzer Clock JCL and KCL external clock inputs. (Refer to the "Selecting Clock Sig- Source nals"...
HP 64700 Series emulator and which involve the HP 64700 Series analyzer. The types of coordinated measurements involv- ing the analyzer which can be made internal to an HP 64700 series emu- lator are: Breaking into the monitor on an analyzer trigger.
An arm condition may not be used as a count qualifier. Specifying an Arm By default, the analyzer is always armed. This means that the analyzer arm condition is always true. The tarm (trace arm condition) com- Condition mand is used to specify or display the arm condition. The tarm com- mand with no options will display the current arm condition.
time since the most recent trace started, even if it happened after the trace was halted or became complete. The "Arm to trigger" line displays the amount of time between the arm condition and the trigger. The time displayed will be from 0.04 uS to 41.943 mS, less than 0.04 uS, or greater than 41.943 mS.
Breaking on an The bc (break conditions) command is used to enable or disable the conditions which may break the emulator into the monitor. The inter- Analyzer Trigger nal signals trig1 and trig2 may be used to cause breaks to background. Therefore, to cause an analyzer trigger to break the emulator, you must specify that the analyzer drive one of the internal signals when the trig- ger is found, and enable a break on that internal signal.
Cross-Arming Cross-arming between the emulation analyzer and the external ana- lyzer is a matter of specifying that one analyzer drive one of the internal Between signals (trig1 or trig2) and then specifying that the other analyzer be Emulation and armed on that signal. For example, to cause the external analyzer to External Analyzers arm the emulation analyzer, the commands below are entered.
To cause the emulation analyzer to arm the external analyzer, enter the commands below. R>xtmo -s R>tgout trig1 R>xtarm =trig1 R>xtif 1 arm R>xtif 2 xbits=87 R>r 400 U>xt External trace started U>t Emulation trace started Cross-Triggering Cross-triggering is a special case of cross arming in which the arm con- dition triggers the analyzer.
Page 104
Notes Making Coordinated Measurements 5-8...
Special Analyzer Topics Introduction This chapter describes analyzer topics which are not specifically related to the "easy" or "complex" configurations, the external analyzer, or coor- dinated measurements. The analyzer topics which fall into this cate- gory are listed below and described in this chapter. Displaying trace activity.
U>ta Pod 3 = 01100100 100?000? Pod 2 = 11011101 ???????? Pod 1 = 01??1??? 00000000 External Pod = 0010?1?? 010??001 The trace signals are displayed in sets of sixteen. Pod 1 represents emu- lation analyzer trace signals 0 through 15 (the least significant bit is on the right).
Notice that the user/background option is a switch in the clock specifi- cation. Changing the option as shown above does not affect the rest of the trace clock specification. It is also possible to trace both user and background code; this is accomplished by specifying both options in a single tck command.
Figure 6-1. Qualified Clocks Specifying the The maximum qualified clock rate is the repetition rate of all specified clock signals (see figure 6-1). You are allowed to select the maximum Maximum Qualified qualified clock speed of the analyzer; however, there are tradeoffs in- Clock Speed volving the trace count qualifier to be considered.
Very Fast (tck -s VF). Very fast specifies a maximum qualified • clock rate of 25 MHz. When "VF" is selected, the trace count quali- fier may not be used at all (in other words, tcq none). Qualifying Clocks The selected clock signals may be qualified with other clock signals; that is, the selected signals may only clock the analyzer when the qualify- (tck -l, -h) ing clock signal is true.
Using Slave There are two modes of demultiplexing that can be set for each 16-bit pod: mixed clocks and true demultiplexing. Clocks for Demultiplexing (tsck) Emulation trace slave clocks are specified with the tsck (trace slave clock) command. External analyzer slave clocks are specified with the xtsck (external trace slave clock) command.
Mixed Clocks The mixed clock mode is specified with the -m option to the tsck com- mand. In this mode, the lower 8 channels of the pod (bits 0-7) are latched with the slave clock, and the master clock gates the entire pod (see figure 6-2).
Command Files host computer. Example The following example makes several assumptions: A host computer running HP-UX (which you are currently logged • in to). The terminal is connected to port B, and the host computer is con- •...
Page 114
Because you may wish to save trace specifications at any time, it is a good idea to create a macro containing the commands used to save the trace specification. U>mac tsave={po -o a; echo "cat > tspec";w 1; tcf; tpat; trng; tsq; tpq; tcq; tp; echo "#+#";...
Page 115
U>tsave # po -o a;echo "cat > tspec";w 1;tcf;tpat;trng;tsq;tpq;tcq;tp;echo "#+#";echo \04;po -o b U> After tsave has executed, there exists a file called "tspec" on the host computer which contains the trace specification. To use the command file to load the trace specification enter the po (port control) command with the -s option.
Page 119
trace trigger output, 5-3 using, 4-1 features of the analyzer, 1-1 format of trace list, 2-14 global restart, 2-24/2-25 global set operators, 3-5 grabbers connecting to analyzer probe, 4-3 halting the trace, 2-7 hold times for external analyzer, 6-5 initializing the analyzer, 2-7 instruction queues, 2-9 interset operators, 3-5 intraset operators, 3-5...
Page 121
deleting terms, 2-29 drawing the diagram, 3-21 hints for setting up in the complex configuration, 3-17 inserting terms, 2-29 resetting, 2-24 simple trigger specification, 2-25 using, 2-23 setup times for external analyzer, 6-5 simple measurements, 1-3 simple trigger in the complex configuration, 3-14 in the easy configuration, 2-16 slave clocks, 6-6 specifications of external analyzer, 4-12...