rtio-nmigen/traces/0/NOTES.md

1.6 KiB

Dissecting the failing trace

N.B. The value of a node n is given by Cat(n.payload.channel, ~n.valid)

Cycle #0 (MATCH)

Events: N/A

Values:

  • node0 value: 0010
    • node0 valid: 1
    • node0 channel: 010
    • node0 sequence: 00
  • node1 value: 0000
    • node1 valid: 1
    • node1 channel: 000
    • node1 sequence: 00
  • node2 value: 0001
    • node2 valid: 1
    • node2 channel: 001
    • node2 sequence: 11
  • node3 value: 0000
    • node3 valid: 1
    • node3 channel: 000
    • node3 sequence: 01

To compare:

  • node0 and node1
  • node2 and node3

Cycle #1 (MATCH)

Events: N/A

Values:

  • node0 value: 0000
    • node0 valid: 1
    • node0 channel: 000
    • node0 sequence: 00
  • node1 value: 0010
    • node1 valid: 1
    • node1 channel: 010
    • node1 sequence: 00
  • node2 value: 0000
    • node2 valid: 1
    • node2 channel: 000
    • node2 sequence: 01
  • node3 value: 0001
    • node3 valid: 1
    • node3 channel: 001
    • node3 sequence: 11

To compare:

  • node0 and node2
  • node1 and node3

Cycle #2 (NOMATCH - see trace for diff)

Events:

  • A replacement occurred when comparing node0 and node2

Values:

  • node0 value: 0000
    • node0 valid: 1
    • node0 channel: 000
    • node0 sequence: 01
  • node1 value: 0001
    • node1 valid: 1
    • node1 channel: 001
    • node1 sequence: 11
  • node2 value: 1000
    • node2 valid: 0
    • node2 channel: 000
    • node2 sequence: 00
  • node3 value: 0010
    • node3 valid: 1
    • node3 channel: 010
    • node3 sequence: 00

To compare:

  • node1 and node2

Cycle #3

TODO: fill this in after figuring out why my prediction for Cycle #2 fails to match generated trace