43 lines
1.4 KiB
Systemverilog
43 lines
1.4 KiB
Systemverilog
// Generated by CIRCT firtool-1.151.0
|
|
module Arbiter4_DCacheDataReq(
|
|
input io_in_0_valid,
|
|
input [19:0] io_in_0_bits_addr,
|
|
input io_in_0_bits_write,
|
|
input [63:0] io_in_0_bits_wdata,
|
|
input [7:0] io_in_0_bits_eccMask,
|
|
output io_in_1_ready,
|
|
input io_in_1_valid,
|
|
input [19:0] io_in_1_bits_addr,
|
|
input io_in_1_bits_write,
|
|
input [63:0] io_in_1_bits_wdata,
|
|
input [7:0] io_in_1_bits_eccMask,
|
|
output io_in_3_ready,
|
|
input io_in_3_valid,
|
|
input [19:0] io_in_3_bits_addr,
|
|
input [63:0] io_in_3_bits_wdata,
|
|
output io_out_valid,
|
|
output [19:0] io_out_bits_addr,
|
|
output io_out_bits_write,
|
|
output [63:0] io_out_bits_wdata,
|
|
output [7:0] io_out_bits_eccMask
|
|
);
|
|
|
|
wire _grant_T = io_in_0_valid | io_in_1_valid;
|
|
assign io_in_1_ready = ~io_in_0_valid;
|
|
assign io_in_3_ready = ~_grant_T;
|
|
assign io_out_valid = _grant_T | io_in_3_valid;
|
|
assign io_out_bits_addr =
|
|
io_in_0_valid
|
|
? io_in_0_bits_addr
|
|
: io_in_1_valid ? io_in_1_bits_addr : io_in_3_bits_addr;
|
|
assign io_out_bits_write =
|
|
io_in_0_valid ? io_in_0_bits_write : io_in_1_valid & io_in_1_bits_write;
|
|
assign io_out_bits_wdata =
|
|
io_in_0_valid
|
|
? io_in_0_bits_wdata
|
|
: io_in_1_valid ? io_in_1_bits_wdata : io_in_3_bits_wdata;
|
|
assign io_out_bits_eccMask =
|
|
io_in_0_valid ? io_in_0_bits_eccMask : io_in_1_valid ? io_in_1_bits_eccMask : 8'hFF;
|
|
endmodule
|
|
|