aboutsummaryrefslogtreecommitdiffstats
path: root/fpga_interchange/chipdb.h
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-04-19 09:43:49 +0100
committergatecat <gatecat@ds0.me>2021-04-19 10:16:26 +0100
commit872b3aa63d80798b55359d8671a46872814b24dd (patch)
tree082cc601ab57ed8820868b7a67e2c05b9db8b2f5 /fpga_interchange/chipdb.h
parent6fbefb8f1388dbb2bfe059624f7cb76ee9a81c5e (diff)
downloadnextpnr-872b3aa63d80798b55359d8671a46872814b24dd.tar.gz
nextpnr-872b3aa63d80798b55359d8671a46872814b24dd.tar.bz2
nextpnr-872b3aa63d80798b55359d8671a46872814b24dd.zip
interchange: Add default cell connections to chipdb
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'fpga_interchange/chipdb.h')
-rw-r--r--fpga_interchange/chipdb.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/fpga_interchange/chipdb.h b/fpga_interchange/chipdb.h
index 6c7b8c83..b66640e3 100644
--- a/fpga_interchange/chipdb.h
+++ b/fpga_interchange/chipdb.h
@@ -34,7 +34,7 @@ NEXTPNR_NAMESPACE_BEGIN
* kExpectedChipInfoVersion
*/
-static constexpr int32_t kExpectedChipInfoVersion = 6;
+static constexpr int32_t kExpectedChipInfoVersion = 7;
// Flattened site indexing.
//
@@ -255,6 +255,26 @@ NPNR_PACKED_STRUCT(struct PackagePOD {
RelSlice<PackagePinPOD> pins;
});
+enum CellPinValue
+{
+ // leave floating
+ PIN_VALUE_FLOAT = 0,
+ // connect to ground
+ PIN_VALUE_GND = 1,
+ // connect to vcc
+ PIN_VALUE_VCC = 2,
+};
+
+NPNR_PACKED_STRUCT(struct DefaultCellConnPOD {
+ int32_t pin_name; // constid
+ int32_t value; // CellPinValue
+});
+
+NPNR_PACKED_STRUCT(struct DefaultCellConnsPOD {
+ int32_t cell_type; // constid
+ RelSlice<DefaultCellConnPOD> pins;
+});
+
NPNR_PACKED_STRUCT(struct ConstantsPOD {
// Cell type and port for the GND and VCC global source.
int32_t gnd_cell_name; // constid
@@ -280,6 +300,9 @@ NPNR_PACKED_STRUCT(struct ConstantsPOD {
// If a choice is available, which constant net should be used?
// Can be ''/0 if either constant net are equivilent.
int32_t best_constant_net; // constid
+
+ // Default cell pin connections
+ RelSlice<DefaultCellConnsPOD> default_conns;
});
NPNR_PACKED_STRUCT(struct ChipInfoPOD {