Communication between 3 XC-1As

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
User avatar
segher
XCore Expert
Posts: 844
Joined: Sun Jul 11, 2010 1:31 am

Post by segher »

If you have one "master" node, and the other two nodes only talk to the master (so
never to each other), you can get away with only one link between the master and
each other node, as far as I can see.

You essentially have two separate networks that way.


User avatar
tomcarter259
Member++
Posts: 28
Joined: Tue Mar 15, 2011 3:29 pm

Post by tomcarter259 »

Thanks Dave that's very helpful. I'll give that a go.
If you have one "master" node, and the other two nodes only talk to the master (so
never to each other), you can get away with only one link between the master and
each other node, as far as I can see.

You essentially have two separate networks that way.
That's a great idea too. I'll try that if I can't get the first method to work

Cheers for your input everyone
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

Intrewsting!

Have anyone tried to "boost" a XDK, with XC-1's.
I would like to boost my XDK with 1 or 2 XC-1.

XMOS maybe have some (old) examples of XN files with multi XDK?
I remember projects that connected several XDKs via XMOS links sucessfully.

There is examples out there with several L chips, but any XN-files for a low count of G chips?

(Yes I have started to read all new doc. and I think most answers are in there, but it easier to start playing
with something already working)

@Dave: Do I need to acess the CPLD on the XDK to make it working over JTAG?
@tomcarter259: Will you post a project with an example if you make it up and running ?
Probably not the most confused programmer anymore on the XCORE forum.
User avatar
dave
Member++
Posts: 31
Joined: Thu Dec 10, 2009 10:11 pm

Post by dave »

I forgot to point out in my previous post that it is also possible to build fully connected networks of up to 8 G4s. The nodes can be numbered (eg) 00000001, 00000011, 00000111, ... , 11111111.

So 3 G4s can be connected in a triangle using two links on each G4.
User avatar
tomcarter259
Member++
Posts: 28
Joined: Tue Mar 15, 2011 3:29 pm

Post by tomcarter259 »

lilltroll wrote: @tomcarter259: Will you post a project with an example if you make it up and running ?
Yeah once it is working to some extent I'll post up a project.

There doesn't appear to be much in the way of example code for xmos links between G4s so I'll post anything I manage to get working
User avatar
tomcarter259
Member++
Posts: 28
Joined: Tue Mar 15, 2011 3:29 pm

Post by tomcarter259 »

I have tried both this:
dave wrote:If you only want to connect 3 G4s, you can remove (eg) the right hand node (11) in the diagram and one of the links between nodes 01 and 10. This will leave 2 links on node 00, 3 links on node 01 and one link on node 10.
and this:
dave wrote:So 3 G4s can be connected in a triangle using two links on each G4.
both of which result in the error:
XC-1A.xn: Error: XN11049 Network positioning failed (may be unsupported topology)
which I'm guessing is due to the limitations with the toolchain. Does anyone know a way around this? I can't imagine its possible to not use the toolchain?

@Dave did you find out why the limitation exists?
User avatar
dave
Member++
Posts: 31
Joined: Thu Dec 10, 2009 10:11 pm

Post by dave »

The tools issue is that there is an automatic system for allocating node numbers. Unfortunately this can not cope with all of the topologies that the architecture can support.

What there should be is a low-level notation that allows node numbers to be explicitly set. This would ensure that everything the architecture can do, the tools can also do. It's just the equivalent of using assembler to do things the high-level languages can't. Of course, this can be targetted by high level tools like the one we have that sets node numbers automatically.

I'm hoping we can find a way to fix this.

Tom - as you are here in Bristol, another solution might be for me to lend you another XC-1A. Then you would have four and the tools should work!
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

I have one XC-1A, 2 XC-1 and one XDK so I'm still on with 4 G4's !
Probably not the most confused programmer anymore on the XCORE forum.
m_y
Experienced Member
Posts: 69
Joined: Mon May 17, 2010 10:19 am

Post by m_y »

The tools (by which I mean up to and including 11.2) do not support G series configurations other than complete Nth degree hypercubes. These are the only configurations that the G series switch can support with an arbitrary number of links between each node and with full, canonical routing. For L series devices this is augmented by support for lines. An XN file which describes any other topology will be rejected by the tools. There is no workaround for this.

Regarding systems built out of multiple boards: whilst it's easy enough to build applications for this, booting it will be problematic. Here are some of the reasons: xgdb does not support multiple jtag chains; xflash does not support writing to systems with multiple jtag chains; the G4 boot is sensitive to start-up timing; we've observed some issues with some boards in these situations (issues which are being looked at now).
User avatar
tomcarter259
Member++
Posts: 28
Joined: Tue Mar 15, 2011 3:29 pm

Post by tomcarter259 »

Ok so I'm going with 4 XC-1As so topology issues are avoided.
m_y wrote:Regarding systems built out of multiple boards: whilst it's easy enough to build applications for this, booting it will be problematic. Here are some of the reasons: xgdb does not support multiple jtag chains; xflash does not support writing to systems with multiple jtag chains; the G4 boot is sensitive to start-up timing; we've observed some issues with some boards in these situations (issues which are being looked at now).
@m_y How problematic are we saying here? If I understand, I'm going to have to boot each of the boards up individually via usb, and all within a short space of time (~1 second)?