110259SAndrew.Bardsley@arm.com# Copyright (c) 2013 ARM Limited
210259SAndrew.Bardsley@arm.com# All rights reserved
310259SAndrew.Bardsley@arm.com#
410259SAndrew.Bardsley@arm.com# The license below extends only to copyright in the software and shall
510259SAndrew.Bardsley@arm.com# not be construed as granting a license to any other intellectual
610259SAndrew.Bardsley@arm.com# property including but not limited to intellectual property relating
710259SAndrew.Bardsley@arm.com# to a hardware implementation of the functionality of the software
810259SAndrew.Bardsley@arm.com# licensed hereunder.  You may use the software subject to the license
910259SAndrew.Bardsley@arm.com# terms below provided that you ensure that this notice is replicated
1010259SAndrew.Bardsley@arm.com# unmodified and in its entirety in all distributions of the software,
1110259SAndrew.Bardsley@arm.com# modified or unmodified, in source code or in binary form.
1210259SAndrew.Bardsley@arm.com#
1310259SAndrew.Bardsley@arm.com# Redistribution and use in source and binary forms, with or without
1410259SAndrew.Bardsley@arm.com# modification, are permitted provided that the following conditions are
1510259SAndrew.Bardsley@arm.com# met: redistributions of source code must retain the above copyright
1610259SAndrew.Bardsley@arm.com# notice, this list of conditions and the following disclaimer;
1710259SAndrew.Bardsley@arm.com# redistributions in binary form must reproduce the above copyright
1810259SAndrew.Bardsley@arm.com# notice, this list of conditions and the following disclaimer in the
1910259SAndrew.Bardsley@arm.com# documentation and/or other materials provided with the distribution;
2010259SAndrew.Bardsley@arm.com# neither the name of the copyright holders nor the names of its
2110259SAndrew.Bardsley@arm.com# contributors may be used to endorse or promote products derived from
2210259SAndrew.Bardsley@arm.com# this software without specific prior written permission.
2310259SAndrew.Bardsley@arm.com#
2410259SAndrew.Bardsley@arm.com# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2510259SAndrew.Bardsley@arm.com# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2610259SAndrew.Bardsley@arm.com# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2710259SAndrew.Bardsley@arm.com# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2810259SAndrew.Bardsley@arm.com# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2910259SAndrew.Bardsley@arm.com# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
3010259SAndrew.Bardsley@arm.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3110259SAndrew.Bardsley@arm.com# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3210259SAndrew.Bardsley@arm.com# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3310259SAndrew.Bardsley@arm.com# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3410259SAndrew.Bardsley@arm.com# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3510259SAndrew.Bardsley@arm.com#
3610259SAndrew.Bardsley@arm.com# Authors: Andrew Bardsley
3710259SAndrew.Bardsley@arm.com#
3810259SAndrew.Bardsley@arm.com# minor.pic: Pipeline appearance of the Minor pipeline for minorview
3910259SAndrew.Bardsley@arm.com
4010259SAndrew.Bardsley@arm.com# Markup of the pipeline blocks.
4110259SAndrew.Bardsley@arm.com#   '>' and '<' are connecting arrows.
4210259SAndrew.Bardsley@arm.com#   '/', ':' and '\' mark multi-line arrows.
4310259SAndrew.Bardsley@arm.com#   All other (non-space) character rectangles are the shapes of the
4410259SAndrew.Bardsley@arm.com#       corresponding blocks below the markup.
4510259SAndrew.Bardsley@arm.com
4610259SAndrew.Bardsley@arm.com<<<
4710259SAndrew.Bardsley@arm.com        IPIPIPIPIPIPIPIPIP                          LSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLS  KKKKKKKKKK
4810259SAndrew.Bardsley@arm.com        IP              IP                          LS                                      LS  KK      KK
4910259SAndrew.Bardsley@arm.com        IPiririr-\itititIP                          LSimimim  drdrdr-\dtdtdtdt  sbsbsbsbsbsbLS  KK      KK
5010259SAndrew.Bardsley@arm.com        IPiririr-/itititIP                          LSimimim  drdrdr-/dtdtdtdt  sbsbsbsbsbsbLS  KK      KK
5110259SAndrew.Bardsley@arm.com        IPIPIPIPIPIPIPIPIP                          LSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLS  KK      KK
5210259SAndrew.Bardsley@arm.com                                                                                                KK      KK
5310259SAndrew.Bardsley@arm.com                                                                                                KK      KK
5410259SAndrew.Bardsley@arm.com        acacac  sasasasasasasasa                    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE  KK      KK
5510259SAndrew.Bardsley@arm.com        acacac  sasasasasasasasa                    EE                                      EE  KK      KK
5610259SAndrew.Bardsley@arm.com                                                    EEscscscscscscscscscscscscscscscscscscscEE  KK      KK
5710259SAndrew.Bardsley@arm.com                                                    EEscscscscscscscscscscscscscscscscscscscEE  KK      KK
5810259SAndrew.Bardsley@arm.com                                                    EE                                      EE  KK      KK
5910259SAndrew.Bardsley@arm.com        F1F1F1F1-\1212-\F2F2F2F2-\2D2D-\DDDD-\DEDE-\EEiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqEE  KK      KK
6010259SAndrew.Bardsley@arm.com        F1    F1 :1212 :F2    F2 :2D2D :DDDD :DEDE :EEiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqEE  KK      KK
6110259SAndrew.Bardsley@arm.com        F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EE                                      EE  KK      KK
6210259SAndrew.Bardsley@arm.com        F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EEEiEiEiEi  f0f0f0f0f0f0f0f0f0f0f0  ccccEE  KK      KK
6310259SAndrew.Bardsley@arm.com        F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EEEiEiEiEi  f0f0f0f0f0f0f0f0f0f0f0  ccccEE  KK      KK
6410259SAndrew.Bardsley@arm.com        F1fefeF1 :1212 :F2fifiF2-/2D2D-/DDDD-/DEDE-/EEEiEiEiEi  f1f1f1f1f1f1f1f1f1f1f1  ccccEE  KKKKKKKKKK
6510259SAndrew.Bardsley@arm.com        F1fefeF1 :1212 :F2fifiF2        DDDD        EEEiEiEiEi  f1f1f1f1f1f1f1f1f1f1f1  ccccEE
6610259SAndrew.Bardsley@arm.com        F1fefeF1-/1212-/F2fifiF2        DDDD        EEEiEiEiEi  f2f2f2f2f2f2f2f2f2f2f2  ccccEE
6710259SAndrew.Bardsley@arm.com  b2b2-\F1fefeF1      -\F2fifiF2        DDDD        EEEiEiEiEi  f2f2f2f2f2f2f2f2f2f2f2  ccccEE-\b1b1
6810259SAndrew.Bardsley@arm.com  b2b2-/F1fefeF1      -/F2fifiF2        DDDD        EEEiEiEiEi  f3f3f3f3f3f3f3f3f3f3f3  ccccEE-/b1b1
6910259SAndrew.Bardsley@arm.com        F1fefeF1/-2121/-F2fifiF2        DDDD        EEEiEiEiEi  f3f3f3f3f3f3f3f3f3f3f3  ccccEE
7010259SAndrew.Bardsley@arm.com        F1F1F1F1\-2121\-F2F2F2F2        DDDD        EEEiEiEiEi  f4f4f4f4f4f4f4f4f4f4f4  ccccEE
7110259SAndrew.Bardsley@arm.com                                                    EEEiEiEiEi  f4f4f4f4f4f4f4f4f4f4f4  ccccEE
7210259SAndrew.Bardsley@arm.com                      FiFiFiFi    DiDiDiDi          EE          f5f5f5f5f5f5f5f5f5f5f5  ccccEE
7310259SAndrew.Bardsley@arm.com                      Fi    Fi    Di    Di          EE          f5f5f5f5f5f5f5f5f5f5f5  ccccEE
7410259SAndrew.Bardsley@arm.com                      FiFiFiFi    DiDiDiDi          EE          f6f6f6f6f6f6f6f6f6f6f6  ccccEE
7510259SAndrew.Bardsley@arm.com                                                    EE          f6f6f6f6f6f6f6f6f6f6f6  ccccEE
7610259SAndrew.Bardsley@arm.com                                                    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
7710259SAndrew.Bardsley@arm.com>>>
7810259SAndrew.Bardsley@arm.com
7910259SAndrew.Bardsley@arm.com# Macros for block type appearance.  Macros are expanded in the 'block'
8010259SAndrew.Bardsley@arm.com# lines below and can include other macros.
8110259SAndrew.Bardsley@arm.com#
8210259SAndrew.Bardsley@arm.com# Attributes are name=value pairs.
8310259SAndrew.Bardsley@arm.com# Available names (and valid values);
8410259SAndrew.Bardsley@arm.com#
8510259SAndrew.Bardsley@arm.com# shape: {fifo, box, openBottom}
8610259SAndrew.Bardsley@arm.com# stripDir: {vert, horiz}
8710259SAndrew.Bardsley@arm.com# stripOrd: {RL, LR}
8810259SAndrew.Bardsley@arm.com# decoder: {insts, lines, branch, dcache, counts}
8910259SAndrew.Bardsley@arm.com# border: {thin, mid, thick}
9010259SAndrew.Bardsley@arm.com# dataElement: <name>
9110259SAndrew.Bardsley@arm.com# hideId: ({T, S, P, L, F, E})*
9210259SAndrew.Bardsley@arm.com# name: <string>
9310259SAndrew.Bardsley@arm.com# colours: ({U, B, -, E, R, F, r, w, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9})*
9410259SAndrew.Bardsley@arm.com# type: {key, block}
9510259SAndrew.Bardsley@arm.com
9610259SAndrew.Bardsley@arm.com# macro fifo: shape=fifo stripDir=vert
9710259SAndrew.Bardsley@arm.commacro fifo: shape=openBottom stripDir=horiz stripOrd=RL border=mid
9810259SAndrew.Bardsley@arm.commacro fu: decoder=insts border=mid name="" nameLoc=left
9910259SAndrew.Bardsley@arm.com# macro back: decoder=back border=mid dataElement=space name=""
10010259SAndrew.Bardsley@arm.commacro prediction: decoder=branch border=mid dataElement=prediction name=""
10110259SAndrew.Bardsley@arm.commacro forward: border=mid name=""
10210259SAndrew.Bardsley@arm.commacro dcache: fifo decoder=dcache dataElement=addr
10310259SAndrew.Bardsley@arm.commacro icache: fifo decoder=lines
10410259SAndrew.Bardsley@arm.commacro cacheFrame: stripDir=vert decoder=frame blankStrips=5 \
10510259SAndrew.Bardsley@arm.com    dataElement=in_tlb_mem
10610259SAndrew.Bardsley@arm.commacro activity: decoder=counts shorten=2 border=mid
10710259SAndrew.Bardsley@arm.commacro inputBuffer: name="inputBuffer" fifo
10810259SAndrew.Bardsley@arm.commacro seqNum: decoder=counts border=mid
10910259SAndrew.Bardsley@arm.commacro streamFrame: decoder=frame stripDir=vert dataElement=streamSeqNum
11010259SAndrew.Bardsley@arm.commacro predictionFrame: decoder=frame stripDir=vert dataElement=predictionSeqNum
11110259SAndrew.Bardsley@arm.com
11210259SAndrew.Bardsley@arm.com# Block descriptions:
11310259SAndrew.Bardsley@arm.com# description ::= <char>: <unit-name-in-trace>
11410259SAndrew.Bardsley@arm.com#   ( {<macro-name>, <name>=<value> )*
11510259SAndrew.Bardsley@arm.com# name ::= ? alphanumeric name with dots ?
11610259SAndrew.Bardsley@arm.com# value ::= "(<char-except-">)*", <char-except-' '>* }
11710259SAndrew.Bardsley@arm.com
11811567Smitch.hayenga@arm.comFi: fetch2.inputBuffer0 inputBuffer decoder=lines
11911567Smitch.hayenga@arm.comDi: decode.inputBuffer0 inputBuffer decoder=insts hideId=E
12011567Smitch.hayenga@arm.comEi: execute.inputBuffer0 inputBuffer stripDir=horiz decoder=insts border=mid
12110259SAndrew.Bardsley@arm.comF1: fetch1 streamFrame blankStrips=11 name="Fetch1"
12210259SAndrew.Bardsley@arm.comfe: fetch1 decoder=lines border=thin name="Line"
12310259SAndrew.Bardsley@arm.comF2: fetch2 predictionFrame blankStrips=11 name="Fetch2"
12410259SAndrew.Bardsley@arm.comfi: fetch2 decoder=insts border=thin name="Insts"
12510259SAndrew.Bardsley@arm.comDD: decode decoder=insts name="Decode"
12610259SAndrew.Bardsley@arm.comEE: execute streamFrame blankStrips=21 name="Execute"
12710259SAndrew.Bardsley@arm.comcc: execute decoder=insts name="Commit" border=mid
12810259SAndrew.Bardsley@arm.com12: f1ToF2 forward decoder=lines
12910259SAndrew.Bardsley@arm.com21: f2ToF1 prediction
13010259SAndrew.Bardsley@arm.com2D: f2ToD forward decoder=insts hideId=E
13110259SAndrew.Bardsley@arm.comDE: dToE forward decoder=insts
13210259SAndrew.Bardsley@arm.comb1: eToF1 forward decoder=branch
13310259SAndrew.Bardsley@arm.comb2: eToF1 forward decoder=branch
13410259SAndrew.Bardsley@arm.comIP: fetch1 cacheFrame name="Fetch queues"
13510259SAndrew.Bardsley@arm.comLS: execute.lsq cacheFrame name="LSQ"
13610259SAndrew.Bardsley@arm.comir: fetch1.requests icache name="Requests"
13710259SAndrew.Bardsley@arm.comit: fetch1.transfers icache name="Transfers"
13810259SAndrew.Bardsley@arm.comdr: execute.lsq.requests dcache name="Requests"
13910259SAndrew.Bardsley@arm.comdt: execute.lsq.transfers dcache name="Transfers"
14010259SAndrew.Bardsley@arm.comsb: execute.lsq.storeBuffer dcache name="Store buffer"
14110259SAndrew.Bardsley@arm.comKK: _ type=key colours="UB-ERFrw0123456789"
14210259SAndrew.Bardsley@arm.comf0: execute.fu.0 fu shorten=2 name=Int
14310259SAndrew.Bardsley@arm.comf1: execute.fu.1 fu shorten=2 name=Int
14410259SAndrew.Bardsley@arm.comf2: execute.fu.2 fu shorten=2 name=Mul
14510259SAndrew.Bardsley@arm.comf3: execute.fu.3 fu shorten=2 name=Div
14610259SAndrew.Bardsley@arm.comf4: execute.fu.4 fu shorten=2 name=Float
14710259SAndrew.Bardsley@arm.comf5: execute.fu.5 fu shorten=2 name=Mem
14810259SAndrew.Bardsley@arm.comf6: execute.fu.6 fu shorten=2 name=Misc
14911567Smitch.hayenga@arm.comiq: execute.inFlightInsts0 fifo decoder=insts name="inFlightInsts"
15011567Smitch.hayenga@arm.comim: execute.inFUMemInsts0 fifo decoder=insts name="inFU..."
15111567Smitch.hayenga@arm.comsc: execute.scoreboard0 name="scoreboard" decoder=indexedCounts \
15210259SAndrew.Bardsley@arm.com    dataElement=busy border=mid name="scoreboard" strips=38 stripelems=3
15310259SAndrew.Bardsley@arm.comsa: activity dataElement=stages activity name="Stage activity"
15410259SAndrew.Bardsley@arm.comac: activity dataElement=activity decoder=counts border=mid name="Activity"
155