From 3b0d1beabbaf7bb22136bf831191469836c38d33 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 29 May 2018 20:04:29 +0200 Subject: Add DelayInfo struct Signed-off-by: Clifford Wolf --- common/design.h | 2 +- dummy/chip.h | 10 +++++++++- ice40/chip.h | 12 ++++++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/common/design.h b/common/design.h index 1b45895e..edf7dba1 100644 --- a/common/design.h +++ b/common/design.h @@ -52,7 +52,7 @@ struct NetInfo dict attrs; // wire -> (uphill_wire, delay) - dict> wires; + dict> wires; }; enum PortType diff --git a/dummy/chip.h b/dummy/chip.h index 2b2bc613..cc5013df 100644 --- a/dummy/chip.h +++ b/dummy/chip.h @@ -22,6 +22,14 @@ #ifndef CHIP_H #define CHIP_H +struct DelayInfo +{ + float delay = 0; + + float raiseDelay() { return delay; } + float fallDelay() { return delay; } +}; + typedef IdString BelType; typedef IdString PortPin; @@ -111,7 +119,7 @@ struct WireRange struct WireDelay { WireId wire; - float delay; + DelayInfo delay; }; struct WireDelayIterator diff --git a/ice40/chip.h b/ice40/chip.h index 21f8a7dc..397e2bf3 100644 --- a/ice40/chip.h +++ b/ice40/chip.h @@ -22,6 +22,14 @@ #ifndef CHIP_H #define CHIP_H +struct DelayInfo +{ + float delay = 0; + + float raiseDelay() { return delay; } + float fallDelay() { return delay; } +}; + // ----------------------------------------------------------------------- enum BelType @@ -175,7 +183,7 @@ struct AllWiresRange struct WireDelay { WireId wire; - float delay; + DelayInfo delay; }; struct WireDelayIterator @@ -188,7 +196,7 @@ struct WireDelayIterator WireDelay operator*() const { WireDelay ret; ret.wire.index = ptr->wire_index; - ret.delay = ptr->delay; + ret.delay.delay = ptr->delay; return ret; } }; -- cgit v1.2.3