aboutsummaryrefslogtreecommitdiffstats
path: root/common/nextpnr.h
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-09-19 20:15:42 +0100
committerGitHub <noreply@github.com>2019-09-19 20:15:42 +0100
commitcb71b488ecaf34ea2d55bb2bfe5b1b6ebfd06a6e (patch)
tree51512791d33754c31145182976c4dd8478591d99 /common/nextpnr.h
parentf8b3c13a538501369c13ca4053371c3d8ead32ae (diff)
parent6bb098b4761ba6d5fbbda07b3dcb88356ece6ce1 (diff)
downloadnextpnr-cb71b488ecaf34ea2d55bb2bfe5b1b6ebfd06a6e.tar.gz
nextpnr-cb71b488ecaf34ea2d55bb2bfe5b1b6ebfd06a6e.tar.bz2
nextpnr-cb71b488ecaf34ea2d55bb2bfe5b1b6ebfd06a6e.zip
Merge pull request #332 from YosysHQ/dave/python-refactor
Improving Python API and adding docs for it
Diffstat (limited to 'common/nextpnr.h')
-rw-r--r--common/nextpnr.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/common/nextpnr.h b/common/nextpnr.h
index 4f9f7f23..bae828f6 100644
--- a/common/nextpnr.h
+++ b/common/nextpnr.h
@@ -445,6 +445,15 @@ struct CellInfo : ArchCellInfo
Region *region = nullptr;
TimingConstrObjectId tmg_id;
+
+ void addInput(IdString name);
+ void addOutput(IdString name);
+ void addInout(IdString name);
+
+ void setParam(IdString name, Property value);
+ void unsetParam(IdString name);
+ void setAttr(IdString name, Property value);
+ void unsetAttr(IdString name);
};
enum TimingPortClass
@@ -741,7 +750,10 @@ struct BaseCtx
TimingConstrObjectId timingCellObject(CellInfo *cell);
TimingConstrObjectId timingPortObject(CellInfo *cell, IdString port);
- NetInfo *getNetByAlias(IdString alias) const { return nets.at(net_aliases.at(alias)).get(); }
+ NetInfo *getNetByAlias(IdString alias) const
+ {
+ return nets.count(alias) ? nets.at(alias).get() : nets.at(net_aliases.at(alias)).get();
+ }
void addConstraint(std::unique_ptr<TimingConstraint> constr);
void removeConstraint(IdString constrName);
@@ -752,6 +764,16 @@ struct BaseCtx
void addBelToRegion(IdString name, BelId bel);
void constrainCellToRegion(IdString cell, IdString region_name);
+ // Helper functions for Python bindings
+ NetInfo *createNet(IdString name);
+ void connectPort(IdString net, IdString cell, IdString port);
+ void disconnectPort(IdString cell, IdString port);
+ void ripupNet(IdString name);
+ void lockNetRouting(IdString name);
+
+ CellInfo *createCell(IdString name, IdString type);
+ void copyBelPorts(IdString cell, BelId bel);
+
// Workaround for lack of wrappable constructors
DecalXY constructDecalXY(DecalId decal, float x, float y);