| // 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 |