Files
gps/hardware/generated/genesys2-soc-verilog/Queue2_TLBundleD_a32d64s1k1z4u.sv
T
2026-08-06 22:14:52 +03:00

81 lines
2.4 KiB
Systemverilog

// Generated by CIRCT firtool-1.151.0
module Queue2_TLBundleD_a32d64s1k1z4u(
input clock,
reset,
output io_enq_ready,
input io_enq_valid,
input [2:0] io_enq_bits_opcode,
input [1:0] io_enq_bits_param,
input [3:0] io_enq_bits_size,
input io_enq_bits_source,
io_enq_bits_sink,
io_enq_bits_denied,
input [63:0] io_enq_bits_data,
input io_enq_bits_corrupt,
io_deq_ready,
output io_deq_valid,
output [2:0] io_deq_bits_opcode,
output [1:0] io_deq_bits_param,
output [3:0] io_deq_bits_size,
output io_deq_bits_source,
io_deq_bits_sink,
io_deq_bits_denied,
output [63:0] io_deq_bits_data,
output io_deq_bits_corrupt
);
wire [76:0] _ram_ext_R0_data;
reg enq_ptr_value;
reg deq_ptr_value;
reg maybe_full;
wire ptr_match = enq_ptr_value == deq_ptr_value;
wire empty = ptr_match & ~maybe_full;
wire full = ptr_match & maybe_full;
wire do_enq = ~full & io_enq_valid;
always @(posedge clock) begin
if (reset) begin
enq_ptr_value <= 1'h0;
deq_ptr_value <= 1'h0;
maybe_full <= 1'h0;
end
else begin
automatic logic do_deq = io_deq_ready & ~empty;
if (do_enq)
enq_ptr_value <= enq_ptr_value - 1'h1;
if (do_deq)
deq_ptr_value <= deq_ptr_value - 1'h1;
if (do_enq != do_deq)
maybe_full <= do_enq;
end
end // always @(posedge)
ram_2x77 ram_ext (
.R0_addr (deq_ptr_value),
.R0_en (1'h1),
.R0_clk (clock),
.R0_data (_ram_ext_R0_data),
.W0_addr (enq_ptr_value),
.W0_en (do_enq),
.W0_clk (clock),
.W0_data
({io_enq_bits_opcode,
io_enq_bits_param,
io_enq_bits_size,
io_enq_bits_source,
io_enq_bits_sink,
io_enq_bits_denied,
io_enq_bits_data,
io_enq_bits_corrupt})
);
assign io_enq_ready = ~full;
assign io_deq_valid = ~empty;
assign io_deq_bits_opcode = _ram_ext_R0_data[76:74];
assign io_deq_bits_param = _ram_ext_R0_data[73:72];
assign io_deq_bits_size = _ram_ext_R0_data[71:68];
assign io_deq_bits_source = _ram_ext_R0_data[67];
assign io_deq_bits_sink = _ram_ext_R0_data[66];
assign io_deq_bits_denied = _ram_ext_R0_data[65];
assign io_deq_bits_data = _ram_ext_R0_data[64:1];
assign io_deq_bits_corrupt = _ram_ext_R0_data[0];
endmodule