blob: fb71f52fa5c760a61f7f0712c72d1da7f82674cc [file] [log] [blame]
import dbcopy
import pytrellis
import nets
# Based on prior fuzzing conjecture that CIB_EBR
# 0,1,2, and DUMMY, and CIB_PIC_B0 and CIB_PIC_B_DUMMY have the same layout.
# Pending dbcopy and prjtrellis changes (TODO), CIB_PIC_B0 and CIB_PIC_B_DUMMY
# need to be manually tweaked to convert U_/D_ prefixes to G_ prefixes. There's
# too much shared routing to justify rerunning the fuzzers.
shared_tiles = ["CIB_EBR1", "CIB_EBR2", "CIB_EBR_DUMMY"]
shared_tiles_no_lrudconns = ["CIB_PIC_B0", "CIB_PIC_B_DUMMY"]
# Only globals are the BRANCH connections which are fed by U_/D_ conns with
# G_ prefixes (muxed).
def exclude_lrud_conns(conn):
src = conn.source
sink = conn.sink
return not (src.startswith("G_CLKO") or sink.startswith("G_CLKI"))
def exclude_lrud_muxes(conn):
(src, sink) = conn
return not (src.startswith("G_CLKI") and sink.startswith("G_CLKO"))
def main():
pytrellis.load_database("../../../database")
for dest in shared_tiles:
dbcopy.dbcopy("MachXO2", "LCMXO2-1200HC", "CIB_EBR0", dest)
for dest in shared_tiles_no_lrudconns:
dbcopy.copy_muxes_with_predicate("MachXO2", "LCMXO2-1200HC", "CIB_EBR0", dest, exclude_lrud_muxes)
dbcopy.copy_conns_with_predicate("MachXO2", "LCMXO2-1200HC", "CIB_EBR0", dest, exclude_lrud_conns)
if __name__ == "__main__":
main()