mirror of
https://github.com/wfjm/w11.git
synced 2026-05-05 15:44:35 +00:00
- rtl/sys_gen/*/*.vbom: some vbom's had undefined ${sys_conf} references
- tools/bin/tmuconv: add -t_vf -t_all; fis mnemos; add headers
251 lines
7.0 KiB
Groff
251 lines
7.0 KiB
Groff
.\" -*- nroff -*-
|
|
.\" $Id: tmuconv.1 1258 2022-07-18 10:07:22Z mueller $
|
|
.\" SPDX-License-Identifier: GPL-3.0-or-later
|
|
.\" Copyright 2013-2022 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
|
.\"
|
|
.\" ------------------------------------------------------------------
|
|
.
|
|
.TH TMUCONV 1 2022-07-18 "Retro Project" "Retro Project Manual"
|
|
.\" ------------------------------------------------------------------
|
|
.SH NAME
|
|
tmuconv \- convert w11a tmu output into human readable format
|
|
.\" ------------------------------------------------------------------
|
|
.SH SYNOPSIS
|
|
.
|
|
.SY tmuconv
|
|
.OP \-dump
|
|
.OP \-cdump
|
|
.OP \-t_id
|
|
.OP \-t_ru
|
|
.OP \-t_em
|
|
.OP \-t_vf
|
|
.OP \-t_ib
|
|
.OP \-t_all
|
|
.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"
|
|
dump all information.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-cdump\fR"
|
|
dump only changes relative to previous cycle.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_id\fR"
|
|
trace instruction decodes.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_ru\fR"
|
|
trace register updates.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.IP "\fB\-t_em\fR"
|
|
trace em transactions (external memory bus).
|
|
Reads from well known vector addresses are labeled 'VFETCH'.
|
|
This is very helpful for the detection of interrupts.
|
|
See also \fB\-t_vf\fR.
|
|
Note: every read from location 200 will therefore be labeled 'VFETCH 200 LP11',
|
|
also when it is an instruction fetch for a 'JMP' instruction in old maindecs
|
|
with start address 200.
|
|
.
|
|
.\" ----------------------------------------------
|
|
.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)
|
|
.
|
|
.\" ----------------------------------------------
|
|
.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 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)
|
|
|
|
52530 em r 11 00000020 002142 0101 (1)
|
|
52532 em r 11 00000022 000340 0101 (1) VFETCH 020 IOT
|
|
52536 em w 11 00001776 000017 0010 (1)
|
|
52538 em w 11 00001774 004316 0010 (1) SPUSH
|
|
.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. That's why an 'ib' line
|
|
is usually preceded by an 'em' line with the 'cancel' flag, 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)
|
|
435 em r 01 00177564 cancel 1100 (1)
|
|
436 ib -- rm01 177564 000200 1 (0) to.csr
|
|
439 ib -- wm01 177564 000204 1 (0) to.csr
|
|
.EE
|
|
|
|
and shows the canceled em access and 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)
|
|
936 em r 11 00177776 cancel 1000 (1)
|
|
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>
|