[aon_timer/rtl] Fix bugs found by smoke test

Lifecycle input signals are the wrong way around.
Only clock the prescale counter when enabled.

Relates to #5624

Signed-off-by: Tom Roberts <tomroberts@lowrisc.org>
diff --git a/hw/ip/aon_timer/rtl/aon_timer_core.sv b/hw/ip/aon_timer/rtl/aon_timer_core.sv
index b9bbc83..b097654 100644
--- a/hw/ip/aon_timer/rtl/aon_timer_core.sv
+++ b/hw/ip/aon_timer/rtl/aon_timer_core.sv
@@ -94,7 +94,7 @@
 
   // Prescaler counter
   assign prescale_count_d = wkup_incr ? 12'h000 : (prescale_count_q + 12'h001);
-  assign prescale_en      = lc_cpu_en_i[0] == lc_ctrl_pkg::Off;
+  assign prescale_en      = wkup_enable_q & (lc_cpu_en_i[0] == lc_ctrl_pkg::On);
 
   always_ff @(posedge clk_aon_i or negedge rst_aon_ni) begin
     if (!rst_aon_ni) begin
@@ -105,7 +105,7 @@
   end
 
   // Wakeup timer count
-  assign wkup_incr     = (lc_cpu_en_i[1] == lc_ctrl_pkg::Off) & wkup_enable_q &
+  assign wkup_incr     = (lc_cpu_en_i[1] == lc_ctrl_pkg::On) & wkup_enable_q &
                          (prescale_count_q == wkup_prescaler_q);
   assign wkup_count_d  = wkup_count_reg_wr_i ? wkup_count_wr_data_i :
                                                (wkup_count_q + 32'd1);
@@ -172,7 +172,7 @@
   assign wdog_bite_thold_o = wdog_bite_thold_q;
 
   // Watchdog timer count
-  assign wdog_incr     = wdog_enable_q & (lc_cpu_en_i[2] == lc_ctrl_pkg::Off) &
+  assign wdog_incr     = wdog_enable_q & (lc_cpu_en_i[2] == lc_ctrl_pkg::On) &
                          ~(sleep_mode_i & wdog_pause_q);
   assign wdog_count_d  = wdog_count_reg_wr_i ? wdog_count_wr_data_i :
                                                (wdog_count_q + 32'd1);