diff options
Diffstat (limited to 'ice40/arch.h')
-rw-r--r-- | ice40/arch.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/ice40/arch.h b/ice40/arch.h index 10255dbe..ea29f4f1 100644 --- a/ice40/arch.h +++ b/ice40/arch.h @@ -244,15 +244,17 @@ NPNR_PACKED_STRUCT(struct ChipInfoPOD { RelPtr<RelPtr<char>> tile_wire_names; }); -#if defined(_MSC_VER) +#if defined(_MSC_VER) || defined(EXTERNAL_CHIPDB_ROOT) extern const char *chipdb_blob_384; extern const char *chipdb_blob_1k; extern const char *chipdb_blob_5k; +extern const char *chipdb_blob_u4k; extern const char *chipdb_blob_8k; #else extern const char chipdb_blob_384[]; extern const char chipdb_blob_1k[]; extern const char chipdb_blob_5k[]; +extern const char chipdb_blob_u4k[]; extern const char chipdb_blob_8k[]; #endif @@ -400,7 +402,8 @@ struct ArchArgs LP8K, HX1K, HX8K, - UP5K + UP5K, + U4K } type = NONE; std::string package; }; @@ -841,8 +844,11 @@ struct Arch : BaseCtx // ------------------------------------------------- // Get the delay through a cell from one port to another, returning false - // if no path exists + // if no path exists. This only considers combinational delays, as required by the Arch API bool getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort, DelayInfo &delay) const; + // getCellDelayInternal is similar to the above, but without false path checks and including clock to out delays + // for internal arch use only + bool getCellDelayInternal(const CellInfo *cell, IdString fromPort, IdString toPort, DelayInfo &delay) const; // Get the port class, also setting clockInfoCount to the number of TimingClockingInfos associated with a port TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const; // Get the TimingClockingInfo of a port @@ -891,6 +897,9 @@ struct Arch : BaseCtx IdString glb_net = getWireName(getBelPinWire(bel, id_GLOBAL_BUFFER_OUTPUT)); return std::stoi(std::string("") + glb_net.str(this).back()); } + + static const std::string defaultPlacer; + static const std::vector<std::string> availablePlacers; }; void ice40DelayFuzzerMain(Context *ctx); |