Question on TRACE data
 ozpropdev            
            
                Posts: 2,793
ozpropdev            
            
                Posts: 2,793            
            
                    Hi Chip,
A qurstion on the 32 bit mode of SETRACE
The docs show only 30 bits of data. The 2 bits above the 16 bit PC are not used?
The PC for hub exec is right shifted 2 bits to fit the 16 bit space.
Possible candidates could be TLOCK,CNT rollover or the LIFO index.
Maybe the forumisters have some ideas for the spare 2 bits?
                            A qurstion on the 32 bit mode of SETRACE
The docs show only 30 bits of data. The 2 bits above the 16 bit PC are not used?
The PC for hub exec is right shifted 2 bits to fit the 16 bit space.
The 32-bit trace output is comprised of the following signals, from MSB to LSB:
    TASK[1..0]   - the executing task, 0..3
    HUB          - hub cycle that comes once every 8 clocks
    FETCH        - pipeline stall due to hub instruction fetch
    GO           - pipeline not stalled and instruction done
    COND         - execution condition
    JUMP         - a jump is executing
    VID_ACK      - WAITVID able to execute
    CTRA_SYNC    - CTRA is rolling over
    CTRB_SYNC    - CTRB is rolling over
    SERA_RX_RDY  - SERA's receive buffer is full, ready for SERINA
    SERA_TX_RDY  - SERA's transmit buffer is empty, ready for SEROUTA
    SERB_RX_RDY  - SERB's receive buffer is full, ready for SERINB
    SERB_TX_RDY  - SERB's transmit buffer is empty, ready for SEROUTB
    not used
    not used
    PC[15..0]    - full 16 bits of the program counter
Possible candidates could be TLOCK,CNT rollover or the LIFO index.
Maybe the forumisters have some ideas for the spare 2 bits?

 
                            
Comments
I'm getting incorrect data on the VID_ACK and CTRA bits in 32 bit trace samples.
So I set up CTRA and CTRB and they appear in the SERA_RX_RDY and SERA_TX_RDY bits.
Are bits 24 and 23 allocated to something else?
This appears to be the correct layout.
The counters (baud generators) in the SERA & SERB circuits do not use the counters as they have their own internal counters. Could this be why you are not seeing the CTRA/B bits change???
That's right. The serial transceivers have their own counters. My test shows the CTRA and CTRB rollovers appearing in the wrong place.
I am also seeing unidentified data in the VID_ACK and CTRA_SYNC bits.
In my test I have CTRA and CTRB rolling over every 4 clocks. You can see the expected pattern appearing in SERA_RX_RDY (RXA) and SERA_TX_RDY (TXA) and junk in VID_ACK and CTRA_SYNC.
BTW. I am not using VIDEO or SERA,SERB.
I think you are saying this is a labeling/mapping document errata that Chip needs to check ?
Any chance of posting the new TRACE bit labels/definitions?
Cheers
Brian
Nothing has changed there, yet, from the prior version. I'm going to get some sleep here, but I'll post this data when I get back to work. Tomorrow I should be into that part of Prop2_Docs.txt.
wire [15:0] trace16 = { t[1:0], hub_sel[0], go, cond, v, jump, p[8:0] }; wire [31:0] trace32 = { t[1:0], hub_sel[0], stall, go, cond, v, jump, z, c, vid_ack, ctra_sync, ctrb_sync, sera_rx_ready, sera_tx_ready, serb_rx_ready, p[15:0] };t[1:0] - task number 0..3
hub_sel[0] - hub cycle
stall - high when loading icache (pipeline is stalled)
go - high on last clock of current instruction
cond - high when execution condition is true
v - high when instruction is valid, low when instruction is cancelled (trailing a jump)
jump - high when instruction is jumping
z - z flag
c - c flag
p[15:0]/p[8:0] - program counter
I'm not yet to this part of the documentation, but I can see that you need these right now.