anchor.diff:  import XilinxCells::*;
   import XbsvXilinxCells::*;
   
  -interface IserdesDatadeser;
  +interface Iserdesbvi;
      method Action                 ibufds_out(Bit#(1) v);
      method Action                 align_start(Bit#(1) v);
      method Bit#(1)                align_busy();
      method Bit#(1)                aligned();
  -   method Bit#(1)                sampleinfirstbit();
  -   method Bit#(1)                sampleinlastbit();
  -   method Bit#(1)                sampleinotherbit();
  +   method Bit#(3)                samplein();
      method Action                 autoalign(Bit#(1) v);
      method Action                 training(Bit#(10) v);
      method Action                 manual_tap(Bit#(10) v);
  -   method Action                 rden(Bit#(1) v);
      method Action                 delay_wren(Bit#(1) v);
      method Action                 fifo_wren(Bit#(1) v);
      method Action                 reset(Bit#(1) v);
  -   method Bit#(1)                empty();
  +   method Bit#(1)                fifo_wren_sync();
  +   //method Bit#(1)                fifo_reset();
  +   method Reset                  fifo_reset();
      method Bit#(10)               dataout();
  -endinterface: IserdesDatadeser
  +endinterface: Iserdesbvi
   
   import "BVI" iserdes_datadeser = 
  -module mkIserdesbvi#(Clock clkdiv, Clock serdest)(IserdesDatadeser);
  +module mkIserdesbvi#(Clock clkdiv, Clock serdest)(Iserdesbvi);
      Clock defaultClock <- exposeCurrentClock();
      Reset defaultReset <- exposeCurrentReset();
   
  
positive.code:         return serdes_v.aligned();
      endmethod
      method Bit#(1)                sampleinfirstbit();
          return serdes_v.sampleinfirstbit();
      endmethod
      method Bit#(1)                sampleinlastbit();
          return serdes_v.sampleinlastbit();
      endmethod
      method Bit#(1)                sampleinotherbit();
          return serdes_v.sampleinotherbit();
      endmethod
      method Action                 delay_wren(Bit#(1) v);
          serdes_v.delay_wren(v);
  
negative.code:         serdes_v.reset(v);
      endmethod
      method Bit#(1)                empty();
          //return serdes_v.empty();
          return dfifo.empty();
      endmethod
      method Bit#(10)               dataout();
          //return serdes_v.dataout();
          return dfifo.dataout()[9:0];
      endmethod
  endmodule: mkIserdesDatadeser
  
  