Let's start with Windows. I compile the example as a release build, click on the yellow XTA icon, set from and to endpoints in the code at points A and B respectively in the code
Code: Select all
// Output start bit
txd <: 0 @ time; // Endpoint A
// Output data bits
for (int i = 0; i < 8; i++) {
time += BIT_TIME;
txd @ time <: >> byte; // Endpoint B
Code: Select all
Node: 0, Core :0
Fail with 23 unknowns, Num Paths 481
Worst Case:Unresolved
Required 8.7ns, 115.21 MHz, 0 thread cycles
Violation:Unresolved
Show route in console(right click menu of selected route) gives:
Code: Select all
xta 9>version
This is an unreleased/unsupported version. (build 1752)
xta 10>xta 10>print routeinfo 0
endpoints: C:/Documents and Settings/Administrator/XMOS/workspace/UART-loopback-example/src/uart-loopback.xc:54 to C:/Documents and Settings/Administrator/XMOS/workspace/UART-loopback-example/src/uart-loopback.xc:59
Node: 0, Core: 0
Fail with 23 unknowns, Num Paths: 481
Worst Case: Unresolved
Required: 8.7 ns, 115.21 MHz, 0 thread cycles
Violation: Unresolved
xta 3>print trace 0
* 0.0: (10.0ns) 0x1015a txByte + 10 out (r2r) res[r1], r0 (P)
10.0: (10.0ns) 0x1015c txByte + 12 ldw (ru6) r0, sp[0x0]
* 20.0: (10.0ns) 0x1015e txByte + 14 syncr (1r) res[r0] (P)
30.0: (10.0ns) 0x10160 txByte + 16 ldw (ru6) r0, sp[0x0]
40.0: (10.0ns) 0x10162 txByte + 18 getts (2r) r0, res[r0]
50.0: (10.0ns) 0x10164 txByte + 20 stw (ru6) r0, sp[0x2]
60.0: (10.0ns) 0x10166 txByte + 22 ldc (ru6) r0, 0x0
70.0: (10.0ns) 0x10168 txByte + 24 stw (ru6) r0, sp[0x3]
80.0: (10.0ns) 0x1016a txByte + 26 ldw (ru6) r1, sp[0x3]
90.0: (10.0ns) 0x1016c --FNOP--
100.0: (10.0ns) 0x1016c txByte + 28 ldc (ru6) r0, 0x8
110.0: (10.0ns) 0x1016e txByte + 30 lss (3r) r0, r1, r0
120.0: (10.0ns) 0x10170 txByte + 32 bt (ru6) r0, 0x1
130.0: (10.0ns) 0x10172 txByte + 34 bu (u6) 0x10
140.0: (10.0ns) 0x10194 txByte + 68 ldw (ru6) r1, sp[0x2]
150.0: (10.0ns) 0x10196 --FNOP--
160.0: (10.0ns) 0x10196 txByte + 70 ldc (lru6) r0, 0x364
170.0: (10.0ns) 0x1019a txByte + 74 add (3r) r0, r1, r0
180.0: (10.0ns) 0x1019c txByte + 76 stw (ru6) r0, sp[0x2]
190.0: (10.0ns) 0x1019e txByte + 78 ldw (ru6) r1, sp[0x0]
200.0: (10.0ns) 0x101a0 --FNOP--
210.0: (10.0ns) 0x101a0 txByte + 80 ldw (ru6) r0, sp[0x2]
* 220.0: (10.0ns) 0x101a2 txByte + 82 setpt (r2r) res[r1], r0 (P)
230.0: (10.0ns) 0x101a4 txByte + 84 ldw (ru6) r1, sp[0x0]
240.0: (10.0ns) 0x101a6 txByte + 86 mkmsk (rus) r0, 0x1
* 250.0: (10.0ns) 0x101a8 txByte + 88 out (r2r) res[r1], r0 (P)
etc.
On typing version at the XTA prompt it reports that
This adds but little reassurance to a process that I feel, already, is not going well.This is an unreleased/unsupported version. (build 1752)
I have asked to trace six lines and, indeed ,one can see that, at some level, that this is acknowledged:
However, the tool then completely ignores this and tells me it has found 481 paths through this small section of code, with 23 unknowns. There's about 23 lines of assembler between the endpoints: it seems not to know what it's doing for any of them. Which brings me on to the next feature: it doesn't know how long any I/O instructions take. It marks them all with a warning triangle exclamation. This is a little sad, as it's pretty much the whole point of this tool's existence. The ports used here are simple sampled I/O; there is no external handshaking configured on them. There is no unspecified external timing dependency, their timing operation is completely determined from within the core and should be completely deterministic. The XN config file specifies all the clock frequencies being used.example/src/uart-loopback.xc:54 to C:/Documents and Settings/Administrator/XMOS/workspace/UART-loopback-example/src/uart-loopback.xc:59
The instructions for which the tool could not fathom a timing were, amongst others:
Code: Select all
0x1015a out (r2r) res[r1], r0
0x1015e syncr (1r) res[r0]
0x10182 setpt (r2r) res[r1], r0
I'm much deflated by the whole experience. The XTA tool shows promise but, for me, its usefulness is currently dismal. I may be missing something. If you've made it work I'd love to hear from you! If you're involved in developing it I hope this helps and the issues can be resolved. It would be good news for all of us!
Max.