Hi,
I am not certain what you mean by the “start command”. If I am thinking correctly, this is something that the software can send *from* the SpiNNaker board to the external device board (your FPGA in this case) which tells you that the simulation has started. This will just be a multicast packet with a particular key that you can recognise (the key is configurable in the software).
In terms of sending messages into SpiNNaker, it is worth confirming that for each value in the table, the 1 represents a toggle between high and low and 0 means no toggle. So you don’t send 1 as high and 0 as low, just to make sure you are doing this, as it has caught people out in the past!
So if you start all wires at low, you can send 0x1 as (for links L[6-0]):
Low Low High Low Low High Low
Following this you would receive a single acknowledge, which would go to High, then you should send the 0x0 as:
Low Low Low Low Low High High
i.e. for 0 you transition L4 and L0, so L1 that was High from sending 0x1 stays high (no transition). You should then get another acknowledge transition back to Low to indicate the reception again.
Can you confirm that you are doing this? I should point out that I am definitely more of a software person myself, but I think this is how the protocol goes…
Thanks,
Andrew :)
--
You received this message because you are subscribed to the Google Groups "SpiNNaker Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
spinnakeruser...@googlegroups.com.
To view this discussion on the web, visit
https://groups.google.com/d/msgid/spinnakerusers/ce0b2160-8a91-444d-a29a-8a8160cf73dfn%40googlegroups.com.
Hi,
If waiting a number of seconds resumes the transfer, one thought would be that the routers on the machine are not configured to do anything with the received packets. This might mean that they end up “default routing” around the board. This might mean that the packets loop forever, particularly on a 4-chip board, which might then clog up the board. One thought then is to load some routes on to the machine which either sends the packets to a core, or else tells the router not to send the packets anywhere; and if it sends them to a core, you probably want the core to actually accept them as that can also lead to delays while the router drops the packets.
An example of a “simple” application on SpiNNaker is here:
https://github.com/SpiNNakerManchester/spinnaker_tools/tree/master/apps/simple
This does more than you need, but you could probably set up the route here to be key 0, mask 0, which should then route everything to the core:
https://github.com/SpiNNakerManchester/spinnaker_tools/blob/master/apps/simple/simple.c#L104-L107
You could then disable these events, so only the multicast packet event is active:
https://github.com/SpiNNakerManchester/spinnaker_tools/blob/master/apps/simple/simple.c#L399-L401
You could also disable the activation of the DMA when a packet is received and replace it with an io_printf:
https://github.com/SpiNNakerManchester/spinnaker_tools/blob/master/apps/simple/simple.c#L311-L315
Let us know if you need any other help.
Andrew :)
To view this discussion on the web, visit https://groups.google.com/d/msgid/spinnakerusers/3405c110-ee3b-4947-8da0-f85db527b32dn%40googlegroups.com.
Sending the flit "0111" or "1101", meaning 0x7 or 0xd causes the acknowledge to stop toggling.