aboutsummaryrefslogtreecommitdiffstats
path: root/gowin/arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'gowin/arch.h')
-rw-r--r--gowin/arch.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/gowin/arch.h b/gowin/arch.h
index 602c3db5..aa751a4f 100644
--- a/gowin/arch.h
+++ b/gowin/arch.h
@@ -131,6 +131,13 @@ NPNR_PACKED_STRUCT(struct TimingClassPOD {
RelPtr<TimingGroupsPOD> groups;
});
+NPNR_PACKED_STRUCT(struct PartnumberPOD {
+ uint32_t name_id;
+ uint32_t package_id;
+ uint32_t device_id;
+ uint32_t speed_id;
+});
+
NPNR_PACKED_STRUCT(struct PackagePOD {
uint32_t name_id;
uint32_t num_pins;
@@ -153,6 +160,8 @@ NPNR_PACKED_STRUCT(struct DatabasePOD {
RelPtr<GlobalAliasPOD> aliases;
uint32_t num_speeds;
RelPtr<TimingClassPOD> speeds;
+ uint32_t num_partnumbers;
+ RelPtr<PartnumberPOD> partnumber_packages;
uint32_t num_variants;
RelPtr<VariantPOD> variants;
uint16_t num_constids;
@@ -162,10 +171,8 @@ NPNR_PACKED_STRUCT(struct DatabasePOD {
struct ArchArgs
{
- std::string device;
std::string family;
- std::string speed;
- std::string package;
+ std::string partnumber;
// y = mx + c relationship between distance and delay for interconnect
// delay estimates
double delayScale = 0.4, delayOffset = 0.4;
@@ -447,6 +454,8 @@ struct Arch : BaseArch<ArchRanges>
bool cellsCompatible(const CellInfo **cells, int count) const;
// start Z for the MUX2LUT5 bels
int const mux_0_z = 10;
+ // chip db version
+ unsigned int const chipdb_version = 1;
std::vector<IdString> cell_types;