[aes/rtl] Use ternaries instead of `if/else` + `unique case`

Signed-off-by: Pirmin Vogel <vogelpi@lowrisc.org>
diff --git a/hw/ip/aes/rtl/aes_control.sv b/hw/ip/aes/rtl/aes_control.sv
index 48d569f..2763db6 100644
--- a/hw/ip/aes/rtl/aes_control.sv
+++ b/hw/ip/aes/rtl/aes_control.sv
@@ -4,9 +4,7 @@
 //
 // AES control
 
-module aes_control #(
-  parameter bit AES192Enable = 1
-) (
+module aes_control (
   input  logic                    clk_i,
   input  logic                    rst_ni,
 
@@ -204,35 +202,12 @@
         add_rk_sel_o = ADD_RK_INIT;
 
         // Select key words for initial add_round_key
-        if (dec_key_gen_q) begin
-          key_words_sel_o = KEY_WORDS_ZERO;
-        end else begin
-          unique case (key_len_i)
-            AES_128:       key_words_sel_o = KEY_WORDS_0123;
-
-            AES_192: begin
-              if (AES192Enable) begin
-                unique case (mode_i)
-                  AES_ENC: key_words_sel_o = KEY_WORDS_0123;
-                  AES_DEC: key_words_sel_o = KEY_WORDS_2345;
-                  default: key_words_sel_o = KEY_WORDS_ZERO;
-                endcase
-              end else begin
-                key_words_sel_o = KEY_WORDS_ZERO;
-              end
-            end
-
-            AES_256: begin
-              unique case (mode_i)
-                AES_ENC:   key_words_sel_o = KEY_WORDS_0123;
-                AES_DEC:   key_words_sel_o = KEY_WORDS_4567;
-                default:   key_words_sel_o = KEY_WORDS_ZERO;
-              endcase
-            end
-
-            default: key_words_sel_o = KEY_WORDS_ZERO;
-          endcase
-        end
+        key_words_sel_o = dec_key_gen_q                 ? KEY_WORDS_ZERO :
+            (key_len_i == AES_128)                      ? KEY_WORDS_0123 :
+            (key_len_i == AES_192 && mode_i == AES_ENC) ? KEY_WORDS_0123 :
+            (key_len_i == AES_192 && mode_i == AES_DEC) ? KEY_WORDS_2345 :
+            (key_len_i == AES_256 && mode_i == AES_ENC) ? KEY_WORDS_0123 :
+            (key_len_i == AES_256 && mode_i == AES_DEC) ? KEY_WORDS_4567 : KEY_WORDS_ZERO;
 
         // Make key expand advance - AES-256 has two round keys available right from beginning
         if (key_len_i != AES_256) begin
@@ -252,35 +227,12 @@
         state_we_o = ~dec_key_gen_q;
 
         // Select key words for add_round_key
-        if (dec_key_gen_q) begin
-          key_words_sel_o = KEY_WORDS_ZERO;
-        end else begin
-          unique case (key_len_i)
-            AES_128:       key_words_sel_o = KEY_WORDS_0123;
-
-            AES_192: begin
-              if (AES192Enable) begin
-                unique case (mode_i)
-                  AES_ENC: key_words_sel_o = KEY_WORDS_2345;
-                  AES_DEC: key_words_sel_o = KEY_WORDS_0123;
-                  default: key_words_sel_o = KEY_WORDS_ZERO;
-                endcase
-              end else begin
-                key_words_sel_o = KEY_WORDS_ZERO;
-              end
-            end
-
-            AES_256: begin
-              unique case (mode_i)
-                AES_ENC:   key_words_sel_o = KEY_WORDS_4567;
-                AES_DEC:   key_words_sel_o = KEY_WORDS_0123;
-                default:   key_words_sel_o = KEY_WORDS_ZERO;
-              endcase
-            end
-
-            default: key_words_sel_o = KEY_WORDS_ZERO;
-          endcase
-        end
+        key_words_sel_o = dec_key_gen_q                 ? KEY_WORDS_ZERO :
+            (key_len_i == AES_128)                      ? KEY_WORDS_0123 :
+            (key_len_i == AES_192 && mode_i == AES_ENC) ? KEY_WORDS_2345 :
+            (key_len_i == AES_192 && mode_i == AES_DEC) ? KEY_WORDS_0123 :
+            (key_len_i == AES_256 && mode_i == AES_ENC) ? KEY_WORDS_4567 :
+            (key_len_i == AES_256 && mode_i == AES_DEC) ? KEY_WORDS_0123 : KEY_WORDS_ZERO;
 
         // Make key expand advance
         key_expand_step_o = 1'b1;
@@ -309,35 +261,12 @@
         // Final round
 
         // Select key words for add_round_key
-        if (dec_key_gen_q) begin
-          key_words_sel_o = KEY_WORDS_ZERO;
-        end else begin
-          unique case (key_len_i)
-            AES_128:       key_words_sel_o = KEY_WORDS_0123;
-
-            AES_192: begin
-              if (AES192Enable) begin
-                unique case (mode_i)
-                  AES_ENC: key_words_sel_o = KEY_WORDS_2345;
-                  AES_DEC: key_words_sel_o = KEY_WORDS_0123;
-                  default: key_words_sel_o = KEY_WORDS_ZERO;
-                endcase
-              end else begin
-                key_words_sel_o = KEY_WORDS_ZERO;
-              end
-            end
-
-            AES_256: begin
-              unique case (mode_i)
-                AES_ENC:   key_words_sel_o = KEY_WORDS_4567;
-                AES_DEC:   key_words_sel_o = KEY_WORDS_0123;
-                default:   key_words_sel_o = KEY_WORDS_ZERO;
-              endcase
-            end
-
-            default: key_words_sel_o = KEY_WORDS_ZERO;
-          endcase
-        end
+        key_words_sel_o = dec_key_gen_q                 ? KEY_WORDS_ZERO :
+            (key_len_i == AES_128)                      ? KEY_WORDS_0123 :
+            (key_len_i == AES_192 && mode_i == AES_ENC) ? KEY_WORDS_2345 :
+            (key_len_i == AES_192 && mode_i == AES_DEC) ? KEY_WORDS_0123 :
+            (key_len_i == AES_256 && mode_i == AES_ENC) ? KEY_WORDS_4567 :
+            (key_len_i == AES_256 && mode_i == AES_DEC) ? KEY_WORDS_0123 : KEY_WORDS_ZERO;
 
         // Skip mix_columns
         add_rk_sel_o = ADD_RK_FINAL;
diff --git a/hw/ip/aes/rtl/aes_core.sv b/hw/ip/aes/rtl/aes_core.sv
index 148e7a0..c66e625 100644
--- a/hw/ip/aes/rtl/aes_core.sv
+++ b/hw/ip/aes/rtl/aes_core.sv
@@ -283,9 +283,7 @@
   /////////////
 
   // Control
-  aes_control #(
-  .AES192Enable (AES192Enable)
-  ) aes_control (
+  aes_control aes_control (
     .clk_i                  ( clk_i                              ),
     .rst_ni                 ( rst_ni                             ),