Add enum bit fuzzing for missing left-right tiles on 1200HC.
diff --git a/fuzzers/machxo2/051-pio_attrs/fuzzer.py b/fuzzers/machxo2/051-pio_attrs/fuzzer.py index 9185f61..0d976d5 100644 --- a/fuzzers/machxo2/051-pio_attrs/fuzzer.py +++ b/fuzzers/machxo2/051-pio_attrs/fuzzer.py
@@ -60,6 +60,30 @@ "side": "T", "pins": [("28", "C"), ("27", "D")] }, + + { + "cfg": FuzzConfig(job="PICRS0_IO", family="MachXO2", device="LCMXO2-1200HC", + ncl="empty.ncl", tiles=["PR3:PIC_RS0"]), + "side": "R", + "pins": [("71", "A"), ("70", "B")], + "package": "TQFP100" + }, + + { + "cfg": FuzzConfig(job="PICLS0_IO", family="MachXO2", device="LCMXO2-1200HC", + ncl="empty.ncl", tiles=["PL9:PIC_LS0"]), + "side": "L", + "pins": [("20", "A"), ("21", "B")], + "package": "TQFP100" + }, + + { + "cfg": FuzzConfig(job="PICL0VREF_IO", family="MachXO2", device="LCMXO2-1200HC", + ncl="empty.ncl", tiles=["PL4:PIC_L0_VREF3"]), + "side": "L", + "pins": [("11", "A"), ("12", "B"), ("13", "C"), ("14", "D")], + "package": "TQFP144" + }, ] # Function constructed from reading the MachXO2 sysIO Usage Guide.
diff --git a/fuzzers/machxo2/052-pio_fixup/fuzzer.py b/fuzzers/machxo2/052-pio_fixup/fuzzer.py index 0bdf954..ee07d94 100644 --- a/fuzzers/machxo2/052-pio_fixup/fuzzer.py +++ b/fuzzers/machxo2/052-pio_fixup/fuzzer.py
@@ -4,7 +4,10 @@ def main(): pytrellis.load_database("../../../database") dbfixup.remove_enum_bits("MachXO2", "LCMXO2-1200HC", "PIC_L0", (29, 11)) + dbfixup.remove_enum_bits("MachXO2", "LCMXO2-1200HC", "PIC_LS0", (29, 11)) + dbfixup.remove_enum_bits("MachXO2", "LCMXO2-1200HC", "PIC_L0_VREF3", (29, 11)) dbfixup.remove_enum_bits("MachXO2", "LCMXO2-1200HC", "PIC_R0", (29, 59), (0, 48)) + dbfixup.remove_enum_bits("MachXO2", "LCMXO2-1200HC", "PIC_RS0", (29, 59), (0, 48)) if __name__ == "__main__": main()
diff --git a/util/fuzz/dbfixup.py b/util/fuzz/dbfixup.py index 734522f..885849d 100644 --- a/util/fuzz/dbfixup.py +++ b/util/fuzz/dbfixup.py
@@ -56,15 +56,14 @@ for enum in db.get_settings_enums(): fixed_enum = pytrellis.EnumSettingBits() - for option in db.get_data_for_enum(enum).options: - key = option.key() + for (option, data) in db.get_data_for_enum(enum).options.items(): fixed_bg = pytrellis.BitGroup() - for bit in option.data().bits: + for bit in data.bits: if in_bounding_box(bit): fixed_bg.bits.add(bit) - fixed_enum.options[key] = fixed_bg + fixed_enum.options[option] = fixed_bg fixed_enum.name = db.get_data_for_enum(enum).name fixed_enum.defval = db.get_data_for_enum(enum).defval