diff options
Diffstat (limited to 'ecp5/arch.h')
-rw-r--r-- | ecp5/arch.h | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/ecp5/arch.h b/ecp5/arch.h index 9fb33c9b..938ca354 100644 --- a/ecp5/arch.h +++ b/ecp5/arch.h @@ -158,23 +158,21 @@ NPNR_PACKED_STRUCT(struct CellPropDelayPOD { int32_t max_delay; }); - NPNR_PACKED_STRUCT(struct CellSetupHoldPOD { - int32_t sig_port; - int32_t clock_port; - int32_t min_setup; - int32_t max_setup; - int32_t min_hold; - int32_t max_hold; + int32_t sig_port; + int32_t clock_port; + int32_t min_setup; + int32_t max_setup; + int32_t min_hold; + int32_t max_hold; }); - NPNR_PACKED_STRUCT(struct CellTimingPOD { - int32_t cell_type; - int32_t num_prop_delays; - int32_t num_setup_holds; - RelPtr<CellPropDelayPOD> prop_delays; - RelPtr<CellSetupHoldPOD> setup_holds; + int32_t cell_type; + int32_t num_prop_delays; + int32_t num_setup_holds; + RelPtr<CellPropDelayPOD> prop_delays; + RelPtr<CellSetupHoldPOD> setup_holds; }); NPNR_PACKED_STRUCT(struct PipDelayPOD { @@ -443,11 +441,11 @@ struct ArchArgs std::string package; enum SpeedGrade { - SPEED_6, + SPEED_6 = 0, SPEED_7, SPEED_8, SPEED_8_5G, - } speedGrade = SPEED_6; + } speed = SPEED_6; }; struct Arch : BaseCtx @@ -946,6 +944,10 @@ struct Arch : BaseCtx // Return true if a port is a net bool isGlobalNet(const NetInfo *net) const; + bool getDelayFromTimingDatabase(IdString tctype, IdString from, IdString to, DelayInfo &delay) const; + void getSetupHoldFromTimingDatabase(IdString tctype, IdString clock, IdString port, DelayInfo &setup, + DelayInfo &hold) const; + // ------------------------------------------------- // Placement validity checks bool isValidBelForCell(CellInfo *cell, BelId bel) const; |