aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/arch_place.cc
Commit message (Collapse)AuthorAgeFilesLines
* ice40: Add debugs to isBelLocationValid for SB_IOSean Anderson2022-12-071-4/+22
| | | | | | | | | | | | | | | | | When there is a constraint conflict while placing IOs, the user gets an error message such as ERROR: Bel 'X0/Y27/io1' of type 'SB_IO' is not valid for cell 'my_pin' of type 'SB_IO' While this identifies the problematic cell, it does not explain why there is a problem. Add some verbose messages to allow users to determine where the problem is. This can result in something like Info: Net '$PACKER_VCC_NET' for cell 'my_pin' conflicts with net 'ce' for 'ce_pin' which provides something actionable. Signed-off-by: Sean Anderson <seanga2@gmail.com>
* api: add explain_invalid option to isBelLocationValidgatecat2022-12-071-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: Use IdString::in instead of || chainsgatecat2022-08-101-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* ice40: Fix accidental creation of empty portsgatecat2022-06-251-9/+9
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: Use constids instead of id("..")gatecat2022-02-161-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Fixing old emails and names in copyrightsgatecat2021-06-121-3/+3
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Remove isValidBelForCellgatecat2021-02-161-115/+94
| | | | | | | | | | | | | | | | | This Arch API dates from when we were first working out how to implement placement validity checking, and in practice is little used by the core parts of placer1/HeAP and the Arch implementation involves a lot of duplication with isBelLocationValid. In the short term; placement validity checking is better served by the combination of checkBelAvail and isValidBelForCellType before placement; followed by isBelLocationValid after placement (potentially after moving/swapping multiple cells). Longer term, removing this API makes things a bit cleaner for a new validity checking API. Signed-off-by: gatecat <gatecat@ds0.me>
* ice40: Use snake case for arch-specific functionsD. Shah2021-02-031-5/+5
| | | | | | | This makes the difference clearer between the general arch API that everyone must implement; and helper functions specific to one arch. Signed-off-by: D. Shah <dave@ds0.me>
* ice40: Implement IdStringList for all arch object namesD. Shah2021-02-021-1/+1
| | | | Signed-off-by: D. Shah <dave@ds0.me>
* ice40: Check for SB_IO shared wires conflicts in isValidBelForCellSylvain Munaut2019-04-171-0/+36
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* ice40: Add helper to know which global network is driven by a SB_GB BelSylvain Munaut2018-11-261-2/+1
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* ice40: Introduce the concept of forPadIn SB_GBSylvain Munaut2018-11-191-0/+2
| | | | | | | | | | | | | | Those are cells that are created mainly to handle the various sources a global network can be driven from other than a user net. When the flag is set, this means the global network usually driven by this BEL is in fact driven by something else and so that SB_GB BEL and matching global network can't be used. This is also what gets used to set the extra bits during bitstream generation. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* ice40: Fix BEL validity check for PLL vs SB_IOSylvain Munaut2018-11-191-21/+20
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* clangformatDavid Shah2018-09-301-2/+2
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ice40: Validity check for LVDS IODavid Shah2018-09-241-0/+21
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ice40: Remove obsolete belType memberDavid Shah2018-09-241-1/+1
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* Rework Arch::logicCellsCompatible() to take pointer + size, allowing use of ↵Eddie Hung2018-08-101-15/+16
| | | | std::array
* Make containers staticEddie Hung2018-08-091-5/+7
|
* Get rid of old iCE40 id_ Arch membersClifford Wolf2018-08-081-5/+5
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Get rid of PortPin and BelType (ice40, generic, docs)Clifford Wolf2018-08-081-8/+8
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* API change: Use CellInfo* and NetInfo* as cell/net handles (common, ice40)Clifford Wolf2018-08-051-12/+10
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* ice40: after reviewSergiusz Bazanski2018-07-251-2/+2
|
* ice40: support PLL40_*_PAD, fix pass-through LUT for LOCKSergiusz Bazanski2018-07-251-0/+4
|
* Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/pllSergiusz Bazanski2018-07-241-3/+4
|\
| * ice40: Remove use of deprecated APIsDavid Shah2018-07-241-3/+4
| | | | | | | | Signed-off-by: David Shah <davey1576@gmail.com>
* | ice40: fixes before reviewSergiusz Bazanski2018-07-241-0/+1
| |
* | ice40: move PLL->IO from pseudo pip to second uphill belSergiusz Bazanski2018-07-241-19/+21
| |
* | ice40: emit list of upbels in chipdbSergiusz Bazanski2018-07-241-1/+1
| |
* | ice40: Prevent placement of SB_IOs in IO blocks used by PLL outputsSergiusz Bazanski2018-07-241-0/+24
|/
* Rename getWireBelPin to getBelPinWireClifford Wolf2018-07-221-1/+1
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* ice40: Optimise reset/enable net checkingDavid Shah2018-07-201-10/+4
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ice40: Use xArchArgs in validity checkDavid Shah2018-07-181-22/+14
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* Revert "Make PnR use Unlocked methods"Sergiusz Bazanski2018-07-141-3/+3
| | | | This reverts commit 9e4f97290a50fc5d9dc0cbe6ead945840b9811b1.
* Revert "Introduce proxies for locked access to ctx"Sergiusz Bazanski2018-07-141-38/+37
| | | | This reverts commit 89809a8b810dd57f50f365d70a0ce547705f8dbb.
* Revert "Refactor proxies to nextpnr."Sergiusz Bazanski2018-07-141-3/+3
| | | | This reverts commit 9b17fe385cf7e8d3025747b5f7c7822ac2d99920.
* Refactor proxies to nextpnr.Sergiusz Bazanski2018-07-141-3/+3
|
* Introduce proxies for locked access to ctxSergiusz Bazanski2018-07-131-37/+38
|
* Make PnR use Unlocked methodsSergiusz Bazanski2018-07-131-3/+3
|
* refactor: Replace assert with NPNR_ASSERTDavid Shah2018-07-041-2/+2
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ice40: Reworking placement legalisation to allow integration with SA placerDavid Shah2018-06-291-9/+0
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* nets and cells are unique_ptr'sMiodrag Milanovic2018-06-251-3/+3
|
* Refactor: remove PlacementValidityChecker and move methods to ArchDavid Shah2018-06-251-39/+32
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* Update from increased clangformat line lengthDavid Shah2018-06-231-17/+9
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* Refactoring bind/unbind APIClifford Wolf2018-06-231-3/+3
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* ice40: Move global net test to ArchDavid Shah2018-06-231-4/+5
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* Cleanup almost all deprecation warningsMiodrag Milanovic2018-06-231-3/+3
|
* Switched from clifford@clifford.at to clifford@symbioticeda.com for ↵Clifford Wolf2018-06-221-1/+1
| | | | | | copyright headers Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Major performance improvement to placement validity checkDavid Shah2018-06-191-21/+30
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ice40: Don't deduplicate local tracks when countingDavid Shah2018-06-191-10/+9
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* Getting rid of old IdString API users, Add ctx to many internal APIsClifford Wolf2018-06-181-8/+9
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>