[aes/rtl] Fix lint errors
diff --git a/hw/ip/aes/rtl/aes_control.sv b/hw/ip/aes/rtl/aes_control.sv
index 0b7061e..7957982 100644
--- a/hw/ip/aes/rtl/aes_control.sv
+++ b/hw/ip/aes/rtl/aes_control.sv
@@ -85,6 +85,7 @@
 
   logic [3:0] round_d, round_q;
   logic [3:0] num_rounds_d, num_rounds_q;
+  logic [3:0] num_rounds_regular;
   logic       dec_key_gen_d, dec_key_gen_q;
 
   logic       start, finish;
@@ -165,9 +166,9 @@
 
           // Load num_rounds, round
           round_d      = '0;
-          num_rounds_d = (key_len_i == AES_128) ? 10 :
-                         (key_len_i == AES_192) ? 12 :
-                                                  14;
+          num_rounds_d = (key_len_i == AES_128) ? 4'd10 :
+                         (key_len_i == AES_192) ? 4'd12 :
+                                                  4'd14;
 
           idle_o      = 1'b0;
           idle_we_o   = 1'b1;
@@ -229,7 +230,7 @@
         end
 
         // Make key expand advance - AES-256 has two round keys available right from beginning
-        if (key_len_i != AES_256 ) begin
+        if (key_len_i != AES_256) begin
           key_expand_step_o = 1'b1;
           key_full_we_o     = 1'b1;
         end
@@ -287,7 +288,7 @@
         round_d = round_q+1;
 
         // Are we doing the last regular round?
-        if (round_q == num_rounds_q-2) begin
+        if (round_q == num_rounds_regular) begin
           if (dec_key_gen_q) begin
             // Write decryption key and finish
             key_dec_we_o  = 1'b1;
@@ -368,6 +369,9 @@
     end
   end
 
+  // Use separate signal for number of regular rounds
+  assign num_rounds_regular = num_rounds_q - 4'd2;
+
   // Detect new key, new input, output read
   // Edge detectors are cleared by the FSM
   assign key_init_new_d = dec_key_gen ? '0 : key_init_new_q | key_init_qe_i;
diff --git a/hw/ip/aes/rtl/aes_core.sv b/hw/ip/aes/rtl/aes_core.sv
index 79cd21c..8b828be 100644
--- a/hw/ip/aes/rtl/aes_core.sv
+++ b/hw/ip/aes/rtl/aes_core.sv
@@ -25,7 +25,7 @@
   logic     [7:0] key_init_qe;
 
   mode_e          mode, key_expand_mode;
-  key_len_e       key_len;
+  key_len_e       key_len_q, key_len;
 
   logic     [7:0] state_init[16];
   logic     [7:0] state_d[16];
@@ -66,6 +66,9 @@
 
   // Unused signals
   logic    [31:0] unused_data_out_q[4];
+  logic           unused_mode_qe;
+  logic           unused_manual_start_trigger_qe;
+  logic           unused_force_data_overwrite_qe;
 
   // Inputs
   assign key_init[0] = reg2hw.key[0].q;
@@ -99,8 +102,9 @@
 
   assign mode = mode_e'(reg2hw.ctrl.mode.q);
 
+  assign key_len_q = key_len_e'(reg2hw.ctrl.key_len.q);
   always_comb begin : get_key_len
-    unique case (key_len_e'(reg2hw.ctrl.key_len.q))
+    unique case (key_len_q)
       AES_128: key_len = AES_128;
       AES_256: key_len = AES_256;
       AES_192: begin
@@ -120,6 +124,11 @@
   assign unused_data_out_q[2] = reg2hw.data_out[2].q;
   assign unused_data_out_q[3] = reg2hw.data_out[3].q;
 
+  // key_len is hrw and hwqe, other fields of ctrl reg are hro and don't need hwqe
+  assign unused_mode_qe                 = reg2hw.ctrl.mode.qe;
+  assign unused_manual_start_trigger_qe = reg2hw.ctrl.manual_start_trigger.qe;
+  assign unused_force_data_overwrite_qe = reg2hw.ctrl.force_data_overwrite.qe;
+
   // State registers
   always_comb begin : state_mux
     unique case (state_sel)