anchor.diff:     interface Vector#(pipeCount, PipeOut#(Bit#(32))) data;
      interface PipeIn#(Bit#(32))                      inputPipe;
   endinterface
  +interface SerialPortalMux#(numeric type pipeCount);
  +   interface Vector#(pipeCount, PipeIn#(Bit#(32))) data;
  +   interface PipeOut#(Bit#(32))                    outputPipe;
  +endinterface
   
   typedef enum {
      Idle,
  
positive.code:    endrule
  
     rule sendHeader if (state == MessageHeader && interruptStatus);
        Bit#(32) hdr <- toGet(pipes[readyChannel]).get();
        Bit#(16) totalWords = hdr[15:0];
        let messageWords = totalWords-1;
        messageWordsProbe <= messageWords;
  
negative.code:    let messageWordsProbe <- mkProbe();
     let messageDataProbe <- mkProbe();
  
     for (Integer i = valueOf(pipeCount) - 1; i >= 0; i = i - 1) begin
        if (readyBits[i]) begin
           interruptStatus = True;
           readyChannel = fromInteger(i);
  