anchor.diff:         capture_delay <= bscan.sel() == 1 && bscan.capture() == 1;
      endrule
   
  -   //rule addr_clock_crossing;
  -       //addr_jtag.send(pack(addr));
  -   //endrule
  +   rule addr_clock_crossing;
  +       addr_jtag.send(pack(addr));
  +   endrule
   
      rule captureRule if (bscan.sel() == 1 && bscan.capture() == 1);
          requestWire <= tagged Valid BRAMRequest {write:False, responseOnWrite:False, address:unpack(addrReg), datain:?};
  
positive.code:        addrReg <= addr;
     endrule
  
     interface BRAMClient bramClient;
        interface Get request;
  	 method ActionValue#(BRAMRequest#(atype,dtype)) get() if (requestWire matches tagged Valid .req);
  
negative.code: 	  let d = fromMaybe(unpack(0), m);
  	  shift = pack(d);
         end
         tdow <= shift[0];
         let v = (shift >> 1);
         v[dsz-1] = bscan.tdi();
         shiftReg <= v;
     endrule
  
     rule updateRule if (bscan.sel() == 1 && bscan.update() == 1 && bscan.capture() == 0);
  