Commit Graph

111 Commits

Author SHA1 Message Date
D. Shah b87ab0ee9d Make RelSlice uncopyable
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-27 20:49:14 +00:00
D. Shah 75ee2fc4e6 Move RelPtr/RelSlice out of arches into common
The bba approach seems widely used enough that it's reasonable for this
to become part of common code.

Signed-off-by: D. Shah <dave@ds0.me>
2021-01-27 20:43:01 +00:00
D. Shah e049d5f2fc nexus: Switch from RelPtr to RelSlice
This replaces RelPtrs and a separate length field with a Rust-style
slice containing both a pointer and a length; with bounds checking
always enforced.

Thus iterating over these structures is both cleaner and safer.

Signed-off-by: D. Shah <dave@ds0.me>
2021-01-27 17:24:01 +00:00
David Shah 2c6caf4a9a nexus: Add MULTADDSUB9X9WIDE support
Signed-off-by: David Shah <dave@ds0.me>
2020-12-08 15:49:48 +00:00
David Shah 588042dc99 nexus: Fix LRAM pin types
Signed-off-by: David Shah <dave@ds0.me>
2020-12-07 13:26:45 +00:00
David Shah f923d32620 nexus: Add support for initialised LRAM
Signed-off-by: David Shah <dave@ds0.me>
2020-12-07 11:57:10 +00:00
David Shah 270efdca85 nexus: Add basic LRAM support (no init)
Signed-off-by: David Shah <dave@ds0.me>
2020-12-02 17:07:34 +00:00
David Shah 86e6a2225c nexus: Add PLL support
Signed-off-by: David Shah <dave@ds0.me>
2020-12-02 15:01:46 +00:00
David Shah b666c85824 nexus: Add support for deriving timing constraints in packer
Signed-off-by: David Shah <dave@ds0.me>
2020-12-02 09:44:17 +00:00
David Shah 5a291e4622 nexus/pdc: Parse simple clock constraints
Signed-off-by: David Shah <dave@ds0.me>
2020-12-02 09:34:11 +00:00
David Shah 567166aece nexus: Fix db integrity check
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah ca73e14cf9 nexus: Add post-place LUTFF optimisation
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah f84850064f nexus: Improve error handling in global router
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah df3c6dfe3e nexus: Preliminary integration of DSP timing data
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 76543d05e7 nexus: Tweak heuristics to improve routeability
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah e3b3201d53 nexus: Clocked MULTADDSUB36X36 fix
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 5cf7f01169 nexus: Add MULTADDSUB36X36
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah f795527454 nexus: Add MULTADDSUB18X18 support
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah edd719c5c5 nexus: ACC54 definitions
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 91d746cfc8 nexus: Add DSP pre-adder support
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah fcde8e2d56 nexus: Fix DSP signed ports
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 54539b8519 nexus: Larger DSP tweaks
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 6b5277638b nexus: Fix slow routing around DSPs
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 160045a058 nexus: Fix validity checking when DSPs are used
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah d8e748bc58 nexus: Refactor DSP macro splitting to make it more generic
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 30c65931b2 nexus: Add support for clocked MULT9X9s
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 9203181625 nexus: Support for unclocked 9x9 multiplies
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah d9a19897c4 nexus: More DSP primitive config
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 094bf419d4 nexus: Miscellaneous DSP infrastructure
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 90608f2c89 nexus: Add some infrastructure for DSP packing
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah c7ad3cece6 nexus: Tweak delay heuristics
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 530d6ce9e9 nexus: Add EBR timing analysis
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 9b89a82573 nexus: Add LUTRAM and WIDEFN9 timing support
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 8c1f25cf31 timing: Add a few more cell types
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 6457b4ca7b nexus: Swap sort order to make some lookups easier
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah fa9194e3e2 nexus: Add cell delay lookup
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 963fd175ad nexus: Lookup speed grade and pip delays
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 4e5ad7feac nexus: Add timing structures to BBA
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 629a06b0ae nexus: Add error if device not specified
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah f41b4045d4 nexus: Add missing Q_MOC_RUN guard
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 3d41656168 nexus: Default EBR DWS pins to 1
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 0a59cbb8ce nexus: Use dedicated Vcc routing for OXIDE_COMB pins
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah e6c2887773 nexus: Basic support for carries
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah c89d830e16 nexus: Add WIDEFN9 support
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah 00ff7c6cfe nexus: Default to router2 for now
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah f8dca82a71 nexus: Basic support for differential IO types
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah f749038959 nexus: Improve placer config
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah e8e6316f88 nexus: EBR fixes
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 27ecaf3e88 nexus: EBR FASM generation
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 4503608c7c nexus: Add packing rules for BRAM
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00