diff options
-rw-r--r-- | common/design.h | 2 | ||||
-rw-r--r-- | dummy/chip.h | 10 | ||||
-rw-r--r-- | 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<IdString, std::string> attrs; // wire -> (uphill_wire, delay) - dict<WireId, std::pair<WireId, float>> wires; + dict<WireId, std::pair<WireId, DelayInfo>> 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; } }; |