anchor.diff:  } AxiRead#(numeric type data_width, numeric type id_width);
   
   interface AxiMasterCommon#(numeric type data_width, numeric type id_width);
  -    method Action             aclk(Bit#(1) v); // common
  -    method Bit#(1)            aresetn();      // common
  -
  -    method Bit#(1)            arvalid();
  +    method Action             aclk(Bit#(1) v);
  +    method Bit#(1)            aresetn();
       interface Get#(AxiREQ#(id_width)) req_ar;
  -    method Action             arready(Bit#(1) v);
  -
  -    method Bit#(1)            awvalid();
       interface Get#(AxiREQ#(id_width)) req_aw;
  -    method Action             awready(Bit#(1) v);
  -
  -    method Action             rvalid(Bit#(1) v);
       interface Put#(AxiRead#(data_width, id_width)) resp_read;
  -    method Bit#(1)            rready();
  -
  -    method Bit#(1)            wvalid();
       interface Get#(AxiWrite#(data_width, id_width)) resp_write;
  -    method Action             wready(Bit#(1) v);
  -
  -    method Action             bvalid(Bit#(1) v);
       interface Put#(AxiRESP#(id_width)) resp_b;
  -    method Bit#(1)            bready();
   endinterface
   
   interface AxiSlaveCommon#(numeric type data_width, numeric type id_width);
  -    method Action             aclk(Bit#(1) v); // common
  -    method Bit#(1)            aresetn();      // common
  -
  -    method Action             arvalid(Bit#(1) v);
  +    method Action             aclk(Bit#(1) v);
  +    method Bit#(1)            aresetn();
       interface Put#(AxiREQ#(id_width)) req_ar;
  -    method Bit#(1)            arready();
  -
  -    method Action             awvalid(Bit#(1) v);
       interface Put#(AxiREQ#(id_width)) req_aw;
  -    method Bit#(1)            awready();
  -
  -    method Action             wvalid(Bit#(1) v);
       interface Put#(AxiWrite#(data_width, id_width)) resp_write;
  -    method Bit#(1)            wready();
  -
  -    method Bit#(1)            rvalid();
       interface Get#(AxiRead#(data_width, id_width)) resp_read;
  -    method Action             rready(Bit#(1) v);
  -
  -    method Bit#(1)            bvalid();
       interface Get#(AxiRESP#(id_width)) resp_b;
  -    method Action             bready(Bit#(1) v);
   endinterface
   
   interface AxiSlaveHighSpeed#(numeric type data_width, numeric type id_width);
  
positive.code:                 endmethod
              endinterface
              interface Get resp_read;
                  method ActionValue#(AxiRead#(data_width, id_width)) get() if (vs_axi_hp[i].rvalid());
                      AxiRead#(data_width, id_width) v;
                      v.r.id = vs_axi_hp[i].rid();
                      v.r.resp = vs_axi_hp[i].rresp();
  
negative.code:                      v.qos = vm_axi_gp[i].awqos();
                       v.size = vm_axi_gp[i].awsize();
  
  	             vm_axi_gp[i].awready(1);
                       return v;
                  endmethod
              endinterface
              interface Put resp_read;
                  method Action put(AxiRead#(32, id_width) v) if (vm_axi_gp[i].rready() != 0);
                      vm_axi_gp[i].rid(v.r.id);
                      vm_axi_gp[i].rresp(v.r.resp);
                      vm_axi_gp[i].rdata(v.rd.data);
                      vm_axi_gp[i].rlast(v.rd.last);
  
  	            vm_axi_gp[i].rvalid(1);
                  endmethod
              endinterface
              interface Get resp_write;
                   method ActionValue#(AxiWrite#(32, id_width)) get() if (vm_axi_gp[i].wvalid() != 0);
                       AxiWrite#(32, id_width) v;
                       v.wid = vm_axi_gp[i].wid();
                       v.wstrb = vm_axi_gp[i].wstrb();
                       v.wd.data = vm_axi_gp[i].wdata();
                       v.wd.last = vm_axi_gp[i].wlast();
  
  	             vm_axi_gp[i].wready(1);
                       return v;
                  endmethod
              endinterface
              interface Put resp_b;
                  method Action put(AxiRESP#(id_width) v) if (vm_axi_gp[i].bready() != 0);
                      vm_axi_gp[i].bid(v.id);
                      vm_axi_gp[i].bresp(v.resp);
  	       
  	            vm_axi_gp[i].bvalid(1);
                  endmethod
              endinterface
              method aclk = vm_axi_gp[i].aclk;
              method aresetn = vm_axi_gp[i].aresetn;
              endinterface;
      for (Integer i = 0; i < 2; i = i + 1)
         begin
         rule axi_master_handshake1;
  	    vs_axi_gp[i].arvalid(vtopsw_axi_gp[i].arvalid);
         endrule
         rule axi_master_handshake2;
  	    vs_axi_gp[i].awvalid(vtopsw_axi_gp[i].awvalid);
         endrule
         rule axi_master_handshake3;
              vs_axi_gp[i].rready(vtopsw_axi_gp[i].rready);
         endrule
         rule axi_master_handshake4;
  	    vs_axi_gp[i].wvalid(vtopsw_axi_gp[i].wvalid);
         endrule
         rule axi_master_handshake5;
              vs_axi_gp[i].bready(vtopsw_axi_gp[i].bready);
         endrule
         end
      for (Integer i = 0; i < 2; i = i + 1)
          vtops_axi_gp[i] = interface AxiSlaveCommon#(32, id_width);
              interface Put req_ar;
                  method Action put(AxiREQ#(id_width) v) if (vs_axi_gp[i].arready() != 0);
                      vs_axi_gp[i].araddr(v.addr);
                      vs_axi_gp[i].arburst(v.burst);
                      vs_axi_gp[i].arcache(v.cache);
  