aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/arch_place.cc
Commit message (Collapse)AuthorAgeFilesLines
* clangformatgatecat2023-01-251-62/+38
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Add remapping of DSP clk/ce/rst signals in a block.Adam Greig2023-01-041-0/+253
| | | | | | | | | | | | | | | | | | Each DSP block contains two slices, and each slice contains multiple MULT18X18D and ALU54B units. Each unit configures each register to use any of CLK0/1/2/3, CE0/1/2/3, and RST0/1/2/3 ports, and the ports are connected per unit (so for example, two MULTs in the same block could connect their CLK0s to different external signals). However, the hardware only has one actual port per block, so it's required that all CLK0 signals within a block are the same. Because the packer is in general allowed to combine two unrelated units into one block, it may end up combining units that use different signals for the same port, which would eventually have caused a router failure. This commit adds validity checks which ensure only unique signals are used per block, and adds remapping so that conflicting signals are automatically reassigned when possible and required.
* Include ALU54B in cell types with wire location overridesAdam Greig2023-01-041-1/+1
|
* 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-3/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* ecp5: Split the SLICE bel into separate LUT/FF/RAMW belsgatecat2022-04-071-99/+138
|
* refactor: New member functions to replace design_utilsgatecat2022-02-181-2/+2
| | | | 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-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Use hashlib in placersgatecat2021-06-021-9/+0
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Use hashlib for core netlist structuresgatecat2021-06-021-6/+6
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* timing: Replace all users of criticality with new enginegatecat2021-03-041-9/+3
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Remove isValidBelForCellgatecat2021-02-161-30/+6
| | | | | | | | | | | | | | | | | 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-4/+4
| | | | | | | 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>
* ecp5: Improve bounding box accuracyDavid Shah2020-02-031-6/+15
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Fix routing to shared DSP control inputsDavid Shah2019-10-251-0/+24
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Fix handling of missing ports in LUT permutationDavid Shah2019-08-081-0/+4
| | | | | | Fixes #310 Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Add --out-of-context for building hard macrosDavid Shah2019-08-071-1/+4
| | | | 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: Add criticality-based LUT permutationDavid Shah2019-02-251-0/+74
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: More optimal LUT6 placementDavid Shah2018-11-161-0/+6
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Add DCU availability checkDavid Shah2018-11-151-0/+2
| | | | Signed-off-by: David Shah <dave@ds0.me>
* ecp5: Improve mixed no-FF/FF placementDavid Shah2018-09-301-18/+20
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Speedup placement using ArchCellInfoDavid Shah2018-08-181-12/+12
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Update to use const IdStrings in place of PortPin/BelTypeDavid Shah2018-08-081-13/+13
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* API change: Use CellInfo* and NetInfo* as cell/net handles (ECP5)David Shah2018-08-051-11/+9
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* Remove implementations of deprecated APIsDavid Shah2018-07-241-3/+4
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* ecp5: Adding a slow and conservative placement validity checkerDavid Shah2018-07-171-0/+109
Signed-off-by: David Shah <davey1576@gmail.com>