/********************************************** _ _ Cook Darwin __
_ descript: author : Cook.Darwin Version: VERA.0.0 created: ###### Tue Sep 10 15:48:12 CST 2019 madified: ***********************************************/ `timescale 1ns/1ps `include “define_macro.sv” module vcs_axi4_comptable #(
`parameter_string ORIGIN = "master", `parameter_string TO = "slaver"
)(
axi_inf origin, axi_inf to
);
generate if(TO==“mirror”)begin
if(ORIGIN=="slaver" || ORIGIN=="master")begin assign to.axi_awid = origin.axi_awid ; assign to.axi_awaddr = origin.axi_awaddr ; assign to.axi_awlen = origin.axi_awlen ; assign to.axi_awsize = origin.axi_awsize ; assign to.axi_awburst = origin.axi_awburst; assign to.axi_awlock = origin.axi_awlock ; assign to.axi_awcache = origin.axi_awcache; assign to.axi_awprot = origin.axi_awprot ; assign to.axi_awqos = origin.axi_awqos ; assign to.axi_awvalid = origin.axi_awvalid; assign to.axi_awready = origin.axi_awready; assign to.axi_wdata = origin.axi_wdata ; assign to.axi_wstrb = origin.axi_wstrb ; assign to.axi_wlast = origin.axi_wlast ; assign to.axi_wvalid = origin.axi_wvalid ; assign to.axi_wready = origin.axi_wready ; assign to.axi_bready = origin.axi_bready ; assign to.axi_bid = origin.axi_bid ; assign to.axi_bresp = origin.axi_bresp ; assign to.axi_bvalid = origin.axi_bvalid ; assign to.axi_arid = origin.axi_arid ; assign to.axi_araddr = origin.axi_araddr ; assign to.axi_arlen = origin.axi_arlen ; assign to.axi_arsize = origin.axi_arsize ; assign to.axi_arburst = origin.axi_arburst; assign to.axi_arlock = origin.axi_arlock ; assign to.axi_arcache = origin.axi_arcache; assign to.axi_arprot = origin.axi_arprot ; assign to.axi_arqos = origin.axi_arqos ; assign to.axi_arvalid = origin.axi_arvalid; assign to.axi_arready = origin.axi_arready; assign to.axi_rready = origin.axi_rready ; assign to.axi_rid = origin.axi_rid ; assign to.axi_rdata = origin.axi_rdata ; assign to.axi_rresp = origin.axi_rresp ; assign to.axi_rlast = origin.axi_rlast ; assign to.axi_rvalid = origin.axi_rvalid ; end else begin initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end end
end else if(TO==“mirror_rd”)begin
if(ORIGIN=="slaver" || ORIGIN=="master" || ORIGIN=="slaver_rd" || ORIGIN=="master_rd" || ORIGIN=="mirror")begin assign to.axi_arid = origin.axi_arid ; assign to.axi_araddr = origin.axi_araddr ; assign to.axi_arlen = origin.axi_arlen ; assign to.axi_arsize = origin.axi_arsize ; assign to.axi_arburst = origin.axi_arburst; assign to.axi_arlock = origin.axi_arlock ; assign to.axi_arcache = origin.axi_arcache; assign to.axi_arprot = origin.axi_arprot ; assign to.axi_arqos = origin.axi_arqos ; assign to.axi_arvalid = origin.axi_arvalid; assign to.axi_arready = origin.axi_arready; assign to.axi_rready = origin.axi_rready ; assign to.axi_rid = origin.axi_rid ; assign to.axi_rdata = origin.axi_rdata ; assign to.axi_rresp = origin.axi_rresp ; assign to.axi_rlast = origin.axi_rlast ; assign to.axi_rvalid = origin.axi_rvalid ; end else begin initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end end
end else if(ORIGIN==“slaver”)begin
if(TO=="slaver_wr")begin assign to.axi_awid = origin.axi_awid ; assign to.axi_awaddr = origin.axi_awaddr ; assign to.axi_awlen = origin.axi_awlen ; assign to.axi_awsize = origin.axi_awsize ; assign to.axi_awburst = origin.axi_awburst ; assign to.axi_awlock = origin.axi_awlock ; assign to.axi_awcache = origin.axi_awcache ; assign to.axi_awprot = origin.axi_awprot ; assign to.axi_awqos = origin.axi_awqos ; assign to.axi_awvalid = origin.axi_awvalid ; assign origin.axi_awready = to.axi_awready ; assign to.axi_wdata = origin.axi_wdata ; assign to.axi_wstrb = origin.axi_wstrb ; assign to.axi_wlast = origin.axi_wlast ; assign to.axi_wvalid = origin.axi_wvalid ; assign origin.axi_wready = to.axi_wready ; assign to.axi_bready = origin.axi_bready ; assign origin.axi_bid = origin.axi_bid ; assign origin.axi_bresp = to.axi_bresp ; assign origin.axi_bvalid = to.axi_bvalid ; end else if(TO=="slaver_rd")begin assign to.axi_arid = origin.axi_arid ; assign to.axi_araddr = origin.axi_araddr ; assign to.axi_arlen = origin.axi_arlen ; assign to.axi_arsize = origin.axi_arsize ; assign to.axi_arburst = origin.axi_arburst; assign to.axi_arlock = origin.axi_arlock ; assign to.axi_arcache = origin.axi_arcache; assign to.axi_arprot = origin.axi_arprot ; assign to.axi_arqos = origin.axi_arqos ; assign to.axi_arvalid = origin.axi_arvalid; assign to.axi_rready = origin.axi_rready ; assign origin.axi_arready = to.axi_arready; assign origin.axi_rid = to.axi_rid ; assign origin.axi_rdata = to.axi_rdata ; assign origin.axi_rresp = to.axi_rresp ; assign origin.axi_rlast = to.axi_rlast ; assign origin.axi_rvalid = to.axi_rvalid ; end else begin initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end end
end else if(ORIGIN == “master_rd”)begin
if(TO == "master_rd_aux")begin assign to.axi_arid = origin.axi_arid ; assign to.axi_araddr = origin.axi_araddr ; assign to.axi_arlen = origin.axi_arlen ; assign to.axi_arsize = origin.axi_arsize ; assign to.axi_arburst = origin.axi_arburst; assign to.axi_arlock = origin.axi_arlock ; assign to.axi_arcache = origin.axi_arcache; assign to.axi_arprot = origin.axi_arprot ; assign to.axi_arqos = origin.axi_arqos ; assign to.axi_arvalid = origin.axi_arvalid; assign origin.axi_arready = to.axi_arready ; assign origin.axi_rready = to.axi_rready ; assign origin.axi_rid = to.axi_rid ; assign origin.axi_rresp = to.axi_rresp ; assign origin.axi_rlast = to.axi_rlast ; assign origin.axi_rvalid = to.axi_rvalid ; end else if(TO == "master")begin assign to.axi_arid = origin.axi_arid ; assign to.axi_araddr = origin.axi_araddr ; assign to.axi_arlen = origin.axi_arlen ; assign to.axi_arsize = origin.axi_arsize ; assign to.axi_arburst = origin.axi_arburst; assign to.axi_arlock = origin.axi_arlock ; assign to.axi_arcache = origin.axi_arcache; assign to.axi_arprot = origin.axi_arprot ; assign to.axi_arqos = origin.axi_arqos ; assign to.axi_arvalid = origin.axi_arvalid; assign to.axi_rready = origin.axi_rready ; assign origin.axi_arready = to.axi_arready ; assign origin.axi_rid = to.axi_rid ; assign origin.axi_rdata = to.axi_rdata ; assign origin.axi_rresp = to.axi_rresp ; assign origin.axi_rlast = to.axi_rlast ; assign origin.axi_rvalid = to.axi_rvalid ; end else begin initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end end
end else if(ORIGIN==“master”)begin
if(TO=="master_wr")begin // assign origin.axi_awid = to.axi_awid ; // assign origin.axi_awaddr = to.axi_awaddr ; // assign origin.axi_awlen = to.axi_awlen ; // assign origin.axi_awsize = to.axi_awsize ; // assign origin.axi_awburst = to.axi_awburst; // assign origin.axi_awlock = to.axi_awlock ; // assign origin.axi_awcache = to.axi_awcache; // assign origin.axi_awprot = to.axi_awprot ; // assign origin.axi_awqos = to.axi_awqos ; // assign origin.axi_awvalid = to.axi_awvalid; // assign to.axi_awready = origin.axi_awready; // assign origin.axi_wdata = to.axi_wdata ; // assign origin.axi_wstrb = to.axi_wstrb ; // assign origin.axi_wlast = to.axi_wlast ; // assign origin.axi_wvalid = to.axi_wvalid ; // assign to.axi_wready = origin.axi_wready ; // assign origin.axi_bready = to.axi_bready ; // assign to.axi_bid = origin.axi_bid ; // assign to.axi_bresp = origin.axi_bresp ; // assign to.axi_bvalid = origin.axi_bvalid ; assign to.axi_awid = origin.axi_awid ; assign to.axi_awaddr = origin.axi_awaddr ; assign to.axi_awlen = origin.axi_awlen ; assign to.axi_awsize = origin.axi_awsize ; assign to.axi_awburst = origin.axi_awburst; assign to.axi_awlock = origin.axi_awlock ; assign to.axi_awcache = origin.axi_awcache; assign to.axi_awprot = origin.axi_awprot ; assign to.axi_awqos = origin.axi_awqos ; assign to.axi_awvalid = origin.axi_awvalid; assign to.axi_wdata = origin.axi_wdata ; assign to.axi_wstrb = origin.axi_wstrb ; assign to.axi_wlast = origin.axi_wlast ; assign to.axi_wvalid = origin.axi_wvalid ; assign to.axi_bready = origin.axi_bready ; assign origin.axi_wready = to.axi_wready ; assign origin.axi_awready = to.axi_awready; assign origin.axi_bid = to.axi_bid ; assign origin.axi_bresp = to.axi_bresp ; assign origin.axi_bvalid = to.axi_bvalid ; end else if (TO == "master_rd") begin assign to.axi_arid = origin.axi_arid ; assign to.axi_araddr = origin.axi_araddr ; assign to.axi_arlen = origin.axi_arlen ; assign to.axi_arsize = origin.axi_arsize ; assign to.axi_arburst = origin.axi_arburst; assign to.axi_arlock = origin.axi_arlock ; assign to.axi_arcache = origin.axi_arcache; assign to.axi_arprot = origin.axi_arprot ; assign to.axi_arqos = origin.axi_arqos ; assign to.axi_arvalid = origin.axi_arvalid; assign origin.axi_arready = to.axi_arready ; assign to.axi_rready = origin.axi_rready ; assign origin.axi_rid = to.axi_rid ; assign origin.axi_rresp = to.axi_rresp ; assign origin.axi_rlast = to.axi_rlast ; assign origin.axi_rvalid = to.axi_rvalid ; end else begin initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end end
end else if(ORIGIN == “master_wr_aux_no_resp”)begin
if(TO=="master" || TO == "master_wr")begin assign to.axi_awid = origin.axi_awid ; assign to.axi_awaddr = origin.axi_awaddr ; assign to.axi_awlen = origin.axi_awlen ; assign to.axi_awsize = origin.axi_awsize ; assign to.axi_awburst = origin.axi_awburst; assign to.axi_awlock = origin.axi_awlock ; assign to.axi_awcache = origin.axi_awcache; assign to.axi_awprot = origin.axi_awprot ; assign to.axi_awqos = origin.axi_awqos ; assign to.axi_awvalid = origin.axi_awvalid; assign origin.axi_awready = to.axi_awready; assign origin.axi_wlast = to.axi_wlast ; assign origin.axi_wvalid = to.axi_wvalid ; assign origin.axi_wready = to.axi_wready ; end else begin initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end end
end else if(ORIGIN == “master_rd_aux”)begin
if(TO=="master" || TO=="master_rd")begin assign to.axi_arid = origin.axi_arid ; assign to.axi_araddr = origin.axi_araddr ; assign to.axi_arlen = origin.axi_arlen ; assign to.axi_arsize = origin.axi_arsize ; assign to.axi_arburst = origin.axi_arburst; assign to.axi_arlock = origin.axi_arlock ; assign to.axi_arcache = origin.axi_arcache; assign to.axi_arprot = origin.axi_arprot ; assign to.axi_arqos = origin.axi_arqos ; assign to.axi_arvalid = origin.axi_arvalid; assign origin.axi_arready = to.axi_arready ; assign origin.axi_rready = to.axi_rready ; assign origin.axi_rid = to.axi_rid ; assign origin.axi_rresp = to.axi_rresp ; assign origin.axi_rlast = to.axi_rlast ; assign origin.axi_rvalid = to.axi_rvalid ; end else begin initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end end
end else if(ORIGIN==“master_wr”)begin
if(TO=="master")begin assign to.axi_awid = origin.axi_awid ; assign to.axi_awaddr = origin.axi_awaddr ; assign to.axi_awlen = origin.axi_awlen ; assign to.axi_awsize = origin.axi_awsize ; assign to.axi_awburst = origin.axi_awburst; assign to.axi_awlock = origin.axi_awlock ; assign to.axi_awcache = origin.axi_awcache; assign to.axi_awprot = origin.axi_awprot ; assign to.axi_awqos = origin.axi_awqos ; assign to.axi_awvalid = origin.axi_awvalid; assign to.axi_wdata = origin.axi_wdata ; assign to.axi_wstrb = origin.axi_wstrb ; assign to.axi_wlast = origin.axi_wlast ; assign to.axi_wvalid = origin.axi_wvalid ; assign to.axi_bready = origin.axi_bready ; assign origin.axi_wready = to.axi_wready ; assign origin.axi_awready = to.axi_awready; assign origin.axi_bid = to.axi_bid ; assign origin.axi_bresp = to.axi_bresp ; assign origin.axi_bvalid = to.axi_bvalid ; end else begin initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end end
end else begin
initial begin $error("vcs_axi4_comptable ORIGIN[%s] => [%s] ERROR",ORIGIN,TO); $stop; end
end
endgenerate
endmodule