anchor.diff:          serdes_v.reset(v);
       endmethod
       method Bit#(1)                empty();
  -        return serdes_v.empty();
  +        //return serdes_v.empty();
  +        return dfifo.empty();
       endmethod
       method Bit#(10)               dataout();
  -        return serdes_v.dataout();
  +        //return serdes_v.dataout();
  +        return dfifo.dataout()[9:0];
       endmethod
   endmodule: mkIserdesDatadeser
   
  
positive.code:       method                  align_start(ALIGN_START) enable((*inhigh*) en1) clocked_by (clock);
        method ALIGN_BUSY       align_busy() clocked_by (clock);
        method ALIGNED          aligned() clocked_by (clock);
        method SAMPLEINFIRSTBIT sampleinfirstbit() clocked_by (clock);
        method SAMPLEINLASTBIT  sampleinlastbit() clocked_by (clock);
        method SAMPLEINOTHERBIT sampleinotherbit() clocked_by (clock);
        method                  autoalign(AUTOALIGN) enable((*inhigh*) en7) clocked_by (clock);
        method                  training(TRAINING) enable((*inhigh*) en8) clocked_by (clock);
        method                  manual_tap(MANUAL_TAP) enable((*inhigh*) en9) clocked_by (clock);
        method                  rden(FIFO_RDEN) enable((*inhigh*) en12) clocked_by (clock);
        method                  fifo_wren(FIFO_WREN) enable((*inhigh*) en10) clocked_by (clkdiv);
        method                  delay_wren(DELAY_WREN) enable((*inhigh*) en11) clocked_by (clkdiv);
        method                  reset(RESET) enable((*inhigh*) en16) clocked_by (clkdiv);
        method FIFO_EMPTY    empty() clocked_by (clock);
        method FIFO_DATAOUT  dataout() clocked_by(clock);
     schedule (fifo_wren, reset, delay_wren) CF (fifo_wren, reset, delay_wren);
     schedule (ibufds_out, align_start, autoalign, training, manual_tap, rden, dataout)
        CF (ibufds_out, align_start, autoalign, training, manual_tap, rden, dataout);
  endmodule: mkIserdesbvi
  
  module mkIserdesDatadeser#(Clock clkdiv, Clock serdest, Bit#(1) align_start,
     Bit#(1) autoalign, Bit#(10) training, Bit#(10) manual_tap, Bit#(1) rden)(IserdesDatadeser);
      IserdesDatadeser serdes_v <- mkIserdesbvi(clkdiv, serdest);
      rule serdesrule;
      serdes_v.align_start(align_start);
      serdes_v.autoalign(autoalign);
      serdes_v.training(training);
      serdes_v.manual_tap(manual_tap);
      serdes_v.rden(rden);
      endrule
      method Action ibufds_out(Bit#(1) v);
          serdes_v.ibufds_out(v);
      endmethod
  
negative.code:         return serdes_v.aligned();
      endmethod
      method Bit#(1)                sampleinfirstbit();
          return samplein_wire[2];
      endmethod
      method Bit#(1)                sampleinlastbit();
          return samplein_wire[1];
      endmethod
      method Bit#(1)                sampleinotherbit();
          return samplein_wire[0];
      endmethod
      method Action                 delay_wren(Bit#(1) v);
          serdes_v.delay_wren(v);
  