flush();
}
- public void sendToken(Destination d) { sendWord(d, new BitVector(fpga.getWordWidth()), true); }
- public void sendWord(Destination d, BitVector word) { sendWord(d, word, false); }
- private void sendWord(Destination d, BitVector word, boolean token) {
+ public void sendToken(Destination d) { sendWord(d, new BitVector(fpga.getWordWidth()), null, true); }
+ public void sendWord(Destination d, BitVector word) { sendWord(d, word, null, false); }
+ public void sendWord(Destination d, BitVector word, BitVector signal) { sendWord(d, word, signal, false); }
+ private void sendWord(Destination d, BitVector word, BitVector signal, boolean token) {
try {
Dock dispatchFrom = fpga.debugShip.getDock("in");
long out = 0;
out = fpga.PACKET_DATA.setval(out, word);
out = fpga.PACKET_TOKEN.setval(out, token ? 1 : 0);
- out = fpga.PACKET_SIGNAL.setval(out, 0);
+ if (signal==null)
+ out = fpga.PACKET_SIGNAL.setval(out, 0);
+ else
+ out = fpga.PACKET_SIGNAL.setval(out, signal);
out = fpga.PACKET_DEST.setval(out, ((FpgaPath)dispatchFrom.getPath(d, null)).toLong());
synchronized(this) {
for(int i=9; i>=0; i--)