aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/globals.cc
Commit message (Collapse)AuthorAgeFilesLines
* ecp5: Split the SLICE bel into separate LUT/FF/RAMW belsgatecat2022-04-071-2/+6
|
* Switch to potentially-sparse net users arraygatecat2022-02-271-10/+12
| | | | | | | | This uses a new data structure for net.users that allows gaps, so removing a port from a net is no longer an O(n) operation on the number of users the net has. Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: New member functions to replace design_utilsgatecat2022-02-181-3/+3
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: Use constids instead of id("..")gatecat2022-02-161-7/+7
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: New NetInfo and CellInfo constructorsgatecat2022-02-161-13/+10
|
* ecp5: Add DCSC supportgatecat2021-07-061-11/+34
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Fixing old emails and names in copyrightsgatecat2021-06-121-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* ecp5: Don't attempt to promote undriven nets to globalsgatecat2021-06-071-1/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Using hashlib in archesgatecat2021-06-021-7/+7
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Use hashlib for core netlist structuresgatecat2021-06-021-6/+6
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Remove isValidBelForCellgatecat2021-02-161-24/+26
| | | | | | | | | | | | | | | | | 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>
* ecp5: Use snake case for arch-specific functionsD. Shah2021-02-031-16/+16
| | | | | | | 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>
* refactor: Replace getXName().c_str(ctx) with ctx->nameOfXD. Shah2021-02-021-7/+6
| | | | | | This makes the ongoing migration to IdStringList easier. Signed-off-by: D. Shah <dave@ds0.me>
* ecp5: Proof-of-concept using IdStringList for bel namesD. Shah2021-02-021-3/+3
| | | | | | | | | | | This uses the new IdStringList API to store bel names for the ECP5. Note that other arches and the GUI do not yet build with this proof-of-concept patch. getBelByName still uses the old implementation and could be more efficiently implemented with further development. Signed-off-by: D. Shah <dave@ds0.me>
* ecp5: Fix placement of DCCs to guarantee routeabilityDavid Shah2020-06-101-2/+44
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Improve global routing robustnessDavid Shah2020-05-141-0/+11
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Don't promote VCC/GND to globals even if connected to clock portDavid Shah2020-05-141-0/+2
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Use dedicated routing for ECLKs where possibleDavid Shah2020-04-141-1/+80
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Don't reroute existing globalsDavid Shah2020-01-201-1/+2
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Always promote IOLOGIC SCLK to globalDavid Shah2019-12-271-1/+3
| | | | | | Fixes #374 Signed-off-by: David Shah <dave@ds0.me>
* Revert "Merge pull request #355 from YosysHQ/ecp5-promote-lsr"David Shah2019-11-201-71/+5
| | | | | This reverts commit 6a7d1fe53d2b55e03ebe3400c0f4c9e5741ed2e1, reversing changes made to c3d4117a219570f0a132ae4f810dec961811311a.
* ecp5: Add support for promotion of LSRs to global networkDavid Shah2019-11-191-5/+71
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Add support for clock gating with DCCADavid Shah2019-08-311-38/+58
| | | | Signed-off-by: David Shah <dave@ds0.me>
* Rename clock restriction attribute to "noglobal"Arnaud Durand2019-08-241-2/+2
|
* Restrict clock promotion to globalArnaud Durand2019-08-221-0/+3
|
* ecp5: Add --out-of-context for building hard macrosDavid Shah2019-08-071-1/+5
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: New Property interfaceDavid Shah2019-08-051-2/+2
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Use an attribute to store is_globalDavid Shah2019-06-071-1/+1
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Fix global clock routing with multiclock DPRAMDavid Shah2019-02-251-7/+12
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Add IOLOGIC timing and bitstream; ODDR workingDavid Shah2018-12-141-0/+2
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Pre-place PLLs and use dedicated routes into globalsDavid Shah2018-11-301-2/+4
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: DCU clocking fixesDavid Shah2018-11-151-2/+8
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: EXTREFB fixesDavid Shah2018-11-151-0/+2
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: remove debug and clangformatDavid Shah2018-11-151-5/+6
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Prefer DCCs with dedicated routing when placing DCCsDavid Shah2018-11-151-0/+43
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Copy clock constraints during global promotionDavid Shah2018-11-121-0/+7
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Add PLL supportDavid Shah2018-10-311-3/+10
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Separate global promotion and routingDavid Shah2018-10-311-32/+83
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Optimise DCC placementDavid Shah2018-10-141-3/+12
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Small DRAM routing fixesDavid Shah2018-10-011-1/+15
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Debugging DRAM packingDavid Shah2018-10-011-1/+1
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Use ArchNetInfo to mark global nets to ignoreDavid Shah2018-09-291-0/+1
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* clangformatDavid Shah2018-09-291-19/+15
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Fix global buffer connectivity and timingDavid Shah2018-09-291-0/+2
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Fix handling of global to fabric connectionsDavid Shah2018-09-291-3/+20
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Remove excessive debugging from global promoterDavid Shah2018-09-291-9/+1
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Fixing global to global user routingDavid Shah2018-09-291-6/+13
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Fixing global router bugsDavid Shah2018-09-291-3/+14
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Integrate global router and debug namingDavid Shah2018-09-291-2/+4
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Adding main global promoter/router functionDavid Shah2018-09-291-21/+55
| | | | Signed-off-by: David Shah <davey1576@gmail.com>