// interface CacheSetInterface( // input logic [7:0] request, // output logic [7:0] response // ); // modport CacheSet( // input request, // output response // ); // endinterface module CacheWithInterface( input wire [7:0] dataIn, output wire [7:0] dataOut, input wire clock, clear ); wire [7:0] myRequest; wire [7:0] myResponse; // CacheSetInterface dataInterface( // .request(myRequest), // .response(myResponse) // ); wire [7:0] dataInterface_request; wire [7:0] dataInterface_response; generate assign dataInterface_request = myRequest; // dataInterface.myResponse is an output assign myResponse = dataInterface_response; endgenerate CacheSet set( .data_request(dataInterface_request), .data_response(dataInterface_response), .clock(clock), .clear(clear) ); assign myRequest = dataIn; assign dataOut = myResponse; endmodule module CacheSet ( input wire [7:0] data_request, output reg [7:0] data_response, input wire clock, clear ); always @(posedge clock) if(clear) data_response <= 8'h0; else data_response <= ~data_request; endmodule