[reggen] Ensure that countermeasure names are unique Signed-off-by: Michael Schaffner <msf@opentitan.org>
diff --git a/util/reggen/ip_block.py b/util/reggen/ip_block.py index 391820a..1b1bc9f 100644 --- a/util/reggen/ip_block.py +++ b/util/reggen/ip_block.py
@@ -166,11 +166,19 @@ alerts = Alert.from_raw_list('alert_list for block {}' .format(name), rd.get('alert_list', [])) + known_cms = {} + raw_cms = rd.get('countermeasures', []) countermeasures = CounterMeasure.from_raw_list( 'countermeasure list for block {}' - .format(name), - rd.get('countermeasures', [])) + .format(name), raw_cms) + + # Ensure that the countermeasures are unique + for x in countermeasures: + if str(x) in known_cms: + raise RuntimeError(f"Duplicate countermeasure {str(x)}") + else: + known_cms.update({str(x): 1}) no_auto_intr = check_bool(rd.get('no_auto_intr_regs', not interrupts), 'no_auto_intr_regs field of ' + what)