diff options
author | gatecat <gatecat@ds0.me> | 2021-02-10 11:54:54 +0000 |
---|---|---|
committer | gatecat <gatecat@ds0.me> | 2021-02-10 11:54:54 +0000 |
commit | 85bb108ba40f9573571de0a785f9fbc91c4e1dd0 (patch) | |
tree | 8f198b13a648057d21c8e839afea5c4463c6189b /docs | |
parent | 6bd3dba1e39780e52097533f7e89f823d7e72956 (diff) | |
download | nextpnr-85bb108ba40f9573571de0a785f9fbc91c4e1dd0.tar.gz nextpnr-85bb108ba40f9573571de0a785f9fbc91c4e1dd0.tar.bz2 nextpnr-85bb108ba40f9573571de0a785f9fbc91c4e1dd0.zip |
Add getBelPinsForCellPin to Arch API
This is a basic implementation, without considering "M of N"
arrangements (e.g. for LUT permuation where you only want to route to 1
out of 4/6 sinks) or using a type other than IdString to identify bel
pins.
But this is also enough to start working out where in nextpnr will break
due to removing the 1:1 cell:bel pin cardinality, as a next step.
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/archapi.md | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/docs/archapi.md b/docs/archapi.md index f6f184e0..2a38502c 100644 --- a/docs/archapi.md +++ b/docs/archapi.md @@ -13,6 +13,7 @@ The contents of `ArchRanges` is as follows: |`TileBelsRangeT` | `BelId` | |`BelAttrsRangeT` | std::pair<IdString, std::string> | |`BelPinsRangeT` | `IdString` | +|`CellBelPinRangeT` | `IdString` | |`AllWiresRangeT` | `WireId` | |`DownhillPipRangeT` | `PipId` | |`UphillPipRangeT` | `PipId` | @@ -244,6 +245,12 @@ Return the type (input/output/inout) of the given bel pin. Return a list of all pins on that bel. +### CellBelPinRangeT getBelPinsForCellPin(CellInfo *cell_info, IdString pin) const + +Return the list of bel pin names that a given cell pin should be routed to. In most cases there will be a single bel pin for each cell pin; and output pins must _always_ have only one bel pin associated with them. + +*BaseArch default: returns a one-element array containing `pin`* + Wire Methods ------------ |