// Generated by CIRCT firtool-1.151.0 // Users can define 'PRINTF_COND' to add an extra gate to prints. `ifndef PRINTF_COND_ `ifdef PRINTF_COND `define PRINTF_COND_ (`PRINTF_COND) `else // PRINTF_COND `define PRINTF_COND_ 1 `endif // PRINTF_COND `endif // not def PRINTF_COND_ module TLToAPB( input clock, reset, output auto_in_a_ready, input auto_in_a_valid, input [2:0] auto_in_a_bits_opcode, auto_in_a_bits_param, input [1:0] auto_in_a_bits_size, input [6:0] auto_in_a_bits_source, input [28:0] auto_in_a_bits_address, input auto_in_a_bits_user_amba_prot_bufferable, auto_in_a_bits_user_amba_prot_modifiable, auto_in_a_bits_user_amba_prot_readalloc, auto_in_a_bits_user_amba_prot_writealloc, auto_in_a_bits_user_amba_prot_privileged, auto_in_a_bits_user_amba_prot_secure, auto_in_a_bits_user_amba_prot_fetch, input [3:0] auto_in_a_bits_mask, input [31:0] auto_in_a_bits_data, input auto_in_a_bits_corrupt, auto_in_d_ready, output auto_in_d_valid, output [2:0] auto_in_d_bits_opcode, output [1:0] auto_in_d_bits_param, auto_in_d_bits_size, output [6:0] auto_in_d_bits_source, output auto_in_d_bits_sink, auto_in_d_bits_denied, output [31:0] auto_in_d_bits_data, output auto_in_d_bits_corrupt, auto_out_psel, auto_out_penable, auto_out_pwrite, output [28:0] auto_out_paddr, output [31:0] auto_out_pwdata, input auto_out_pready, auto_out_pslverr, input [31:0] auto_out_prdata ); wire _a_q_io_deq_valid; wire [2:0] _a_q_io_deq_bits_opcode; wire [1:0] _a_q_io_deq_bits_size; wire [6:0] _a_q_io_deq_bits_source; wire _nodeIn_d_q_io_enq_ready; wire _nodeIn_d_q_io_deq_valid; reg a_enable; reg a_sel_REG; wire a_sel = _a_q_io_deq_valid & a_sel_REG; reg d_write; reg [6:0] d_source; reg [1:0] d_size; wire d_valid = a_enable & auto_out_pready; wire _GEN = ~d_valid | _nodeIn_d_q_io_enq_ready; `ifndef SYNTHESIS always @(posedge clock) begin if ((`PRINTF_COND_) & ~reset & ~_GEN) $fwrite(32'h80000002, "Assertion failed\n at ToAPB.scala:110 assert (!d.valid || d.ready)\n"); end // always @(posedge) `endif // not def SYNTHESIS always @(posedge clock) begin if (reset) a_enable <= 1'h0; else a_enable <= ~(_nodeIn_d_q_io_enq_ready & d_valid) & (a_sel | a_enable); a_sel_REG <= ~_nodeIn_d_q_io_deq_valid | auto_in_d_ready; if (a_sel & ~a_enable) begin d_write <= ~(_a_q_io_deq_bits_opcode[2]); d_source <= _a_q_io_deq_bits_source; d_size <= _a_q_io_deq_bits_size; end end // always @(posedge) Queue1_TLBundleD_a29d32s7k1z2u nodeIn_d_q ( .clock (clock), .reset (reset), .io_enq_ready (_nodeIn_d_q_io_enq_ready), .io_enq_valid (d_valid), .io_enq_bits_opcode ({2'h0, ~d_write}), .io_enq_bits_size (d_size), .io_enq_bits_source (d_source), .io_enq_bits_denied (d_write & auto_out_pslverr), .io_enq_bits_data (auto_out_prdata), .io_enq_bits_corrupt (~d_write & auto_out_pslverr), .io_deq_ready (auto_in_d_ready), .io_deq_valid (_nodeIn_d_q_io_deq_valid), .io_deq_bits_opcode (auto_in_d_bits_opcode), .io_deq_bits_param (auto_in_d_bits_param), .io_deq_bits_size (auto_in_d_bits_size), .io_deq_bits_source (auto_in_d_bits_source), .io_deq_bits_sink (auto_in_d_bits_sink), .io_deq_bits_denied (auto_in_d_bits_denied), .io_deq_bits_data (auto_in_d_bits_data), .io_deq_bits_corrupt (auto_in_d_bits_corrupt) ); Queue1_TLBundleA_a29d32s7k1z2u a_q ( .clock (clock), .reset (reset), .io_enq_ready (auto_in_a_ready), .io_enq_valid (auto_in_a_valid), .io_enq_bits_opcode (auto_in_a_bits_opcode), .io_enq_bits_param (auto_in_a_bits_param), .io_enq_bits_size (auto_in_a_bits_size), .io_enq_bits_source (auto_in_a_bits_source), .io_enq_bits_address (auto_in_a_bits_address), .io_enq_bits_user_amba_prot_bufferable (auto_in_a_bits_user_amba_prot_bufferable), .io_enq_bits_user_amba_prot_modifiable (auto_in_a_bits_user_amba_prot_modifiable), .io_enq_bits_user_amba_prot_readalloc (auto_in_a_bits_user_amba_prot_readalloc), .io_enq_bits_user_amba_prot_writealloc (auto_in_a_bits_user_amba_prot_writealloc), .io_enq_bits_user_amba_prot_privileged (auto_in_a_bits_user_amba_prot_privileged), .io_enq_bits_user_amba_prot_secure (auto_in_a_bits_user_amba_prot_secure), .io_enq_bits_user_amba_prot_fetch (auto_in_a_bits_user_amba_prot_fetch), .io_enq_bits_mask (auto_in_a_bits_mask), .io_enq_bits_data (auto_in_a_bits_data), .io_enq_bits_corrupt (auto_in_a_bits_corrupt), .io_deq_ready (d_valid), .io_deq_valid (_a_q_io_deq_valid), .io_deq_bits_opcode (_a_q_io_deq_bits_opcode), .io_deq_bits_size (_a_q_io_deq_bits_size), .io_deq_bits_source (_a_q_io_deq_bits_source), .io_deq_bits_address (auto_out_paddr), .io_deq_bits_data (auto_out_pwdata) ); assign auto_in_d_valid = _nodeIn_d_q_io_deq_valid; assign auto_out_psel = a_sel; assign auto_out_penable = a_enable; assign auto_out_pwrite = ~(_a_q_io_deq_bits_opcode[2]); endmodule