[tlul,rtl] Rewrite a_ack_q computation to avoid lint warnings With the previous version, the a_ack_q flop was dead zero if EnableIntg was false. This caused AscentLint warnings about a constant flop. Re-jig things so that the flop is only generated when it will be used and the output signal (a_ack_q) is a constant zero if not. Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
diff --git a/hw/ip/tlul/rtl/tlul_sram_byte.sv b/hw/ip/tlul/rtl/tlul_sram_byte.sv index d865e96..8cb8409 100644 --- a/hw/ip/tlul/rtl/tlul_sram_byte.sv +++ b/hw/ip/tlul/rtl/tlul_sram_byte.sv
@@ -69,7 +69,7 @@ logic wr_txn; logic byte_wr_txn; logic byte_req_ack; - logic a_ack_q, a_ack_d; + logic a_ack_q; assign a_ack = tl_i.a_valid & tl_o.a_ready; assign sram_a_ack = tl_sram_o.a_valid & tl_sram_i.a_ready; @@ -82,11 +82,17 @@ assign byte_wr_txn = tl_i.a_valid & ~&tl_i.a_mask & wr_txn; assign sel_int = byte_wr_txn | stall_host ? SelInt : SelPassThru; // TODO(#7461): remove this register, once this issue has been addressed. - assign a_ack_d = a_ack; + always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs + if (!rst_ni) begin + a_ack_q <= 1'b0; + end else begin + a_ack_q <= a_ack; + end + end end else begin : gen_static_sel assign byte_wr_txn = '0; assign sel_int = SelPassThru; - assign a_ack_d = 1'b0; + assign a_ack_q = 1'b0; end // state machine handling @@ -141,14 +147,6 @@ end - always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs - if (!rst_ni) begin - a_ack_q <= 1'b0; - end else begin - a_ack_q <= a_ack_d; - end - end - // prim fifo for capturing info typedef struct packed { logic [2:0] a_param;