mirror of https://github.com/zachjs/sv2v.git
59 lines
1.2 KiB
Verilog
59 lines
1.2 KiB
Verilog
// 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 |