[pinmux] Always sample DFT mode straps only once at boot

While it is useful for the TAP straps to be sampled continuously
in DFT-enabled life cycle states such that test sequences can
dynamically change between TAPs, this is not so much the case
for the DFT-mode straps.

I.e., from a test perspective it would be better if these
DFT-mode straps were sampled only once such that the
corresponding pins do not have to be constantly held at a
specific value throughout the test sequence. This would
also free them up such that they can be used as
regular GPIOs.

This commit changes the strap sampling logic accordingly.

Signed-off-by: Michael Schaffner <msf@opentitan.org>
diff --git a/hw/ip/pinmux/rtl/pinmux_strap_sampling.sv b/hw/ip/pinmux/rtl/pinmux_strap_sampling.sv
index cb1aa58..bc61a7c 100644
--- a/hw/ip/pinmux/rtl/pinmux_strap_sampling.sv
+++ b/hw/ip/pinmux/rtl/pinmux_strap_sampling.sv
@@ -105,7 +105,7 @@
 
   // During dft enabled states, we continously sample all straps unless
   // told not to do so by external dft logic
-  logic dft_sampling_en;
+  logic tap_sampling_en;
   logic dft_hold_tap_sel;
 
   prim_buf #(
@@ -114,25 +114,28 @@
     .in_i(dft_hold_tap_sel_i),
     .out_o(dft_hold_tap_sel)
   );
-  assign dft_sampling_en = (lc_dft_en[0] == lc_ctrl_pkg::On) & ~dft_hold_tap_sel;
+  assign tap_sampling_en = (lc_dft_en[0] == lc_ctrl_pkg::On) & ~dft_hold_tap_sel;
 
   always_comb begin : p_strap_sampling
     lc_strap_sample_en = 1'b0;
     rv_strap_sample_en = 1'b0;
     dft_strap_sample_en = 1'b0;
-
     // Initial strap sampling pulse from pwrmgr,
     // qualified by life cycle signals.
+    // The DFT-mode straps are always sampled only once.
+    if (strap_en_i) begin
+      if (lc_dft_en[0] == lc_ctrl_pkg::On) begin
+        dft_strap_sample_en = 1'b1;
+      end
+    end
     // In DFT-enabled life cycle states we continously
-    // sample all straps.
-    if (strap_en_i || dft_sampling_en) begin
+    // sample the TAP straps to be able to switch back and
+    // forth between different TAPs.
+    if (strap_en_i || tap_sampling_en) begin
       lc_strap_sample_en = 1'b1;
       if (lc_hw_debug_en[0] == lc_ctrl_pkg::On) begin
         rv_strap_sample_en = 1'b1;
       end
-      if (lc_dft_en[0] == lc_ctrl_pkg::On) begin
-        dft_strap_sample_en = 1'b1;
-      end
     end
   end