diff options
-rw-r--r-- | icefuzz/Makefile | 11 | ||||
-rw-r--r-- | icefuzz/database.py | 9 | ||||
-rw-r--r-- | icefuzz/icecube.sh | 1 | ||||
-rw-r--r-- | icefuzz/sdfsummary.py | 178 | ||||
-rw-r--r-- | icefuzz/timings.py | 297 | ||||
-rw-r--r-- | icefuzz/timings_1k.txt | 714 |
6 files changed, 1025 insertions, 185 deletions
diff --git a/icefuzz/Makefile b/icefuzz/Makefile index 030eb35..9643f3c 100644 --- a/icefuzz/Makefile +++ b/icefuzz/Makefile @@ -17,7 +17,7 @@ TESTS += fflogic TESTS += ram40 TESTS += pll -EIGTHK = _8k +# EIGTHK = _8k database: bitdata_io.txt bitdata_logic.txt bitdata_ramb$(EIGTHK).txt bitdata_ramt$(EIGTHK).txt ifeq ($(EIGTHK),_8k) @@ -36,6 +36,15 @@ endif diff -U0 cached_ramb_8k.txt bitdata_ramb_8k.txt || cp -v bitdata_ramb_8k.txt cached_ramb_8k.txt diff -U0 cached_ramt_8k.txt bitdata_ramt_8k.txt || cp -v bitdata_ramt_8k.txt cached_ramt_8k.txt +timings: +ifeq ($(EIGTHK),_8k) + python3 timings.py -t timings_8k.txt work_*/*.sdf > timings_8k.new + mv timings_8k.new timings_8k.txt +else + python3 timings.py -t timings_1k.txt work_*/*.sdf > timings_1k.new + mv timings_1k.new timings_1k.txt +endif + data_cached.txt: cached_io.txt cached_logic.txt cached_ramb$(EIGTHK).txt cached_ramt$(EIGTHK).txt gawk '{ print "io", $$0; }' cached_io.txt > data_cached.new gawk '{ print "logic", $$0; }' cached_logic.txt >> data_cached.new diff --git a/icefuzz/database.py b/icefuzz/database.py index 7720ce2..9f0ebc9 100644 --- a/icefuzz/database.py +++ b/icefuzz/database.py @@ -2,12 +2,9 @@ import re, sys, os -def cmp_bits(a, b): +def sort_bits_key(a): if a[0] == "!": a = a[1:] - if b[0] == "!": b = b[1:] - a = re.sub(r"\d+", lambda m: "%02d" % int(m.group(0)), a) - b = re.sub(r"\d+", lambda m: "%02d" % int(m.group(0)), b) - return cmp(a, b) + return re.sub(r"\d+", lambda m: "%02d" % int(m.group(0)), a) def read_database(filename, tile_type): raw_db = list() @@ -107,7 +104,7 @@ def read_database(filename, tile_type): database = list() for func in sorted(func_to_bits): bits = func_to_bits[func] - entry = (",".join(sorted(bits, cmp_bits)),) + func + entry = (",".join(sorted(bits, key=sort_bits_key)),) + func database.append(entry) return database diff --git a/icefuzz/icecube.sh b/icefuzz/icecube.sh index 54421a4..f3dabc6 100644 --- a/icefuzz/icecube.sh +++ b/icefuzz/icecube.sh @@ -189,5 +189,6 @@ cp "$1.tmp"/outputs/bitmap/top_bitmap.bin "$1.bin" cp "$1.tmp"/outputs/bitmap/top_bitmap_glb.txt "$1.glb" cp "$1.tmp"/outputs/placer/top_sbt.pcf "$1.psb" cp "$1.tmp"/outputs/netlist/top_sbt.v "$1.vsb" +cp "$1.tmp"/outputs/netlist/top_sbt.sdf "$1.sdf" $scriptdir/../icepack/iceunpack "$1.bin" "$1.txt" diff --git a/icefuzz/sdfsummary.py b/icefuzz/sdfsummary.py deleted file mode 100644 index f1fad42..0000000 --- a/icefuzz/sdfsummary.py +++ /dev/null @@ -1,178 +0,0 @@ -#!/usr/bin/env python3 - -import fileinput -import re - -intext = [] -for line in fileinput.input(): - line = re.sub("//.*", "", line) - intext.append(line) - -def skip_whitespace(text, cursor): - while cursor < len(text) and text[cursor] in [" ", "\t", "\r", "\n"]: - cursor += 1 - return cursor - -def parse_sdf(text, cursor): - cursor = skip_whitespace(text, cursor) - - if cursor < len(text) and text[cursor] == "(": - expr = [] - cursor += 1 - while cursor < len(text) and text[cursor] != ")": - child, cursor = parse_sdf(text, cursor) - expr.append(child) - cursor = skip_whitespace(text, cursor) - return expr, cursor+1 - - if cursor < len(text) and text[cursor] == '"': - expr = '"' - cursor += 1 - while cursor < len(text) and text[cursor] != '"': - expr += text[cursor] - cursor += 1 - return expr + '"', cursor+1 - - expr = "" - while cursor < len(text) and text[cursor] not in [" ", "\t", "\r", "\n", "(", ")"]: - expr += text[cursor] - cursor += 1 - return expr, cursor - -def sdf_to_string(expr): - if type(expr) is list: - tokens = [] - tokens.append("(") - first_child = True - for child in expr: - if not first_child: - tokens.append(" ") - tokens.append(sdf_to_string(child)) - first_child = False - tokens.append(")") - return "".join(tokens) - else: - return expr - -def dump_sdf(expr, indent=""): - if type(expr) is list: - if len(expr) > 0 and expr[0] in ["IOPATH", "SETUP", "HOLD", "CELLTYPE", "INSTANCE", "SDFVERSION", - "DESIGN", "DATE", "VENDOR", "DIVIDER", "TIMESCALE", "RECOVERY", "REMOVAL"]: - print(indent + sdf_to_string(expr)) - else: - print("%s(%s" % (indent, expr[0] if len(expr) > 0 else "")) - for child in expr[1:]: - dump_sdf(child, indent + " ") - print("%s)" % indent) - else: - print("%s%s" % (indent, expr)) - -sdfdata, _ = parse_sdf("".join(intext), 0) - -def generalize_instances(expr): - if type(expr) is list: - if len(expr) == 2 and expr[0] == "INSTANCE": - expr[1] = "*" - for child in expr: - generalize_instances(child) - -generalize_instances(sdfdata) - -def list_to_tuple(expr): - if type(expr) is list: - tup = [] - for child in expr: - tup.append(list_to_tuple(child)) - return tuple(tup) - return expr - -def uniquify_cells(expr): - cache = set() - filtered_expr = [] - - for child in expr: - t = list_to_tuple(child) - if t not in cache: - filtered_expr.append(child) - cache.add(t) - - return filtered_expr - -sdfdata = uniquify_cells(sdfdata) -# dump_sdf(sdfdata) - -iopaths = dict() - -for cell in sdfdata: - if cell[0] != "CELL": - continue - - celltype = None - for stmt in cell: - if stmt[0] == "CELLTYPE": - celltype = stmt[1][1:-1] - - if celltype.startswith("PRE_IO_PIN_TYPE_"): - celltype = "PRE_IO_PIN_TYPE" - - if celltype.startswith("Span4Mux"): - if celltype == "Span4Mux": - celltype = "Span4Mux_v4" - elif celltype == "Span4Mux_v": - celltype = "Span4Mux_v4" - elif celltype == "Span4Mux_h": - celltype = "Span4Mux_h4" - else: - match = re.match("Span4Mux_s(.*)_(h|v)", celltype) - celltype = "Span4Mux_%c%d" % (match.group(2), int(match.group(1))) - - if celltype.startswith("Span12Mux"): - if celltype == "Span12Mux": - celltype = "Span12Mux_v12" - elif celltype == "Span12Mux_v": - celltype = "Span12Mux_v12" - elif celltype == "Span12Mux_h": - celltype = "Span12Mux_h12" - else: - match = re.match("Span12Mux_s(.*)_(h|v)", celltype) - celltype = "Span12Mux_%c%d" % (match.group(2), int(match.group(1))) - - iopaths.setdefault(celltype, set()) - - if stmt[0] == "DELAY": - assert stmt[1][0] == "ABSOLUTE" - for iopath in stmt[1][1:]: - assert iopath[0] == "IOPATH" - iopaths[celltype].add(sdf_to_string(iopath)) - - if stmt[0] == "TIMINGCHECK": - for iopath in stmt[1:]: - iopaths[celltype].add(sdf_to_string(iopath)) - -convert = lambda text: int(text) if text.isdigit() else text.lower() -alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] -alphanum_key_list = lambda l: [len(l)] + [ alphanum_key(s) for s in l ] - -for celltype in sorted(iopaths, key=alphanum_key): - print("CELL %s" % celltype) - path_list = list() - path_list_lens = list() - for iopath in iopaths[celltype]: - iopath = iopath.replace("(posedge ", "posedge:") - iopath = iopath.replace("(negedge ", "negedge:") - iopath = iopath.replace("(", "") - iopath = iopath.replace(")", "") - iopath = iopath.split() - for i in range(len(iopath)): - if i < len(path_list_lens): - path_list_lens[i] = max(path_list_lens[i], len(iopath[i])) - else: - path_list_lens.append(len(iopath[i])) - path_list.append(iopath) - - for iopath in sorted(path_list, key=alphanum_key_list): - for i in range(len(iopath)): - print("%s%-*s" % (" " if i != 0 else "", path_list_lens[i] if i != len(iopath)-1 else 0, iopath[i]), end="") - print() - print() - diff --git a/icefuzz/timings.py b/icefuzz/timings.py new file mode 100644 index 0000000..d6440f8 --- /dev/null +++ b/icefuzz/timings.py @@ -0,0 +1,297 @@ +#!/usr/bin/env python3 + +import getopt, sys, re + +database = dict() +sdf_inputs = list() +txt_inputs = list() +output_sdf = False + + +def usage(): + print(""" +Usage: python3 timings.py [options] [sdf_file..] + + -t filename + read TXT file + + -s + output SDF (not TXT) format +""") + sys.exit(0) + + +try: + opts, args = getopt.getopt(sys.argv[1:], "t:s") +except: + usage() + +for o, a in opts: + if o == "-t": + txt_inputs.append(a) + elif o == "-s": + output_sdf = True + else: + usage() + +sdf_inputs += args + + +def skip_whitespace(text, cursor): + while cursor < len(text) and text[cursor] in [" ", "\t", "\r", "\n"]: + cursor += 1 + return cursor + + +def parse_sdf(text, cursor): + cursor = skip_whitespace(text, cursor) + + if cursor < len(text) and text[cursor] == "(": + expr = [] + cursor += 1 + while cursor < len(text) and text[cursor] != ")": + child, cursor = parse_sdf(text, cursor) + expr.append(child) + cursor = skip_whitespace(text, cursor) + return expr, cursor+1 + + if cursor < len(text) and text[cursor] == '"': + expr = '"' + cursor += 1 + while cursor < len(text) and text[cursor] != '"': + expr += text[cursor] + cursor += 1 + return expr + '"', cursor+1 + + expr = "" + while cursor < len(text) and text[cursor] not in [" ", "\t", "\r", "\n", "(", ")"]: + expr += text[cursor] + cursor += 1 + return expr, cursor + + +def sdf_to_string(expr): + if type(expr) is list: + tokens = [] + tokens.append("(") + first_child = True + for child in expr: + if not first_child: + tokens.append(" ") + tokens.append(sdf_to_string(child)) + first_child = False + tokens.append(")") + return "".join(tokens) + else: + return expr + + +def dump_sdf(expr, indent=""): + if type(expr) is list: + if len(expr) > 0 and expr[0] in ["IOPATH", "SETUP", "HOLD", "CELLTYPE", "INSTANCE", "SDFVERSION", + "DESIGN", "DATE", "VENDOR", "DIVIDER", "TIMESCALE", "RECOVERY", "REMOVAL"]: + print(indent + sdf_to_string(expr)) + else: + print("%s(%s" % (indent, expr[0] if len(expr) > 0 else "")) + for child in expr[1:]: + dump_sdf(child, indent + " ") + print("%s)" % indent) + else: + print("%s%s" % (indent, expr)) + + +def generalize_instances(expr): + if type(expr) is list: + if len(expr) == 2 and expr[0] == "INSTANCE": + expr[1] = "*" + for child in expr: + generalize_instances(child) + + +def list_to_tuple(expr): + if type(expr) is list: + tup = [] + for child in expr: + tup.append(list_to_tuple(child)) + return tuple(tup) + return expr + + +def uniquify_cells(expr): + cache = set() + filtered_expr = [] + + for child in expr: + t = list_to_tuple(child) + if t not in cache: + filtered_expr.append(child) + cache.add(t) + + return filtered_expr + + +########################################### +# Parse SDF input files + +for filename in sdf_inputs: + print("### reading SDF file %s" % filename, file=sys.stderr) + + intext = [] + with open(filename, "r") as f: + for line in f: + line = re.sub("//.*", "", line) + intext.append(line) + + sdfdata, _ = parse_sdf("".join(intext), 0) + generalize_instances(sdfdata) + sdfdata = uniquify_cells(sdfdata) + + for cell in sdfdata: + if cell[0] != "CELL": + continue + + celltype = None + + def add_entry(entry): + entry = sdf_to_string(entry) + entry = entry.replace("(posedge ", "posedge:") + entry = entry.replace("(negedge ", "negedge:") + entry = entry.replace("(", "") + entry = entry.replace(")", "") + entry = entry.split() + database[celltype].add(tuple(entry)) + + for stmt in cell: + if stmt[0] == "CELLTYPE": + celltype = stmt[1][1:-1] + + if celltype.startswith("PRE_IO_PIN_TYPE_"): + celltype = "PRE_IO_PIN_TYPE" + + if celltype.startswith("Span4Mux"): + if celltype == "Span4Mux": + celltype = "Span4Mux_v4" + elif celltype == "Span4Mux_v": + celltype = "Span4Mux_v4" + elif celltype == "Span4Mux_h": + celltype = "Span4Mux_h4" + else: + match = re.match("Span4Mux_s(.*)_(h|v)", celltype) + celltype = "Span4Mux_%c%d" % (match.group(2), int(match.group(1))) + + if celltype.startswith("Span12Mux"): + if celltype == "Span12Mux": + celltype = "Span12Mux_v12" + elif celltype == "Span12Mux_v": + celltype = "Span12Mux_v12" + elif celltype == "Span12Mux_h": + celltype = "Span12Mux_h12" + else: + match = re.match("Span12Mux_s(.*)_(h|v)", celltype) + celltype = "Span12Mux_%c%d" % (match.group(2), int(match.group(1))) + + database.setdefault(celltype, set()) + + if stmt[0] == "DELAY": + assert stmt[1][0] == "ABSOLUTE" + for entry in stmt[1][1:]: + assert entry[0] == "IOPATH" + add_entry(entry) + + if stmt[0] == "TIMINGCHECK": + for entry in stmt[1:]: + add_entry(entry) + + +########################################### +# Parse TXT input files + +for filename in txt_inputs: + print("### reading TXT file %s" % filename, file=sys.stderr) + with open(filename, "r") as f: + celltype = None + for line in f: + line = line.split() + if len(len) > 1: + if line[0] == "CELL": + celltype = line[1] + else: + database[celltype].add(tuple(line)) + + +########################################### +# Create SDF output + +convert = lambda text: int(text) if text.isdigit() else text.lower() +alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] +alphanum_key_list = lambda l: [len(l)] + [ alphanum_key(s) for s in l ] + +if output_sdf: + print("(DELAYFILE") + print(" (SDFVERSION \"3.0\")") + print(" (TIMESCALE 1ps)") + + def format_entry(entry): + text = [] + for i in range(len(entry)): + if i > 2: + text.append("(%s)" % entry[i]) + elif entry[i].startswith("posedge:"): + text.append("(posedge %s)" % entry[i].replace("posedge:", "")) + elif entry[i].startswith("negedge:"): + text.append("(negedge %s)" % entry[i].replace("negedge:", "")) + else: + text.append(entry[i]) + return " ".join(text) + + for celltype in sorted(database, key=alphanum_key): + print(" (CELL") + print(" (CELLTYPE \"%s\")" % celltype) + print(" (INSTANCE *)") + + delay_abs_entries = list() + timingcheck_entries = list() + for entry in sorted(database[celltype], key=alphanum_key_list): + if entry[0] == "IOPATH": + delay_abs_entries.append(entry) + else: + timingcheck_entries.append(entry) + + if len(delay_abs_entries) != 0: + print(" (DELAY") + print(" (ABSOLUTE") + for entry in delay_abs_entries: + print(" (%s)" % format_entry(entry)) + print(" )") + print(" )") + + if len(timingcheck_entries) != 0: + print(" (TIMINGCHECK") + for entry in timingcheck_entries: + print(" (%s)" % format_entry(entry)) + print(" )") + + print(" )") + + print(")") + + +########################################### +# Create TXT output + +else: + for celltype in sorted(database, key=alphanum_key): + print("CELL %s" % celltype) + entries_lens = list() + for entry in database[celltype]: + for i in range(len(entry)): + if i < len(entries_lens): + entries_lens[i] = max(entries_lens[i], len(entry[i])) + else: + entries_lens.append(len(entry[i])) + for entry in sorted(database[celltype], key=alphanum_key_list): + for i in range(len(entry)): + print("%s%-*s" % (" " if i != 0 else "", entries_lens[i] if i != len(entry)-1 else 0, entry[i]), end="") + print() + print() + diff --git a/icefuzz/timings_1k.txt b/icefuzz/timings_1k.txt new file mode 100644 index 0000000..551b6f1 --- /dev/null +++ b/icefuzz/timings_1k.txt @@ -0,0 +1,714 @@ +CELL ADTTRIBUF +IOPATH I O 1006.96:1308.15:1590.85 1311.86:1704.25:2072.55 +IOPATH T O 1006.96:1308.15:1590.85 1292.23:1678.75:2041.54 + +CELL CascadeBuf +IOPATH I O 137.402:178.5:217.075 170.116:221:268.76 + +CELL CascadeMux +IOPATH I O 0:0:0 0:0:0 + +CELL CEMux +IOPATH I O 562.692:731:888.975 516.892:671.5:816.617 + +CELL ClkMux +IOPATH I O 287.889:374:454.825 215.917:280.5:341.118 + +CELL DL +HOLD negedge:D negedge:G 0:0:0 +HOLD posedge:D negedge:G 0:0:0 +RECOVERY negedge:RST negedge:G 0:0:0 +RECOVERY negedge:SET negedge:G 0:0:0 +RECOVERY posedge:RST negedge:G 0:0:0 +RECOVERY posedge:SET negedge:G 0:0:0 +REMOVAL negedge:RST negedge:G 0:0:0 +REMOVAL negedge:SET negedge:G 0:0:0 +REMOVAL posedge:RST negedge:G 0:0:0 +REMOVAL posedge:SET negedge:G 0:0:0 +SETUP negedge:D negedge:G 0:0:0 +SETUP posedge:D negedge:G 0:0:0 +IOPATH posedge:G Q 0:0:0 0:0:0 +IOPATH RST Q 0:0:0 0:0:0 +IOPATH SET Q 0:0:0 0:0:0 + +CELL gio2CtrlBuf +IOPATH I O 0:0:0 0:0:0 + +CELL GIOBUG +IOPATH PACKAGE_PIN GLOBAL_BUFFER_OUTPUT 1668.45:2167.5:2635.92 1603.02:2082.5:2532.55 + +CELL Glb2LocalMux +IOPATH I O 418.748:544:661.563 333.689:433.5:527.183 + +CELL GlobalMux +IOPATH I O 143.944:187:227.412 71.9722:93.5:113.706 + +CELL ICE_CARRY_IN_MUX +IOPATH carryinitin carryinitout 183.202:238:289.434 163.573:212.5:258.423 + +CELL ICE_GB +IOPATH USERSIGNALTOGLOBALBUFFER GLOBALBUFFEROUTPUT 575.778:748:909.649 523.434:680:826.954 + +CELL InMux +IOPATH I O 242.088:314.5:382.466 202.831:263.5:320.445 + +CELL INV +IOPATH I O 0:0:0 0:0:0 + +CELL IO_PAD +IOPATH DIN PACKAGEPIN 2291.5:2291.5:2291.5 2353.2:2353.2:2353.2 +IOPATH OE PACKAGEPIN 1902:1902:1902 1990:1990:1990 +IOPATH OE PACKAGEPIN 1973:1973:1973 1942:1942:1942 +IOPATH OE PACKAGEPIN 2291.5:2291.5:2291.5 2353.2:2353.2:2353.2 +IOPATH PACKAGEPIN DOUT 590:590:590 540:540:540 + +CELL IoInMux +IOPATH I O 242.088:314.5:382.466 202.831:263.5:320.445 + +CELL IoSpan4Mux +IOPATH I O 268.26:348.5:423.814 300.975:391:475.498 + +CELL LocalMux +IOPATH I O 307.518:399.5:485.835 287.889:374:454.825 + +CELL LogicCell40 +HOLD negedge:ce posedge:clk 0:0:0 +HOLD negedge:in0 posedge:clk 0:0:0 +HOLD negedge:in1 posedge:clk 0:0:0 +HOLD negedge:in2 posedge:clk 0:0:0 +HOLD negedge:in3 posedge:clk 0:0:0 +HOLD negedge:sr posedge:clk -184.184:-239.275:-290.984 +HOLD posedge:ce posedge:clk 0:0:0 +HOLD posedge:in0 posedge:clk 0:0:0 +HOLD posedge:in1 posedge:clk 0:0:0 +HOLD posedge:in2 posedge:clk 0:0:0 +HOLD posedge:in3 posedge:clk 0:0:0 +HOLD posedge:sr posedge:clk -167.106:-217.09:-264.005 +RECOVERY negedge:sr posedge:clk 148.983:193.545:235.372 +RECOVERY posedge:sr posedge:clk 0:0:0 +REMOVAL negedge:sr posedge:clk 0:0:0 +REMOVAL posedge:sr posedge:clk 0:0:0 +SETUP negedge:ce posedge:clk 0:0:0 +SETUP negedge:in0 posedge:clk 372.947:484.5:589.205 +SETUP negedge:in1 posedge:clk 353.318:459:558.194 +SETUP negedge:in2 posedge:clk 300.975:391:475.498 +SETUP negedge:in3 posedge:clk 202.831:263.5:320.445 +SETUP negedge:sr posedge:clk 130.859:170:206.738 +SETUP posedge:ce posedge:clk 0:0:0 +SETUP posedge:in0 posedge:clk 438.376:569.5:692.574 +SETUP posedge:in1 posedge:clk 372.947:484.5:589.205 +SETUP posedge:in2 posedge:clk 346.775:450.5:547.857 +SETUP posedge:in3 posedge:clk 255.174:331.5:403.14 +SETUP posedge:sr posedge:clk 189.745:246.5:299.771 +IOPATH carryin carryout 117.773:153:186.065 98.144:127.5:155.054 +IOPATH in0 lcout 418.748:544:661.563 359.861:467.5:568.531 +IOPATH in0 ltout 340.232:442:537.52 359.861:467.5:568.531 +IOPATH in1 carryout 242.088:314.5:382.466 229.003:297.5:361.792 +IOPATH in1 lcout 372.947:484.5:589.205 353.318:459:558.194 +IOPATH in1 ltout 300.975:391:475.498 353.318:459:558.194 +IOPATH in2 carryout 215.917:280.5:341.118 124.316:161.5:196.402 +IOPATH in2 lcout 353.318:459:558.194 327.147:425:516.846 +IOPATH in2 ltout 287.889:374:454.825 320.604:416.5:506.509 +IOPATH in3 lcout 294.432:382.5:465.161 268.26:348.5:423.814 +IOPATH in3 ltout 248.631:323:392.803 255.174:331.5:403.14 +IOPATH posedge:clk lcout 503.806:654.5:795.943 503.806:654.5:795.943 +IOPATH sr lcout 0:0:0 558.989:726.189:883.125 +IOPATH sr lcout 558.963:726.155:883.083 0:0:0 + +CELL LUT_MUX +IOPATH D0 O 77.2066:100.3:121.976 77.2066:100.3:121.976 +IOPATH D1 O 27.1532:35.275:42.8982 27.1532:35.275:42.8982 +IOPATH S O 318.641:413.95:503.408 318.641:413.95:503.408 + +CELL MUX4 +IOPATH I0I1I2I3S0S1 O 0:0:0 0:0:0 + +CELL Odrv4 +IOPATH I O 327.147:425:516.846 346.775:450.5:547.857 + +CELL Odrv12 +IOPATH I O 458.005:595:723.585 503.806:654.5:795.943 + +CELL PLL40 +IOPATH PLLIN PLLOUTCORE 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTCORE 1007.61:1309:1591.89 1053.41:1368.5:1664.24 +IOPATH PLLIN PLLOUTCORE 1550.67:2014.5:2449.85 1576.85:2048.5:2491.2 +IOPATH PLLIN PLLOUTCORE -1.13788e+308:-1.47823e+308:-inf -1.13788e+308:-1.47823e+308:-inf +IOPATH PLLIN PLLOUTGLOBAL 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTGLOBAL 1374.02:1785:2170.75 1288.96:1674.5:2036.37 +IOPATH PLLIN PLLOUTGLOBAL 1923.62:2499:3039.05 1812.39:2354.5:2863.33 +IOPATH PLLIN PLLOUTGLOBAL -1.13788e+308:-1.47823e+308:-inf -1.13788e+308:-1.47823e+308:-inf + +CELL PLL40_2 +IOPATH PLLIN PLLOUTCOREA 438.376:569.5:692.574 353.318:459:558.194 +IOPATH PLLIN PLLOUTCOREA 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTCOREB 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTCOREB 1439.44:1870:2274.12 1452.53:1887:2294.8 +IOPATH PLLIN PLLOUTGLOBALA 556.149:722.5:878.638 588.864:765:930.323 +IOPATH PLLIN PLLOUTGLOBALA 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTGLOBALB 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTGLOBALB 1576.85:2048.5:2491.2 1674.99:2176:2646.25 + +CELL PLL40_2_FEEDBACK_PATH_DELAY +IOPATH PLLIN PLLOUTCOREA 438.376:569.5:692.574 353.318:459:558.194 +IOPATH PLLIN PLLOUTCOREB 942.182:1224:1488.52 994.525:1292:1571.21 +IOPATH PLLIN PLLOUTGLOBALA 556.149:722.5:878.638 588.864:765:930.323 +IOPATH PLLIN PLLOUTGLOBALB 1079.58:1402.5:1705.59 1216.99:1581:1922.67 + +CELL PLL40_2_FEEDBACK_PATH_EXTERNAL +IOPATH PLLIN PLLOUTCOREA 438.376:569.5:692.574 353.318:459:558.194 +IOPATH PLLIN PLLOUTCOREB -248.631:-323:-392.803 -189.745:-246.5:-299.771 +IOPATH PLLIN PLLOUTGLOBALA 556.149:722.5:878.638 588.864:765:930.323 +IOPATH PLLIN PLLOUTGLOBALB -248.631:-323:-392.803 -189.745:-246.5:-299.771 + +CELL PLL40_2_FEEDBACK_PATH_PHASE_AND_DELAY +IOPATH PLLIN PLLOUTCOREA 438.376:569.5:692.574 353.318:459:558.194 +IOPATH PLLIN PLLOUTCOREB 503.806:654.5:795.943 536.52:697:847.628 +IOPATH PLLIN PLLOUTGLOBALA 556.149:722.5:878.638 588.864:765:930.323 +IOPATH PLLIN PLLOUTGLOBALB 647.75:841.5:1023.36 758.98:986:1199.08 + +CELL PLL40_2_FEEDBACK_PATH_SIMPLE +IOPATH PLLIN PLLOUTCOREA 438.376:569.5:692.574 353.318:459:558.194 +IOPATH PLLIN PLLOUTCOREB 1439.44:1870:2274.12 1452.53:1887:2294.8 +IOPATH PLLIN PLLOUTGLOBALA 556.149:722.5:878.638 588.864:765:930.323 +IOPATH PLLIN PLLOUTGLOBALB 1576.85:2048.5:2491.2 1674.99:2176:2646.25 + +CELL PLL40_2F +IOPATH PLLIN PLLOUTCOREA 471.091:612:744.258 497.263:646:785.606 +IOPATH PLLIN PLLOUTCOREA 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTCOREA 1007.61:1309:1591.89 1053.41:1368.5:1664.24 +IOPATH PLLIN PLLOUTCOREA 2977.03:3867.5:4703.3 2983.58:3876:4713.64 +IOPATH PLLIN PLLOUTCOREB 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTCOREB 1439.44:1870:2274.12 1452.53:1887:2294.8 +IOPATH PLLIN PLLOUTCOREB -529.977:-688.5:-837.291 -477.634:-620.5:-754.595 +IOPATH PLLIN PLLOUTCOREB -870.21:-1130.5:-1374.81 -837.495:-1088:-1323.13 +IOPATH PLLIN PLLOUTGLOBALA 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTGLOBALA 844.038:1096.5:1333.46 732.808:952:1157.74 +IOPATH PLLIN PLLOUTGLOBALA 1374.02:1785:2170.75 1288.96:1674.5:2036.37 +IOPATH PLLIN PLLOUTGLOBALA 3343.44:4343.5:5282.17 3219.12:4182:5085.77 +IOPATH PLLIN PLLOUTGLOBALB 654.293:850:1033.69 654.293:850:1033.69 +IOPATH PLLIN PLLOUTGLOBALB 1576.85:2048.5:2491.2 1674.99:2176:2646.25 +IOPATH PLLIN PLLOUTGLOBALB -392.576:-510:-620.215 -255.174:-331.5:-403.14 +IOPATH PLLIN PLLOUTGLOBALB -726.265:-943.5:-1147.4 -615.035:-799:-971.671 + +CELL PLL40_2F_FEEDBACK_PATH_DELAY +IOPATH PLLIN PLLOUTCOREA 1007.61:1309:1591.89 1053.41:1368.5:1664.24 +IOPATH PLLIN PLLOUTCOREB 942.182:1224:1488.52 994.525:1292:1571.21 +IOPATH PLLIN PLLOUTGLOBALA 1374.02:1785:2170.75 1288.96:1674.5:2036.37 +IOPATH PLLIN PLLOUTGLOBALB 1079.58:1402.5:1705.59 1216.99:1581:1922.67 + +CELL PLL40_2F_FEEDBACK_PATH_EXTERNAL +IOPATH PLLIN PLLOUTCOREA -248.631:-323:-392.803 -189.745:-246.5:-299.771 +IOPATH PLLIN PLLOUTCOREB -248.631:-323:-392.803 -189.745:-246.5:-299.771 +IOPATH PLLIN PLLOUTGLOBALA -248.631:-323:-392.803 -189.745:-246.5:-299.771 +IOPATH PLLIN PLLOUTGLOBALB -248.631:-323:-392.803 -189.745:-246.5:-299.771 + +CELL PLL40_2F_FEEDBACK_PATH_PHASE_AND_DELAY +IOPATH PLLIN PLLOUTCOREA 569.235:739.5:899.312 595.407:773.5:940.66 +IOPATH PLLIN PLLOUTCOREB 503.806:654.5:795.943 536.52:697:847.628 +IOPATH PLLIN PLLOUTGLOBALA 942.182:1224:1488.52 830.952:1079.5:1312.79 +IOPATH PLLIN PLLOUTGLOBALB 647.75:841.5:1023.36 758.98:986:1199.08 + +CELL PLL40_2F_FEEDBACK_PATH_SIMPLE +IOPATH PLLIN PLLOUTCOREA 1504.87:1955:2377.49 1511.42:1963.5:2387.83 +IOPATH PLLIN PLLOUTCOREB 1439.44:1870:2274.12 1452.53:1887:2294.8 +IOPATH PLLIN PLLOUTGLOBALA 1871.28:2431:2956.36 1746.96:2269.5:2759.96 +IOPATH PLLIN PLLOUTGLOBALB 1576.85:2048.5:2491.2 1674.99:2176:2646.25 + +CELL PLL40_FEEDBACK_PATH_DELAY +IOPATH PLLIN PLLOUTCORE 1007.61:1309:1591.89 1053.41:1368.5:1664.24 +IOPATH PLLIN PLLOUTGLOBAL 1374.02:1785:2170.75 1288.96:1674.5:2036.37 + +CELL PLL40_FEEDBACK_PATH_EXTERNAL +IOPATH PLLIN PLLOUTCORE -248.631:-323:-392.803 -189.745:-246.5:-299.771 +IOPATH PLLIN PLLOUTGLOBAL -248.631:-323:-392.803 -189.745:-246.5:-299.771 + +CELL PLL40_FEEDBACK_PATH_PHASE_AND_DELAY +IOPATH PLLIN PLLOUTCORE 569.235:739.5:899.312 595.407:773.5:940.66 +IOPATH PLLIN PLLOUTGLOBAL 942.182:1224:1488.52 830.952:1079.5:1312.79 + +CELL PLL40_FEEDBACK_PATH_SIMPLE +IOPATH PLLIN PLLOUTCORE 1504.87:1955:2377.49 1511.42:1963.5:2387.83 +IOPATH PLLIN PLLOUTGLOBAL 1871.28:2431:2956.36 1746.96:2269.5:2759.96 + +CELL PRE_IO +HOLD negedge:CLOCKENABLE posedge:INPUTCLK 0:0:0 +HOLD negedge:CLOCKENABLE posedge:OUTPUTCLK 0:0:0 +HOLD negedge:DOUT0 posedge:OUTPUTCLK 0:0:0 +HOLD negedge:DOUT1 negedge:OUTPUTCLK 0:0:0 +HOLD negedge:OUTPUTENABLE posedge:OUTPUTCLK 0:0:0 +HOLD negedge:PADIN negedge:INPUTCLK 0:0:0 +HOLD negedge:PADIN posedge:INPUTCLK 0:0:0 +HOLD posedge:CLOCKENABLE posedge:INPUTCLK 0:0:0 +HOLD posedge:CLOCKENABLE posedge:OUTPUTCLK 0:0:0 +HOLD posedge:DOUT0 posedge:OUTPUTCLK 0:0:0 +HOLD posedge:DOUT1 negedge:OUTPUTCLK 0:0:0 +HOLD posedge:OUTPUTENABLE posedge:OUTPUTCLK 0:0:0 +HOLD posedge:PADIN negedge:INPUTCLK 0:0:0 +HOLD posedge:PADIN posedge:INPUTCLK 0:0:0 +SETUP negedge:CLOCKENABLE posedge:INPUTCLK 65.4293:85:103.369 +SETUP negedge:CLOCKENABLE posedge:OUTPUTCLK 65.4293:85:103.369 +SETUP negedge:DOUT0 posedge:OUTPUTCLK 65.4293:85:103.369 +SETUP negedge:DOUT1 negedge:OUTPUTCLK 65.4293:85:103.369 +SETUP negedge:OUTPUTENABLE posedge:OUTPUTCLK 65.4293:85:103.369 +SETUP negedge:PADIN negedge:INPUTCLK 1527.97:1985:2413.98 +SETUP negedge:PADIN posedge:INPUTCLK 1527.97:1985:2413.98 +SETUP posedge:CLOCKENABLE posedge:INPUTCLK 71.9722:93.5:113.706 +SETUP posedge:CLOCKENABLE posedge:OUTPUTCLK 71.9722:93.5:113.706 +SETUP posedge:DOUT0 posedge:OUTPUTCLK 71.9722:93.5:113.706 +SETUP posedge:DOUT1 negedge:OUTPUTCLK 71.9722:93.5:113.706 +SETUP posedge:OUTPUTENABLE posedge:OUTPUTCLK 71.9722:93.5:113.706 +SETUP posedge:PADIN negedge:INPUTCLK 1534.51:1993.5:2424.32 +SETUP posedge:PADIN posedge:INPUTCLK 1534.51:1993.5:2424.32 +IOPATH DOUT0 PADOUT 1871.28:2431:2956.36 2087.19:2711.5:3297.48 +IOPATH LATCHINPUTVALUE DIN0 320.604:416.5:506.509 346.775:450.5:547.857 +IOPATH negedge:INPUTCLK DIN1 130.859:170:206.738 130.859:170:206.738 +IOPATH negedge:OUTPUTCLK PADOUT 104.687:136:165.391 130.859:170:206.738 +IOPATH OUTPUTENABLE PADOEN 163.573:212.5:258.423 196.288:255:310.108 +IOPATH PADIN DIN0 575.778:748:909.649 431.833:561:682.237 +IOPATH posedge:INPUTCLK DIN0 130.859:170:206.738 130.859:170:206.738 +IOPATH posedge:OUTPUTCLK PADOEN 104.687:136:165.391 130.859:170:206.738 +IOPATH posedge:OUTPUTCLK PADOUT 104.687:136:165.391 130.859:170:206.738 + +CELL PRE_IO_GBUF +IOPATH PADSIGNALTOGLOBALBUFFER GLOBALBUFFEROUTPUT 1313.95:1706.97:2075.86 1170.01:1519.97:1848.45 + +CELL PRE_IO_PIN_TYPE +HOLD negedge:CLOCKENABLE posedge:INPUTCLK 0:0:0 +HOLD negedge:CLOCKENABLE posedge:OUTPUTCLK 0:0:0 +HOLD negedge:DOUT0 posedge:OUTPUTCLK 0:0:0 +HOLD negedge:DOUT1 negedge:OUTPUTCLK 0:0:0 +HOLD negedge:OUTPUTENABLE posedge:OUTPUTCLK 0:0:0 +HOLD negedge:PADIN negedge:INPUTCLK 0:0:0 +HOLD negedge:PADIN posedge:INPUTCLK 0:0:0 +HOLD posedge:CLOCKENABLE posedge:INPUTCLK 0:0:0 +HOLD posedge:CLOCKENABLE posedge:OUTPUTCLK 0:0:0 +HOLD posedge:DOUT0 posedge:OUTPUTCLK 0:0:0 +HOLD posedge:DOUT1 negedge:OUTPUTCLK 0:0:0 +HOLD posedge:OUTPUTENABLE posedge:OUTPUTCLK 0:0:0 +HOLD posedge:PADIN negedge:INPUTCLK 0:0:0 +HOLD posedge:PADIN posedge:INPUTCLK 0:0:0 +SETUP negedge:CLOCKENABLE posedge:INPUTCLK 65.4293:85:103.369 +SETUP negedge:CLOCKENABLE posedge:OUTPUTCLK 65.4293:85:103.369 +SETUP negedge:DOUT0 posedge:OUTPUTCLK 65.4293:85:103.369 +SETUP negedge:DOUT1 negedge:OUTPUTCLK 65.4293:85:103.369 +SETUP negedge:OUTPUTENABLE posedge:OUTPUTCLK 65.4293:85:103.369 +SETUP negedge:PADIN negedge:INPUTCLK 1527.97:1985:2413.98 +SETUP negedge:PADIN posedge:INPUTCLK 1527.97:1985:2413.98 +SETUP posedge:CLOCKENABLE posedge:INPUTCLK 71.9722:93.5:113.706 +SETUP posedge:CLOCKENABLE posedge:OUTPUTCLK 71.9722:93.5:113.706 +SETUP posedge:DOUT0 posedge:OUTPUTCLK 71.9722:93.5:113.706 +SETUP posedge:DOUT1 negedge:OUTPUTCLK 71.9722:93.5:113.706 +SETUP posedge:OUTPUTENABLE posedge:OUTPUTCLK 71.9722:93.5:113.706 +SETUP posedge:PADIN negedge:INPUTCLK 1534.51:1993.5:2424.32 +SETUP posedge:PADIN posedge:INPUTCLK 1534.51:1993.5:2424.32 +IOPATH DOUT0 PADOUT 1871.28:2431:2956.36 2087.19:2711.5:3297.48 +IOPATH LATCHINPUTVALUE DIN0 320.604:416.5:506.509 346.775:450.5:547.857 +IOPATH negedge:INPUTCLK DIN1 130.859:170:206.738 130.859:170:206.738 +IOPATH negedge:OUTPUTCLK PADOUT 104.687:136:165.391 130.859:170:206.738 +IOPATH OUTPUTENABLE PADOEN 163.573:212.5:258.423 196.288:255:310.108 +IOPATH PADIN DIN0 575.778:748:909.649 431.833:561:682.237 +IOPATH posedge:INPUTCLK DIN0 130.859:170:206.738 130.859:170:206.738 +IOPATH posedge:OUTPUTCLK PADOEN 104.687:136:165.391 130.859:170:206.738 +IOPATH posedge:OUTPUTCLK PADOUT 104.687:136:165.391 130.859:170:206.738 + +CELL SB_PLL40_2F_CORE +IOPATH REFERENCECLK PLLOUTCOREA 229.003:297.5:361.792 242.088:314.5:382.466 +IOPATH REFERENCECLK PLLOUTCOREA 621.578:807.5:982.008 634.664:824.5:1002.68 +IOPATH REFERENCECLK PLLOUTCOREA 916.01:1190:1447.17 929.096:1207:1467.84 +IOPATH REFERENCECLK PLLOUTCOREA 2689.14:3493.5:4248.47 2662.97:3459.5:4207.13 +IOPATH REFERENCECLK PLLOUTCOREA -1.13788e+308:-1.47823e+308:-inf -1.13788e+308:-1.47823e+308:-inf +IOPATH REFERENCECLK PLLOUTCOREB 1249.7:1623.5:1974.35 1230.07:1598:1943.34 +IOPATH REFERENCECLK PLLOUTCOREB -1.13788e+308:-1.47823e+308:-inf -1.13788e+308:-1.47823e+308:-inf +IOPATH REFERENCECLK PLLOUTCOREB -32.7147:-42.5:-51.6846 -13.0859:-17:-20.6738 +IOPATH REFERENCECLK PLLOUTCOREB -621.578:-807.5:-982.008 -601.95:-782:-950.997 +IOPATH REFERENCECLK PLLOUTCOREB -719.722:-935:-1137.06 -700.094:-909.5:-1106.05 +IOPATH REFERENCECLK PLLOUTGLOBALA 595.407:773.5:940.66 477.634:620.5:754.595 +IOPATH REFERENCECLK PLLOUTGLOBALA 987.983:1283.5:1560.88 870.21:1130.5:1374.81 +IOPATH REFERENCECLK PLLOUTGLOBALA 1282.41:1666:2026.04 1164.64:1513:1839.97 +IOPATH REFERENCECLK PLLOUTGLOBALA 3055.55:3969.5:4827.34 2898.52:3765.5:4579.26 +IOPATH REFERENCECLK PLLOUTGLOBALA -1.13788e+308:-1.47823e+308:-inf -1.13788e+308:-1.47823e+308:-inf +IOPATH REFERENCECLK PLLOUTGLOBALB 104.687:136:165.391 209.374:272:330.781 +IOPATH REFERENCECLK PLLOUTGLOBALB 1387.1:1802:2191.43 1452.53:1887:2294.8 +IOPATH REFERENCECLK PLLOUTGLOBALB -1.13788e+308:-1.47823e+308:-inf -1.13788e+308:-1.47823e+308:-inf +IOPATH REFERENCECLK PLLOUTGLOBALB -484.177:-629:-764.932 -379.49:-493:-599.541 +IOPATH REFERENCECLK PLLOUTGLOBALB -582.321:-756.5:-919.986 -477.634:-620.5:-754.595 + +CELL SB_PLL40_CORE +IOPATH REFERENCECLK PLLOUTCORE 817.866:1062.5:1292.12 830.952:1079.5:1312.79 +IOPATH REFERENCECLK PLLOUTCORE 3919.22:5091.5:6191.82 3893.04:5057.5:6150.47 +IOPATH REFERENCECLK PLLOUTGLOBAL 1184.27:1538.5:1870.98 1066.5:1385.5:1684.92 +IOPATH REFERENCECLK PLLOUTGLOBAL 4285.62:5567.5:6770.68 4128.59:5363.5:6522.6 + +CELL SB_RAM40_4K +HOLD negedge:MASK[0] posedge:WCLK 0:0:0 +HOLD negedge:MASK[1] posedge:WCLK 0:0:0 +HOLD negedge:MASK[2] posedge:WCLK 0:0:0 +HOLD negedge:MASK[3] posedge:WCLK 0:0:0 +HOLD negedge:MASK[4] posedge:WCLK 0:0:0 +HOLD negedge:MASK[5] posedge:WCLK 0:0:0 +HOLD negedge:MASK[6] posedge:WCLK 0:0:0 +HOLD negedge:MASK[7] posedge:WCLK 0:0:0 +HOLD negedge:MASK[8] posedge:WCLK 0:0:0 +HOLD negedge:MASK[9] posedge:WCLK 0:0:0 +HOLD negedge:MASK[10] posedge:WCLK 0:0:0 +HOLD negedge:MASK[11] posedge:WCLK 0:0:0 +HOLD negedge:MASK[12] posedge:WCLK 0:0:0 +HOLD negedge:MASK[13] posedge:WCLK 0:0:0 +HOLD negedge:MASK[14] posedge:WCLK 0:0:0 +HOLD negedge:MASK[15] posedge:WCLK 0:0:0 +HOLD negedge:RADDR[0] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[1] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[2] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[3] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[4] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[5] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[6] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[7] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[8] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[9] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RADDR[10] posedge:RCLK 52.3434:68:82.6954 +HOLD negedge:RCLKE posedge:RCLK 49.072:63.75:77.5269 +HOLD negedge:RE posedge:RCLK 78.5152:102:124.043 +HOLD negedge:WADDR[0] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[1] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[2] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[3] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[4] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[5] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[6] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[7] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[8] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[9] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WADDR[10] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WCLKE posedge:WCLK 25.5174:33.15:40.314 +HOLD negedge:WDATA[0] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[1] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[2] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[3] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[4] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[5] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[6] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[7] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[8] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[9] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[10] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[11] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[12] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[13] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[14] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WDATA[15] posedge:WCLK 32.7147:42.5:51.6846 +HOLD negedge:WE posedge:WCLK 45.8005:59.5:72.3585 +HOLD posedge:MASK[0] posedge:WCLK 0:0:0 +HOLD posedge:MASK[1] posedge:WCLK 0:0:0 +HOLD posedge:MASK[2] posedge:WCLK 0:0:0 +HOLD posedge:MASK[3] posedge:WCLK 0:0:0 +HOLD posedge:MASK[4] posedge:WCLK 0:0:0 +HOLD posedge:MASK[5] posedge:WCLK 0:0:0 +HOLD posedge:MASK[6] posedge:WCLK 0:0:0 +HOLD posedge:MASK[7] posedge:WCLK 0:0:0 +HOLD posedge:MASK[8] posedge:WCLK 0:0:0 +HOLD posedge:MASK[9] posedge:WCLK 0:0:0 +HOLD posedge:MASK[10] posedge:WCLK 0:0:0 +HOLD posedge:MASK[11] posedge:WCLK 0:0:0 +HOLD posedge:MASK[12] posedge:WCLK 0:0:0 +HOLD posedge:MASK[13] posedge:WCLK 0:0:0 +HOLD posedge:MASK[14] posedge:WCLK 0:0:0 +HOLD posedge:MASK[15] posedge:WCLK 0:0:0 +HOLD posedge:RADDR[0] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[1] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[2] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[3] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[4] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[5] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[6] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[7] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[8] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[9] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RADDR[10] posedge:RCLK 52.3434:68:82.6954 +HOLD posedge:RCLKE posedge:RCLK 49.072:63.75:77.5269 +HOLD posedge:RE posedge:RCLK 78.5152:102:124.043 +HOLD posedge:WADDR[0] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[1] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[2] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[3] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[4] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[5] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[6] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[7] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[8] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[9] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WADDR[10] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WCLKE posedge:WCLK 25.5174:33.15:40.314 +HOLD posedge:WDATA[0] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[1] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[2] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[3] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[4] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[5] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[6] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[7] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[8] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[9] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[10] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[11] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[12] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[13] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[14] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WDATA[15] posedge:WCLK 32.7147:42.5:51.6846 +HOLD posedge:WE posedge:WCLK 45.8005:59.5:72.3585 +SETUP negedge:MASK[0] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[1] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[2] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[3] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[4] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[5] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[6] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[7] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[8] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[9] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[10] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[11] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[12] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[13] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[14] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:MASK[15] posedge:WCLK 255.174:331.5:403.14 +SETUP negedge:RADDR[0] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[1] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[2] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[3] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[4] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[5] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[6] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[7] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[8] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[9] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RADDR[10] posedge:RCLK 189.745:246.5:299.771 +SETUP negedge:RCLKE posedge:RCLK 248.631:323:392.803 +SETUP negedge:RE posedge:RCLK 91.601:119:144.717 +SETUP negedge:WADDR[0] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[1] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[2] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[3] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[4] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[5] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[6] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[7] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[8] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[9] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WADDR[10] posedge:WCLK 209.374:272:330.781 +SETUP negedge:WCLKE posedge:WCLK 248.631:323:392.803 +SETUP negedge:WDATA[0] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[1] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[2] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[3] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[4] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[5] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[6] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[7] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[8] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[9] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[10] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[11] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[12] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[13] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[14] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WDATA[15] posedge:WCLK 150.487:195.5:237.749 +SETUP negedge:WE posedge:WCLK 124.316:161.5:196.402 +SETUP posedge:MASK[0] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[1] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[2] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[3] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[4] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[5] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[6] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[7] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[8] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[9] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[10] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[11] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[12] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[13] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[14] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:MASK[15] posedge:WCLK 255.174:331.5:403.14 +SETUP posedge:RADDR[0] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[1] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[2] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[3] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[4] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[5] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[6] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[7] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[8] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[9] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RADDR[10] posedge:RCLK 189.745:246.5:299.771 +SETUP posedge:RCLKE posedge:RCLK 248.631:323:392.803 +SETUP posedge:RE posedge:RCLK 91.601:119:144.717 +SETUP posedge:WADDR[0] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[1] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[2] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[3] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[4] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[5] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[6] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[7] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[8] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[9] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WADDR[10] posedge:WCLK 209.374:272:330.781 +SETUP posedge:WCLKE posedge:WCLK 248.631:323:392.803 +SETUP posedge:WDATA[0] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[1] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[2] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[3] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[4] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[5] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[6] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[7] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[8] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[9] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[10] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[11] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[12] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[13] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[14] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WDATA[15] posedge:WCLK 150.487:195.5:237.749 +SETUP posedge:WE posedge:WCLK 124.316:161.5:196.402 +IOPATH posedge:RCLK RDATA[0] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[1] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[2] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[3] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[4] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[5] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[6] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[7] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[8] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[9] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[10] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[11] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[12] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[13] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[14] 2002.14:2601:3163.1 2002.14:2601:3163.1 +IOPATH posedge:RCLK RDATA[15] 2002.14:2601:3163.1 2002.14:2601:3163.1 + +CELL Sp12to4 +IOPATH I O 399.119:518.5:630.552 418.748:544:661.563 + +CELL Span4Mux_h0 +IOPATH I O 137.402:178.5:217.075 130.859:170:206.738 + +CELL Span4Mux_h1 +IOPATH I O 163.573:212.5:258.423 157.03:204:248.086 + +CELL Span4Mux_h2 +IOPATH I O 189.745:246.5:299.771 189.745:246.5:299.771 + +CELL Span4Mux_h3 +IOPATH I O 215.917:280.5:341.118 215.917:280.5:341.118 + +CELL Span4Mux_h4 +IOPATH I O 281.346:365.5:444.488 294.432:382.5:465.161 + +CELL Span4Mux_v0 +IOPATH I O 189.745:246.5:299.771 176.659:229.5:279.097 + +CELL Span4Mux_v1 +IOPATH I O 189.745:246.5:299.771 183.202:238:289.434 + +CELL Span4Mux_v2 +IOPATH I O 235.546:306:372.129 235.546:306:372.129 + +CELL Span4Mux_v3 +IOPATH I O 294.432:382.5:465.161 314.061:408:496.172 + +CELL Span4Mux_v4 +IOPATH I O 327.147:425:516.846 346.775:450.5:547.857 + +CELL Span12Mux_h0 +IOPATH I O 130.859:170:206.738 137.402:178.5:217.075 + +CELL Span12Mux_h1 +IOPATH I O 124.316:161.5:196.402 124.316:161.5:196.402 + +CELL Span12Mux_h2 +IOPATH I O 150.487:195.5:237.749 157.03:204:248.086 + +CELL Span12Mux_h3 +IOPATH I O 157.03:204:248.086 170.116:221:268.76 + +CELL Span12Mux_h4 +IOPATH I O 183.202:238:289.434 202.831:263.5:320.445 + +CELL Span12Mux_h5 +IOPATH I O 215.917:280.5:341.118 242.088:314.5:382.466 + +CELL Span12Mux_h6 +IOPATH I O 235.546:306:372.129 261.717:340:413.477 + +CELL Span12Mux_h7 +IOPATH I O 268.26:348.5:423.814 300.975:391:475.498 + +CELL Span12Mux_h8 +IOPATH I O 320.604:416.5:506.509 359.861:467.5:568.531 + +CELL Span12Mux_h9 +IOPATH I O 366.404:476:578.868 405.662:527:640.889 + +CELL Span12Mux_h10 +IOPATH I O 399.119:518.5:630.552 438.376:569.5:692.574 + +CELL Span12Mux_h11 +IOPATH I O 438.376:569.5:692.574 490.72:637.5:775.269 + +CELL Span12Mux_h12 +IOPATH I O 458.005:595:723.585 503.806:654.5:795.943 + +CELL Span12Mux_v0 +IOPATH I O 91.601:119:144.717 98.144:127.5:155.054 + +CELL Span12Mux_v1 +IOPATH I O 98.144:127.5:155.054 98.144:127.5:155.054 + +CELL Span12Mux_v2 +IOPATH I O 130.859:170:206.738 143.944:187:227.412 + +CELL Span12Mux_v3 +IOPATH I O 137.402:178.5:217.075 157.03:204:248.086 + +CELL Span12Mux_v4 +IOPATH I O 170.116:221:268.76 196.288:255:310.108 + +CELL Span12Mux_v5 +IOPATH I O 222.46:289:351.455 248.631:323:392.803 + +CELL Span12Mux_v6 +IOPATH I O 242.088:314.5:382.466 268.26:348.5:423.814 + +CELL Span12Mux_v7 +IOPATH I O 261.717:340:413.477 294.432:382.5:465.161 + +CELL Span12Mux_v8 +IOPATH I O 333.689:433.5:527.183 366.404:476:578.868 + +CELL Span12Mux_v9 +IOPATH I O 353.318:459:558.194 392.576:510:620.215 + +CELL Span12Mux_v10 +IOPATH I O 366.404:476:578.868 405.662:527:640.889 + +CELL Span12Mux_v11 +IOPATH I O 386.033:501.5:609.878 425.29:552.5:671.9 + +CELL Span12Mux_v12 +IOPATH I O 458.005:595:723.585 503.806:654.5:795.943 + +CELL SRMux +IOPATH I O 431.833:561:682.237 333.689:433.5:527.183 + +CELL sync_clk_enable +IOPATH D Q 0:0:0 0:0:0 +IOPATH NC Q 0:0:0 0:0:0 + +CELL TRIBUF +IOPATH D PAD 0:0:0 0:0:0 +IOPATH E PAD 0:0:0 0:0:0 + |