Commit Graph

241 Commits

Author SHA1 Message Date
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
David Shah 8d1678f0ef nexus: Add stub GUI
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 70749b37d0 nexus: Fix Python bindings
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 1e4eb5ec39 nexus: Ignore some PDC commands
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah cbf99d5e53 nexus: LUTRAM support
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah dfd6b6e39e nexus: Add a simple global routing pass
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 40441d83cd nexus: Promote and place global buffers
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah c80144b7f0 nexus: Generate FASM files that can be used standalone
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 901bf2bb1e nexus: Update for new monolithic prjoxide
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 9affda5626 nexus: Build and embed chipdb automatically
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 7645354917 nexus: More global placement infrastructure
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 2df4d212c3 nexus: Bel search function for DCC placement
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah da1e3c8612 nexus: Add constant/inversion packing
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 1bb509897c nexus: More pin styles and FASM pinmux gen
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 0eb5c72cc5 nexus: Refactor cell pin style db
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 7f03f4d896 nexus: Tidy up FASM backend
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah d849e2f8b4 nexus: Fix PDC string handling
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah af3af59df4 nexus: Use tilegroups for IO bitgen
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 10ad7d9cfe nexus: IO packing fix
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah df3866a800 nexus: Add IO packing
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 518ead2e2d nexus: IO pre-packing
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 69b449c875 nexus: Initial PDC parser integration
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 12013b4c1f nexus: Lookup of package and IO pins
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah e2de234ef1 nexus: Add pin/pad data to bba
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah e203bd3a2b nexus: Skeleton of PDC parser
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 0a1afe1f79 nexus: Infrastructure for constant/inv handling
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 2f822a3b79 nexus: Packing helper functions
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 46536773f4 nexus: Rework how constant pins work
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah acb4cf9ead nexus: Update to planned IO fields
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 75040cdbdf nexus: Randomise delay to stop router from getting stuck
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 53d1c2c309 nexus: Fix validity checking
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 682351df7f nexus: Updates and fixes
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah e54aa836a4 nexus: Updates
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 2b13b24cbe nexus: Bring up to date
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah a586bfc290 nexus: Support Lattice-style parameters
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 84d5426242 nexus: Working on validity checking
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 887d7c717b nexus: Adding pin definitions
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 46010f33ad nexus: Globals and naming fixes
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah b5d46a0235 nexus: Add Python bindings
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah a280f893d4 nexus: Add oscillator support
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah f8f3ee06c7 nexus: Add SEIO18 support
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 44f98c545b nexus: Add global networks
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 140baf7037 nexus: Globals implementation
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 3c8a740374 nexus: Add global info to BBA
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 2fc75bae79 nexus: Fix FF naming
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah ee4e30ce8b nexus/fasm: Fix SLICE lettering
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 1ff42e9936 nexus: Fixes
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah cef0e1db8f nexus: Minimal IO FASM output
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 689922bc21 nexus: Add FASM export for comb logic and FFs
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 2c49f812d9 nexus: Add packing framework
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah eb15463406 nexus: Add routing FASM export
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 8e53b35fcc nexus/arch: Add tile loc flags and package structs
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 871f3c66bc nexus: Logic tile validity check functions
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah b00595f3da nexus: Add constids
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 1e940323b0 nexus: Add main
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 259659c838 nexus: Add more placeholder Arch functions
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 65a59e9dcc nexus: Implement bel, wire and pip Arch functions
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah ae1a486520 Add Arch constructor
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 35de36dd59 Implementing some Arch functions
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah c7f00b4760 nexus: Add iterator types based on nextpnr-xilinx
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 60c6510b3b nexus: Arch utilities
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah 54e0ef9cf7 Adding archdefs and bba PODs
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00