aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/trellis_import.py
diff options
context:
space:
mode:
Diffstat (limited to 'ecp5/trellis_import.py')
-rwxr-xr-xecp5/trellis_import.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/ecp5/trellis_import.py b/ecp5/trellis_import.py
index d9892a28..31f136a2 100755
--- a/ecp5/trellis_import.py
+++ b/ecp5/trellis_import.py
@@ -185,16 +185,24 @@ def process_timing_data():
else:
assert False, entry["type"]
cells.append((celltype, delays, setupholds))
- pip_class_delays = [(50, 50, 0, 0)] # default: 50ps delay, 0ps fanout
+ pip_class_delays = []
+ for i in range(len(pip_class_to_idx)):
+ pip_class_delays.append((50, 50, 0, 0))
+
with open(timing_dbs.interconnect_db_path("ECP5", grade)) as f:
interconn_data = json.load(f)
for pipclass, pipdata in sorted(interconn_data.items()):
- pip_class_to_idx[pipclass] = len(pip_class_delays)
+
min_delay = pipdata["delay"][0]
max_delay = pipdata["delay"][2]
min_fanout = pipdata["fanout"][0]
max_fanout = pipdata["fanout"][2]
- pip_class_delays.append((min_delay, max_delay, min_fanout, max_fanout))
+ if grade == "6":
+ pip_class_to_idx[pipclass] = len(pip_class_delays)
+ pip_class_delays.append((min_delay, max_delay, min_fanout, max_fanout))
+ else:
+ if pipclass in pip_class_to_idx:
+ pip_class_delays[pip_class_to_idx[pipclass]] = (min_delay, max_delay, min_fanout, max_fanout)
speed_grade_cells[grade] = cells
speed_grade_pips[grade] = pip_class_delays