From a6b2ca91e58c3de2dbd403647eeea4de2915522e Mon Sep 17 00:00:00 2001 From: David Shah Date: Fri, 26 Jan 2018 19:08:16 +0000 Subject: Working DSP timing analysis --- icetime/timings.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'icetime/timings.py') diff --git a/icetime/timings.py b/icetime/timings.py index 43d54ae..7ac2a7b 100644 --- a/icetime/timings.py +++ b/icetime/timings.py @@ -10,7 +10,7 @@ def timings_to_c(chip, f): print("{") in_cell = False - + last_cell = "" for line in f: fields = line.split() if len(fields) == 0: @@ -18,8 +18,14 @@ def timings_to_c(chip, f): if fields[0] == "CELL": if in_cell: + if last_cell.startswith("SB_MAC16"): + # DSPs have incomplete timing specification, as some paths + # don't mathematically exist - e.g. there is no path from + # A[1] to O[0] + print(" if (in_port != \"*clkedge*\" && out_port != \"*setup*\") return 0.0;") print(" }") print(" if (cell_type == \"%s\") {" % fields[1]) + last_cell = fields[1] in_cell = True if fields[0] == "SETUP": @@ -44,4 +50,3 @@ def timings_to_c(chip, f): for db in "lp384 lp1k lp8k hx1k hx8k up5k".split(): with open("../icefuzz/timings_%s.txt" % db, "r") as f: timings_to_c(db, f); - -- cgit v1.2.3