[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;