diff options
author | Eddie Hung <eddieh@ece.ubc.ca> | 2018-11-13 11:39:51 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-13 11:39:51 -0800 |
commit | 3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff (patch) | |
tree | 2772e8865a04c5da351643c90828c908a6f9f260 /docs/archapi.md | |
parent | d0ae4c77be109cae3d6cf3321691c70377c4d6d3 (diff) | |
parent | caca485cfff7f999a19e86e2f00187550b0c92f4 (diff) | |
download | nextpnr-3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff.tar.gz nextpnr-3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff.tar.bz2 nextpnr-3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff.zip |
Merge pull request #107 from YosysHQ/router_improve
Major rewrite of "router1"
Diffstat (limited to 'docs/archapi.md')
-rw-r--r-- | docs/archapi.md | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/docs/archapi.md b/docs/archapi.md index 73443c15..40eabd9d 100644 --- a/docs/archapi.md +++ b/docs/archapi.md @@ -30,15 +30,15 @@ delay_t maxDelay() const { return delay; } ### BelId -A type representing a bel name. `BelId()` must construct a unique null-value. Must provide `==` and `!=` operators and a specialization for `std::hash<BelId>`. +A type representing a bel name. `BelId()` must construct a unique null-value. Must provide `==`, `!=`, and `<` operators and a specialization for `std::hash<BelId>`. ### WireId -A type representing a wire name. `WireId()` must construct a unique null-value. Must provide `==` and `!=` operators and a specialization for `std::hash<WireId>`. +A type representing a wire name. `WireId()` must construct a unique null-value. Must provide `==`, `!=`, and `<` operators and a specialization for `std::hash<WireId>`. ### PipId -A type representing a pip name. `PipId()` must construct a unique null-value. Must provide `==` and `!=` operators and a specialization for `std::hash<PipId>`. +A type representing a pip name. `PipId()` must construct a unique null-value. Must provide `==`, `!=`, and `<` operators and a specialization for `std::hash<PipId>`. ### GroupId @@ -215,14 +215,15 @@ Return true if the wire is available, i.e. can be bound to a net. Return the net a wire is bound to. -### NetInfo \*getConflictingWireNet(WireId wire) const +### WireId getConflictingWireWire(WireId wire) const -If this returns a non-nullptr, then unbinding that net +If this returns a non-WireId(), then unbinding that wire will make the given wire available. -This returns nullptr if the wire is already available, -or if there is no single net that can be unbound to make this -wire available. +### NetInfo \*getConflictingWireNet(WireId wire) const + +If this returns a non-nullptr, then unbinding that entire net +will make the given wire available. ### DelayInfo getWireDelay(WireId wire) const @@ -282,18 +283,23 @@ This method must also update `NetInfo::wires`. Returns true if the given pip is available to be bound to a net. +Users must also check if the pip destination wire is available +with `checkWireAvail(getPipDstWire(pip))` before binding the +pip to a net. + ### NetInfo \*getBoundPipNet(PipId pip) const Return the net this pip is bound to. -### NetInfo \*getConflictingPipNet(PipId pip) const +### WireId getConflictingPipWire(PipId pip) const -Return the net that needs to be unbound in order to make this -pip available. +If this returns a non-WireId(), then unbinding that wire +will make the given pip available. + +### NetInfo \*getConflictingPipNet(PipId pip) const -This does not need to (but may) return the conflicting wire if the conflict is -limited to the conflicting wire being bound to the destination wire for this -pip. +If this returns a non-nullptr, then unbinding that entire net +will make the given pip available. ### const\_range\<PipId\> getPips() const |