sv2v/test/relong/complex_interface.v

59 lines
1.2 KiB
Verilog
Raw Permalink Normal View History

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