mirror of
https://github.com/wfjm/w11.git
synced 2026-03-05 11:14:50 +00:00
- rtl/w11a
- pdp11.vhd: _tmu,_tmu_sb: add port DM_STAT_SE
- pdp11_sys70.vhd: pass DM_STAT_SE to pdp11_tmu_sb
- pdp11_tmu.vhd: add vm.vmcntl.[cm]acc, se.[iv]start fields
- pdp11_tmu_sb.vhd: add port DM_STAT_SE
- tb/tbd_pdp11core.vhd: pass DM_STAT_SE to pdp11_tmu_sb
- tools/bin/tmuconv: use vm.vmcntl.[cm]acc, se.[iv]start fields; add type
column to em line; remove VFETCH/VPUSH heuristics;
add -t_emm, -t_fle, -t_fli, -i_flei
- tools/tbench/w11a/test_w11a_cdma.tcl: stop A2 code via PIRQ
304 lines
8.8 KiB
Groff
304 lines
8.8 KiB
Groff
.\" -*- nroff -*-
|
|
.\" $Id: tmuconv.1 1348 2023-01-08 13:33:01Z mueller $
|
|
.\" SPDX-License-Identifier: GPL-3.0-or-later
|
|
.\" Copyright 2013-2023 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
|
.\"
|
|
.\" ------------------------------------------------------------------
|
|
.
|
|
.TH TMUCONV 1 2023-01-08 "Retro Project" "Retro Project Manual"
|
|
.\" ------------------------------------------------------------------
|
|
.SH NAME
|
|
tmuconv \- convert w11a tmu output into human readable format
|
|
.\" ------------------------------------------------------------------
|
|
.SH SYNOPSIS
|
|
.
|
|
.SY tmuconv
|
|
.RI [ OPTION ]...
|
|
.I FILE
|
|
.
|
|
.SY tmuconv
|
|
.B \-\-help
|
|
.YS
|
|
.
|
|
.\" ------------------------------------------------------------------
|
|
.SH DESCRIPTION
|
|
Converts the output of the \fBw11a\fR trace and monitoring unit (tmu)
|
|
into a human readable format. If no options are given, the default
|
|
output is \fB\-t_id\fR \fB\-t_vf\fR.
|
|
.
|
|
.\" ------------------------------------------------------------------
|
|
.SH OPTIONS
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-dump\fR" 8
|
|
dump all information.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-cdump\fR"
|
|
dump only changes relative to previous cycle.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-emcancel\fR"
|
|
show em 'cancel' cycles when \fB\-t_ib\fR active.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_id\fR"
|
|
trace instruction decodes.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_ru\fR"
|
|
trace register updates.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_ru06\fR"
|
|
trace register updates for r0-r5 and sp (subset of \fB\-t_ru\fR).
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_em\fR"
|
|
trace em transactions (external memory bus).
|
|
em transactions that converted to an ib transaction are labeled 'cancel'.
|
|
They are not shown when \fB\-t_ib\fR is active and no \fB\-emcancel\fR option
|
|
is given. This gives the most readable output for \fB\-t_all\fR.
|
|
|
|
Each transaction is associated with type
|
|
.RS
|
|
.RS 3
|
|
.PD 0
|
|
.IP " i" 5
|
|
instruction fetch
|
|
.IP " v"
|
|
vector fetch or push
|
|
.IP " m"
|
|
read modify write
|
|
.IP " c"
|
|
control port access (often cdma)
|
|
.PD
|
|
.RE
|
|
|
|
A blank type field means 'none of the above' and is used for all em
|
|
transactions issued by instructions including index word and immediate
|
|
value reads.
|
|
|
|
The vector fetch transactions are further annotated for well known vector
|
|
addresses. This is very helpful for the detection of interrupts.
|
|
.RE
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_emm\fR"
|
|
trace only em transaction that are not type i or c and are not canceled
|
|
(subset of \fB\-t_em\fR).
|
|
Useful in conjunction with \fB\-t_id\fR because the information of the
|
|
instruction fetch read is included in the \fB\-t_id\fR output.
|
|
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_vf\fR"
|
|
trace only vector fetch em transactions (subset of \fB\-t_em\fR)
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_ib\fR"
|
|
trace ib transactions (ibus cycles). em 'cancel' transactions are not shown
|
|
unless the \fB\-emcancel\fR option is given.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_flow\fR"
|
|
trace instruction flow,
|
|
is equivalent to \fB\-t_id\fR \fB\-t_ru06\fR \fB\-t_vf\fR
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_fle\fR"
|
|
trace instruction flow and show instruction related em transactions,
|
|
is equivalent to \fB\-t_id\fR \fB\-t_ru06\fR \fB\-t_emm\fR
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_fli\fR"
|
|
trace instruction flow and show ibus transactions,
|
|
equivalent to \fB\-t_id\fR \fB\-t_ru06\fR \fB\-t_vf\fR \fB\-t_ib\fR
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_flei\fR"
|
|
combination of "\fB\-t_fle\fR" and "\fB\-t_fli\fR",
|
|
is equivalent to \fB\-t_id\fR \fB\-t_ru06\fR \fB\-t_emm\fR \fB\-t_ib\fR
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_all\fR"
|
|
trace all, equivalent to \fB\-t_id\fR \fB\-t_ru\fR \fB\-t_em\fR \fB\-t_ib\fR
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-help\fR"
|
|
print full help text and exit.
|
|
.
|
|
.\" ------------------------------------------------------------------
|
|
.SH TRACE OUTPUT FORMAT
|
|
Each output line starts with the cycle number and the trace type.
|
|
The format of the rest of the line depends on trace type.
|
|
|
|
\fB\-t_id\fP: the instruction decode trace gives
|
|
.RS 2
|
|
.PD 0
|
|
.IP "-" 2
|
|
the PC of the instruction
|
|
.IP "-"
|
|
the PSW at the beginning(!) of the instruction
|
|
.IP "-"
|
|
the instruction word (as loaded into the instruction register)
|
|
.IP "-"
|
|
the instruction in MACRO-11 syntax
|
|
.IP "-"
|
|
the number of cycles of the previous(!) instruction
|
|
.PD
|
|
.RE
|
|
.PP
|
|
|
|
.EX
|
|
cycle pc psw ireg code nc
|
|
71587 id 006054 000011 012410 mov (r4)+,(r0) (4)
|
|
71683 id 002146 000340 116767 movb nnn(pc),nnn(pc) (9)
|
|
.EE
|
|
|
|
\fB\-t_ru\fP: the register update trace gives
|
|
.RS 2
|
|
.PD 0
|
|
.IP "-" 2
|
|
the byte update indicator
|
|
.IP "-"
|
|
the register set (0 pr 1)
|
|
.IP "-"
|
|
the register number (0 to 7)
|
|
.IP "-"
|
|
the loaded data value
|
|
.IP "-"
|
|
in case of a stack pointer update the values of kernel, supervisor and user
|
|
stack pointers
|
|
.IP "-"
|
|
in case of an R0-R5 update the values of all these six registers
|
|
.IP "-"
|
|
the symbolic name of the register
|
|
.PD
|
|
.RE
|
|
.PP
|
|
|
|
.EX
|
|
cycle b sr data
|
|
71578 ru 0 07 006102 pc
|
|
71649 ru 0 06 002000 002000*------ ------ ksp
|
|
71634 ru 0 04 010752 006110 006112 177776 010752 010752*010642 r04
|
|
.EE
|
|
|
|
\fB\-t_em\fP: the memory transaction trace gives
|
|
.RS 2
|
|
.PD 0
|
|
.IP "-" 2
|
|
the access type flag (values see \fB\-t_em\fP descriprion)
|
|
.IP "-"
|
|
the r/w flag
|
|
.IP "-"
|
|
the byte enables
|
|
.IP "-"
|
|
the memory address (as 22bit number)
|
|
.IP "-"
|
|
the data written to memory
|
|
.IP "-"
|
|
the data received from memory
|
|
.IP "-"
|
|
four flag bits 'crwh' indicating cancel, read, write, and cache-hit
|
|
.IP "-"
|
|
the number of extra wait cycles
|
|
.IP "-"
|
|
in case of vector fetches and associated stack pushes some descriptive text
|
|
.PD
|
|
.RE
|
|
.PP
|
|
|
|
.EX
|
|
cycle be addr wdat rdat crwh nc
|
|
11374 em w 11 00000004 000006 0010 (1)
|
|
52574 em r 11 00002164 177624 0101 (1)
|
|
|
|
86703 em mr 11 00003320 000000 0101 (1)
|
|
86705 em mw 11 00003320 000001 0010 (1)
|
|
|
|
87102 em vr 11 00000020 002222 0101 (1) VFETCH PC 020 IOT
|
|
87104 em vr 11 00000022 000340 0101 (1) VFETCH PS
|
|
87108 em vw 11 00001776 000004 0010 (1) VPUSH PS
|
|
87114 em vw 11 00001774 003324 0010 (5) VPUSH PC
|
|
.EE
|
|
|
|
\fB\-t_ib\fP: the ibus transaction trace gives
|
|
.RS 2
|
|
.PD 0
|
|
.IP "-" 2
|
|
two flag bits 'cr' indicating console and remote access
|
|
.IP "-"
|
|
two flag bits 'rm' indicating read/write and modify
|
|
.IP "-"
|
|
the byte enables
|
|
.IP "-"
|
|
the bus address (as 16bit number)
|
|
.IP "-"
|
|
the data written to bus
|
|
.IP "-"
|
|
the data received from bus
|
|
.IP "-"
|
|
the acknowledge flag
|
|
.IP "-"
|
|
the number of extra wait cycles
|
|
.IP "-"
|
|
if known, the symbolic name of the register
|
|
.PD
|
|
.RE
|
|
.PP
|
|
|
|
.EX
|
|
cycle cr rmbe addr wdat rdat a nc name
|
|
988 ib cr r 11 177500 000000 1 (0) ii.acr
|
|
52583 ib -- w 11 177570 000001 1 (0) sdreg
|
|
70729 ib -- r 11 177776 000004 1 (0) psw
|
|
.EE
|
|
|
|
The w11 CPU starts a cache cycle for each read or write, and cancels the
|
|
cache request when an ibus access is detected. These transactions are usually
|
|
suppressed when \fB\-t_ib\fP is active but are shown when \fB\-emcancel\fP
|
|
is given, resulting in output like
|
|
|
|
.EX
|
|
52582 em w 11 00177570 000001 cancel 1000 (1)
|
|
52583 ib -- w 11 177570 000001 1 (0) sdreg
|
|
.EE
|
|
|
|
.
|
|
.\" ------------------------------------------------------------------
|
|
.SH EXAMPLES
|
|
.IP "\fBtmuconv --t_id --t_em --t_ib tmu_ofile\fR" 4
|
|
Produces an output with all instruction decodes and external memory interface
|
|
and ibus transactions. The execution of a 'bisb #4,4(r4)' instruction which
|
|
accesses the output CSR of a DL11 interface will look like
|
|
|
|
.EX
|
|
429 id 002002 000340 152764 bisb #nnn,nnn(r4) (5)
|
|
431 em r 01 00002004 000004 0100 (1)
|
|
433 em r 11 00002006 000004 0100 (1)
|
|
436 ib -- rm01 177564 000200 1 (0) to.csr
|
|
439 ib -- wm01 177564 000204 1 (0) to.csr
|
|
.EE
|
|
|
|
and shows the ibus read-modify-write.
|
|
|
|
.IP "\fBtmuconv --t_all tmu_ofile\fR" 4
|
|
Like above, in addition, also all register updates are shown. The execution
|
|
of a 'cmp (r2),(r4)+' where r2 points to the psw will look like
|
|
|
|
.EX
|
|
934 id 003014 000011 021224 cmp (r2),(r4)+ (9)
|
|
937 ib -- r 11 177776 000011 1 (0) psw
|
|
939 ru 0 04 005676 003036 003040 177776 005700 005676*005570 r04
|
|
940 em r 11 00005674 000011 0101 (1)
|
|
.EE
|
|
|
|
.\" ------------------------------------------------------------------
|
|
.SH "SEE ALSO"
|
|
.BR ti_rri (1)
|
|
|
|
.\" ------------------------------------------------------------------
|
|
.SH AUTHOR
|
|
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|