diff --git a/sw/device/lib/base/meson.build b/sw/device/lib/base/meson.build
index 7bd3128..5eeba33 100644
--- a/sw/device/lib/base/meson.build
+++ b/sw/device/lib/base/meson.build
@@ -37,6 +37,8 @@
 sw_lib_hardened = declare_dependency(
   link_with: static_library(
     'hardened_ot',
-    sources: ['hardened.c'],
+    sources: [
+      'hardened.c'
+    ],
   )
 )
diff --git a/sw/device/lib/base/multibits.h b/sw/device/lib/base/multibits.h
new file mode 100644
index 0000000..1620411
--- /dev/null
+++ b/sw/device/lib/base/multibits.h
@@ -0,0 +1,43 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+#ifndef OPENTITAN_SW_DEVICE_LIB_BASE_MULTIBITS_H_
+#define OPENTITAN_SW_DEVICE_LIB_BASE_MULTIBITS_H_
+
+/**
+ * Multi-bit boolean values
+ *
+ * Certain configuration fields in the design are multi-bits.
+ * This gives the configuration fields redundancy and ensures
+ * it is difficult to fault the values to a "good" state.
+ */
+typedef enum multi_bit_bool {
+
+  /**
+   * 4-bits boolean values
+   */
+  kMultiBitBool4True = 0xA,
+  kMultiBitBool4False = 0x5,
+
+  /**
+   * 8-bits boolean values
+   */
+  kMultiBitBool8True = 0x5A,
+  kMultiBitBool8False = 0xA5,
+
+  /**
+   * 12-bits boolean values
+   */
+  kMultiBitBool12True = 0xA5A,
+  kMultiBitBool12False = 0x5A5,
+
+  /**
+   * 16-bits boolean values
+   */
+  kMultiBitBool16True = 0x5A5A,
+  kMultiBitBool16False = 0xA5A5,
+
+} multi_bit_bool_t;
+
+#endif  // OPENTITAN_SW_DEVICE_LIB_BASE_MULTIBITS_H_
diff --git a/sw/device/lib/dif/dif_entropy_src.c b/sw/device/lib/dif/dif_entropy_src.c
index 90afed8..2ad5c9d 100644
--- a/sw/device/lib/dif/dif_entropy_src.c
+++ b/sw/device/lib/dif/dif_entropy_src.c
@@ -8,6 +8,7 @@
 
 #include "sw/device/lib/base/memory.h"
 #include "sw/device/lib/base/mmio.h"
+#include "sw/device/lib/base/multibits.h"
 #include "sw/device/lib/dif/dif_base.h"
 
 #include "entropy_src_regs.h"  // Generated.
@@ -20,20 +21,23 @@
                                 const dif_entropy_src_config_t *config) {
   // TODO: Make this configurable at the API level.
   uint32_t reg = bitfield_field32_write(
-      0, ENTROPY_SRC_CONF_BOOT_BYPASS_DISABLE_FIELD, 0x5);
+      0, ENTROPY_SRC_CONF_BOOT_BYPASS_DISABLE_FIELD, kMultiBitBool4False);
 
-  uint32_t health_clr_sel = config->reset_health_test_registers ? 0xa : 0x5;
+  uint32_t health_clr_sel = config->reset_health_test_registers
+                                ? kMultiBitBool4True
+                                : kMultiBitBool4False;
   reg = bitfield_field32_write(reg, ENTROPY_SRC_CONF_HEALTH_TEST_CLR_FIELD,
                                health_clr_sel);
 
-  reg = bitfield_field32_write(reg,
-                               ENTROPY_SRC_CONF_ENTROPY_DATA_REG_ENABLE_FIELD,
-                               config->route_to_firmware ? 0xa : 0x5);
+  reg = bitfield_field32_write(
+      reg, ENTROPY_SRC_CONF_ENTROPY_DATA_REG_ENABLE_FIELD,
+      config->route_to_firmware ? kMultiBitBool4True : kMultiBitBool4False);
 
   // Configure single RNG bit mode
   uint32_t rng_bit_en =
-      (config->single_bit_mode == kDifEntropySrcSingleBitModeDisabled) ? 0x5
-                                                                       : 0xa;
+      (config->single_bit_mode == kDifEntropySrcSingleBitModeDisabled)
+          ? kMultiBitBool4False
+          : kMultiBitBool4True;
   reg = bitfield_field32_write(reg, ENTROPY_SRC_CONF_RNG_BIT_ENABLE_FIELD,
                                rng_bit_en);
 
@@ -41,12 +45,15 @@
   reg = bitfield_field32_write(reg, ENTROPY_SRC_CONF_RNG_BIT_SEL_FIELD,
                                rng_bit_sel);
 
-  uint32_t sw_rd_en = config->route_to_firmware ? 0xa : 0x5;
+  uint32_t sw_rd_en =
+      config->route_to_firmware ? kMultiBitBool4True : kMultiBitBool4False;
   reg = bitfield_field32_write(
       reg, ENTROPY_SRC_CONF_ENTROPY_DATA_REG_ENABLE_FIELD, sw_rd_en);
 
   // Enable configuration
-  uint32_t enable_val = config->mode != kDifEntropySrcModeDisabled ? 0xa : 0x5;
+  uint32_t enable_val = config->mode != kDifEntropySrcModeDisabled
+                            ? kMultiBitBool4True
+                            : kMultiBitBool4False;
   reg = bitfield_field32_write(reg, ENTROPY_SRC_CONF_ENABLE_FIELD, enable_val);
   mmio_region_write32(entropy_src->base_addr, ENTROPY_SRC_CONF_REG_OFFSET, reg);
 }
@@ -104,13 +111,15 @@
 
   // Conditioning bypass is hardcoded to disabled. Conditioning bypass is not
   // intended as a regular mode of operation.
-  uint32_t es_route_val = config.route_to_firmware ? 0xa : 0x5;
+  uint32_t es_route_val =
+      config.route_to_firmware ? kMultiBitBool4True : kMultiBitBool4False;
   uint32_t reg = bitfield_field32_write(
       0, ENTROPY_SRC_ENTROPY_CONTROL_ES_ROUTE_FIELD, es_route_val);
   reg = bitfield_field32_write(reg, ENTROPY_SRC_ENTROPY_CONTROL_ES_TYPE_FIELD,
-                               0x5);
+                               kMultiBitBool4False);
   mmio_region_write32(entropy_src->base_addr,
                       ENTROPY_SRC_ENTROPY_CONTROL_REG_OFFSET, reg);
+
   config_register_set(entropy_src, &config);
   return kDifOk;
 }
diff --git a/sw/device/lib/dif/dif_entropy_src_unittest.cc b/sw/device/lib/dif/dif_entropy_src_unittest.cc
index cd173f2..132eab0 100644
--- a/sw/device/lib/dif/dif_entropy_src_unittest.cc
+++ b/sw/device/lib/dif/dif_entropy_src_unittest.cc
@@ -6,6 +6,7 @@
 
 #include "gtest/gtest.h"
 #include "sw/device/lib/base/mmio.h"
+#include "sw/device/lib/base/multibits.h"
 #include "sw/device/lib/base/testing/mock_mmio.h"
 #include "sw/device/lib/dif/dif_base.h"
 
@@ -92,34 +93,44 @@
       ENTROPY_SRC_FW_OV_CONTROL_REG_OFFSET,
       {
           {ENTROPY_SRC_FW_OV_CONTROL_FW_OV_MODE_OFFSET,
-           (uint32_t)(config_.fw_override.enable ? 0xa : 0x5)},
+           (uint32_t)(config_.fw_override.enable ? kMultiBitBool4True
+                                                 : kMultiBitBool4False)},
           {ENTROPY_SRC_FW_OV_CONTROL_FW_OV_ENTROPY_INSERT_OFFSET,
-           (uint32_t)(config_.fw_override.entropy_insert_enable ? 0xa : 0x5)},
+           (uint32_t)(config_.fw_override.entropy_insert_enable
+                          ? kMultiBitBool4True
+                          : kMultiBitBool4False)},
       });
 
-  EXPECT_WRITE32(ENTROPY_SRC_ENTROPY_CONTROL_REG_OFFSET,
-                 {
-                     {ENTROPY_SRC_ENTROPY_CONTROL_ES_ROUTE_OFFSET,
-                      (uint32_t)(test_param.route_to_firmware ? 0xa : 0x5)},
-                     {ENTROPY_SRC_ENTROPY_CONTROL_ES_TYPE_OFFSET, 0x5},
-                 });
+  EXPECT_WRITE32(
+      ENTROPY_SRC_ENTROPY_CONTROL_REG_OFFSET,
+      {
+          {ENTROPY_SRC_ENTROPY_CONTROL_ES_ROUTE_OFFSET,
+           (uint32_t)(test_param.route_to_firmware ? kMultiBitBool4True
+                                                   : kMultiBitBool4False)},
+          {ENTROPY_SRC_ENTROPY_CONTROL_ES_TYPE_OFFSET, kMultiBitBool4False},
+      });
 
   // Current dif does not perform a read modified write
   // EXPECT_READ32(ENTROPY_SRC_CONF_REG_OFFSET, 0);
 
-  uint32_t rng_bit_enable = test_param.expected_rng_bit_en ? 0xa : 0x5;
-  uint32_t route_to_fw = test_param.route_to_firmware ? 0xa : 0x5;
-  uint32_t enable =
-      test_param.expected_mode != kDifEntropySrcModeDisabled ? 0xa : 0x5;
+  uint32_t rng_bit_enable =
+      test_param.expected_rng_bit_en ? kMultiBitBool4True : kMultiBitBool4False;
+  uint32_t route_to_fw =
+      test_param.route_to_firmware ? kMultiBitBool4True : kMultiBitBool4False;
+  uint32_t enable = test_param.expected_mode != kDifEntropySrcModeDisabled
+                        ? kMultiBitBool4True
+                        : kMultiBitBool4False;
 
-  uint32_t reset_ht = test_param.reset_health_test_registers ? 0xa : 0x5;
+  uint32_t reset_ht = test_param.reset_health_test_registers
+                          ? kMultiBitBool4True
+                          : kMultiBitBool4False;
   EXPECT_WRITE32(
       ENTROPY_SRC_CONF_REG_OFFSET,
       {
           {ENTROPY_SRC_CONF_RNG_BIT_SEL_OFFSET, test_param.expected_rng_sel},
           {ENTROPY_SRC_CONF_RNG_BIT_ENABLE_OFFSET, rng_bit_enable},
           {ENTROPY_SRC_CONF_HEALTH_TEST_CLR_OFFSET, reset_ht},
-          {ENTROPY_SRC_CONF_BOOT_BYPASS_DISABLE_OFFSET, 0x5},
+          {ENTROPY_SRC_CONF_BOOT_BYPASS_DISABLE_OFFSET, kMultiBitBool4False},
           {ENTROPY_SRC_CONF_ENTROPY_DATA_REG_ENABLE_OFFSET, route_to_fw},
           {ENTROPY_SRC_CONF_ENABLE_OFFSET, enable},
       });
diff --git a/util/design/data/multibits.h.tpl b/util/design/data/multibits.h.tpl
new file mode 100644
index 0000000..49f685a
--- /dev/null
+++ b/util/design/data/multibits.h.tpl
@@ -0,0 +1,33 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+#ifndef OPENTITAN_SW_DEVICE_LIB_BASE_MULTIBITS_H_
+#define OPENTITAN_SW_DEVICE_LIB_BASE_MULTIBITS_H_
+
+/**
+ * Multi-bit boolean values
+ *
+ * Certain configuration fields in the design are multi-bits.
+ * This gives the configuration fields redundancy and ensures
+ * it is difficult to fault the values to a "good" state.
+ */
+typedef enum multi_bit_bool {
+<%
+from mubi import prim_mubi
+%>\
+
+% for n in range(1, n_max_nibbles + 1):
+  <%
+     nbits = n * 4
+  %>\
+  /**
+   * ${nbits}-bits boolean values
+   */
+  kMultiBitBool${nbits}True = 0x${prim_mubi.mubi_value_as_hexstr(True, nbits)},
+  kMultiBitBool${nbits}False = 0x${prim_mubi.mubi_value_as_hexstr(False, nbits)},
+
+% endfor
+} multi_bit_bool_t;
+
+#endif  // OPENTITAN_SW_DEVICE_LIB_BASE_MULTIBITS_H_
diff --git a/util/design/data/prim_mubi_pkg.sv.tpl b/util/design/data/prim_mubi_pkg.sv.tpl
index 9ca00f2..012ea90 100644
--- a/util/design/data/prim_mubi_pkg.sv.tpl
+++ b/util/design/data/prim_mubi_pkg.sv.tpl
@@ -13,7 +13,7 @@
 package prim_mubi_pkg;
 
 <%
-import prim_mubi as prim_mubi
+from mubi import prim_mubi
 %>\
 % for n in range(1, n_max_nibbles + 1):
 <%
diff --git a/util/design/prim_mubi.py b/util/design/mubi/prim_mubi.py
similarity index 91%
rename from util/design/prim_mubi.py
rename to util/design/mubi/prim_mubi.py
index 66488da..4615e58 100755
--- a/util/design/prim_mubi.py
+++ b/util/design/mubi/prim_mubi.py
@@ -11,12 +11,14 @@
 MUBI_SENDER_TPL_PATH = "util/design/data/prim_mubi_sender.sv.tpl"
 MUBI_SYNC_TPL_PATH = "util/design/data/prim_mubi_sync.sv.tpl"
 MUBI_DEC_TPL_PATH = "util/design/data/prim_mubi_dec.sv.tpl"
+MUBI_SW_TPL_PATH = "util/design/data/multibits.h.tpl"
 
 MUBI_PKG_OUT_PATH = "hw/ip/prim/rtl/prim_mubi_pkg.sv"
 MUBI_CORE_OUT_PATH = "hw/ip/prim/prim_mubi.core"
 MUBI_SENDER_OUT_PATH = "hw/ip/prim/rtl/prim_mubi{}_sender.sv"
 MUBI_SYNC_OUT_PATH = "hw/ip/prim/rtl/prim_mubi{}_sync.sv"
 MUBI_DEC_OUT_PATH = "hw/ip/prim/rtl/prim_mubi{}_dec.sv"
+MUBI_SW_OUT_PATH = "sw/device/lib/base/multibits.h"
 
 N_MAX_NIBBLES = 4
 
@@ -46,11 +48,16 @@
     return int(mubi_value_as_hexstr(sel, width), 16)
 
 
-def main():
+def get_c_path():
+    return MUBI_SW_OUT_PATH
+
+
+def gen():
 
     tpls = [
         (MUBI_PKG_TPL_PATH, MUBI_PKG_OUT_PATH),
         (MUBI_CORE_TPL_PATH, MUBI_CORE_OUT_PATH),
+        (MUBI_SW_TPL_PATH, MUBI_SW_OUT_PATH),
     ]
     for tpl, out in tpls:
         with open(tpl) as inf:
@@ -70,7 +77,3 @@
                 n_bits = n * 4
                 with open(out.format(n_bits), 'w') as outf:
                     outf.write(reg_tpl.render(n_bits=n_bits))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/util/reggen/field.py b/util/reggen/field.py
index a69ba67..a85fe7f 100644
--- a/util/reggen/field.py
+++ b/util/reggen/field.py
@@ -10,7 +10,7 @@
 from .lib import (check_keys, check_str, check_name, check_bool,
                   check_list, check_str_list, check_xint)
 from .params import ReggenParams
-from design.prim_mubi import is_width_valid, mubi_value_as_int  # type: ignore
+from design.mubi.prim_mubi import is_width_valid, mubi_value_as_int  # type: ignore
 
 
 REQUIRED_FIELDS = {
