1. interface arb_if #(num_agents = 2) (input clk);
    2. logic reset;
    3. logic [num_agents-1 : 0] req;
    4. logic [num_agents-1 : 0] gnt;
    5. genvar i;
    6. generate
    7. for (i=0; i<num_agents;i++) begin:gen
    8. modport arb (input creq (req[i]), clk, reset, output .cgnt(gnt[i]))
    9. modport tb (output creq (req[i]), input clk, reset, .cgnt(gnt[i]))
    10. end
    11. endgenerate
    12. endinterface
    13. module ctrl(arb_if.arb b);
    14. reg mem;
    15. initial begin
    16. mem = 'd1;
    17. end
    18. endmodule
    19. module interface_modport_expression();
    20. logic clk;
    21. initial begin
    22. clk = 0;
    23. end
    24. always #1 clk++;
    25. arb_if arbif(clk);
    26. ctrl c(arbif);
    27. initial begin
    28. #100 $finish;
    29. end
    30. endmodule