blob: 6978a1d9e75fefc058ef5814bf32b09b640a7125 [file] [log] [blame]
from fuzzconfig import FuzzConfig
import interconnect
import nets
import pytrellis
import re
dsp_tiles = [
"MIB_R13C60:MIB_DSP0", "MIB_R13C60:MIB2_DSP0",
"MIB_R13C61:MIB_DSP1", "MIB_R13C61:MIB2_DSP1",
"MIB_R13C62:MIB_DSP2", "MIB_R13C62:MIB2_DSP2",
"MIB_R13C63:MIB_DSP3", "MIB_R13C63:MIB2_DSP3",
"MIB_R13C64:MIB_DSP4", "MIB_R13C64:MIB2_DSP4",
"MIB_R13C65:MIB_DSP5", "MIB_R13C65:MIB2_DSP5",
"MIB_R13C66:MIB_DSP6", "MIB_R13C66:MIB2_DSP6",
"MIB_R13C67:MIB_DSP7", "MIB_R13C67:MIB2_DSP7",
"MIB_R13C68:MIB_DSP8", "MIB_R13C68:MIB2_DSP8",
]
def get_tiles(first):
#
# Get the list of tiles, placing a certain tile first so it is prioritised for fixed conns
return [first] + [_ for _ in dsp_tiles if _ != first]
jobs = [
((13, 60), FuzzConfig(job="DSPROUTE0", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C60:MIB_DSP0"))),
((13, 61), FuzzConfig(job="DSPROUTE1", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C61:MIB_DSP1"))),
((13, 62), FuzzConfig(job="DSPROUTE2", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C62:MIB_DSP2"))),
((13, 63), FuzzConfig(job="DSPROUTE3", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C63:MIB_DSP3"))),
((13, 64), FuzzConfig(job="DSPROUTE4", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C64:MIB_DSP4"))),
((13, 65), FuzzConfig(job="DSPROUTE5", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C65:MIB_DSP5"))),
((13, 66), FuzzConfig(job="DSPROUTE6", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C66:MIB_DSP6"))),
((13, 67), FuzzConfig(job="DSPROUTE7", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C67:MIB_DSP7"))),
((13, 68), FuzzConfig(job="DSPROUTE8", family="ECP5", device="LFE5U-25F", ncl="dsproute.ncl",
tiles=get_tiles("MIB_R13C68:MIB_DSP8")))
]
def main():
pytrellis.load_database("../../../database")
for job in jobs:
loc, cfg = job
cfg.setup()
def nn_filter(net, netnames):
return ("MULT" in net) or ("ADD" in net) or ("JMUI" in net) or ("JP" in net) \
or ("DSP" in net) or ("JSRO" in net) or ("JNEXTR" in net) \
or ("JCFB" in net) or ("JPSR"in net) or ("JMSR" in net) or ("JR" in net) \
or ("ALU" in net) or ("JCO" in net) or ("JSOURCE" in net)
interconnect.fuzz_interconnect(config=cfg, location=loc,
netname_predicate=nn_filter,
netname_filter_union=False,
func_cib=True)
if __name__ == "__main__":
main()