blob: dee2db06baf5181314b0b02b9fb2b75acb7f0b9d [file] [log] [blame]
import pytrellis
"""
Database fix utility
Run at the end of fuzzing to "finalise" the database and remove problems that may occur during fuzzing
"""
def dbfixup(family, device, tiletype):
db = pytrellis.get_tile_bitdata(
pytrellis.TileLocator(family, device, tiletype))
fc = db.get_fixed_conns()
# Where a wire is driven by both a mux and fixed connections, replace those fixed connections
# with a mux arc with no config bits
for mux in db.get_sinks():
deleteFc = False
for conn in fc:
if conn.sink == mux:
ad = pytrellis.ArcData()
ad.source = conn.source
ad.sink = conn.sink
db.add_mux_arc(ad)
deleteFc = True
if deleteFc:
db.remove_fixed_sink(mux)
db.save()