Commit Graph

72 Commits

Author SHA1 Message Date
D. Shah d792bce0fb ecp5: Implement IdStringList for all arch object names
This is a complete implementation of IdStringList for ECP5; excluding
the GUI (which you will have to disable for it to build).

Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:32 +00:00
D. Shah 6d23461bcd ecp5: Proof-of-concept using IdStringList for bel names
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>
2021-02-02 17:00:12 +00:00
D. Shah 0dbe7f96a3 common: First pass at IdStringList methods
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 16:59:42 +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 70de8b3a03 nextpnr: Improve error reporting in Context::check
Signed-off-by: David Shah <dave@ds0.me>
2020-11-26 11:12:20 +00:00
David Shah e313d051a8 Add a warning when floorplan constraint doesn't match
Signed-off-by: David Shah <dave@ds0.me>
2020-08-12 10:11:52 +01:00
David Shah c9e7d1448e clangformat
Signed-off-by: David Shah <dave@ds0.me>
2020-06-12 16:19:14 +01:00
whitequark e7bb04769d Port nextpnr-{ice40,ecp5} to WASI.
This involves very few changes, all typical to WASM ports:
  * WASM doesn't currently support threads or atomics so those are
    disabled.
  * WASM doesn't currently support exceptions so the exception
    machinery is stubbed out.
  * WASM doesn't (and can't) have mmap(), so an emulation library is
    used. That library currently doesn't support MAP_SHARED flags,
    so MAP_PRIVATE is used instead.

There is also an update to bring ECP5 bbasm CMake rules to parity
with iCE40 ones, since although it is possible to embed chipdb into
nextpnr on WASM, a 200 MB WASM file has very few practical uses.

The README is not updated and there is no included toolchain file
because at the moment it's not possible to build nextpnr with
upstream boost and wasi-libc. Boost requires a patch (merged, will
be available in boost 1.74.0), wasi-libc requires a few unmerged
patches.
2020-05-23 20:57:26 +00:00
David Shah 0ea7f153a1 Allow constraining non-leaf cells to regions
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah fe40094216 Preserve hierarchy through packing
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah 5cd2b55f1f python: Adding helper functions for netlist modification
Signed-off-by: David Shah <dave@ds0.me>
2019-09-15 19:30:56 +01:00
David Shah 95540763b9 json: Add support for net aliases
Signed-off-by: David Shah <dave@ds0.me>
2019-09-13 17:27:15 +01:00
David Shah 661237eb64 ecp5: Add --out-of-context for building hard macros
Signed-off-by: David Shah <dave@ds0.me>
2019-08-07 14:22:47 +01:00
David Shah ec48f8f464 ecp5: New Property interface
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 17:22:37 +01:00
David Shah 1839a3a770 Major Property improvements for common and iCE40
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 14:52:15 +01:00
Miodrag Milanovic be47fc3e9a clangformat run 2019-06-25 18:19:25 +02:00
Miodrag Milanovic ef1a5fa606 Save/restore net strength 2019-06-07 14:31:13 +02:00
Miodrag Milanovic 5b62f33dd5 Restore routing from json 2019-06-07 14:23:57 +02:00
Miodrag Milanovic 78e6631f76 Cleanup 2019-06-07 13:49:19 +02:00
Miodrag Milanovic a8871ea8aa Cleanup and fixes, flow works now 2019-06-07 13:19:11 +02:00
Miodrag Milanovic 1093d7e122 WIP saving/loading attributes 2019-06-07 11:48:15 +02:00
David Shah 6fffe24177 generic: GUI Python bindings
Signed-off-by: David Shah <dave@ds0.me>
2019-04-03 16:08:33 +01:00
David Shah f8a38c59f8 common: Add early return path to getNetinfoRouteDelay for fully unrouted nets
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 493d6c3fb9 Add Python helper functions for floorplanning
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 0adc0d7529 timing: Improve clock constraint log output
Signed-off-by: David Shah <dave@ds0.me>
2018-11-26 18:56:10 +00:00
Eddie Hung e1d2c595a1 Improve message spacing 2018-11-14 18:27:43 -08:00
David Shah adc50a207f Timing fixes
Signed-off-by: David Shah <davey1576@gmail.com>
2018-11-14 08:46:10 +00:00
Eddie Hung 2d39cde17b Merge remote-tracking branch 'origin/master' into timingapi 2018-11-13 12:12:11 -08:00
Clifford Wolf e06eef375c Add more nameOf() convenience methods
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-11-13 16:08:44 +01:00
David Shah fc5e6bec9a timing: Add support for clock constraints
Signed-off-by: David Shah <dave@ds0.me>
2018-11-12 14:03:58 +00:00
David Shah 9687f7d1da Working on multi-clock analysis
Signed-off-by: David Shah <dave@ds0.me>
2018-11-12 14:03:58 +00:00
David Shah b6312abc5d timing: Implementing parts of new timing API
Signed-off-by: David Shah <davey1576@gmail.com>
2018-11-12 14:03:58 +00:00
Clifford Wolf d904a37138 flush logs when throwing an assertion_failure
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-11-10 23:50:08 +01:00
David Shah c8a9bb807c ecp5: Debugging DRAM packing
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 17:45:35 +01:00
David Shah 0e0ad26f07 ecp5: Use ArchNetInfo to mark global nets to ignore
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 19:31:49 +01:00
David Shah c5f9a12bb1 ecp5: Global router produces a working bitstream
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 17:36:08 +01:00
Clifford Wolf e03ae50e21 Get rid of PortPin and BelType (ice40, generic, docs)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-08 17:01:18 +02:00
Clifford Wolf 5e53075990 API change: Use CellInfo* and NetInfo* as cell/net handles (common, ice40)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-05 15:25:42 +02:00
Eddie Hung 92ec2cd138 clangformat for stuff I've touched 2018-07-31 20:57:36 -07:00
Eddie Hung f646ec790a Modify the getNetinfo*() functions and getBudgetOverride() to not use
user_idx and to take a PortRef& instead
2018-07-31 19:31:54 -07:00
Eddie Hung a099aca3c2 Modify predictDelay signature 2018-07-30 19:19:30 -07:00
Clifford Wolf 0daffec2a0 Add predictDelay Arch API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 15:35:40 +02:00
David Shah 593d8e0ddf common: Fix getNetinfoRouteDelay when net has no driver
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 09:45:23 +02:00
Clifford Wolf a436facfd0 Add fallback to estimateDelay() in getNetinfoRouteDelay()
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 12:44:26 +02:00
Clifford Wolf 62b66e0208 Rename getWireBelPin to getBelPinWire
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 10:59:21 +02:00
Clifford Wolf c6e4ad3227 Move common patterns from router1 to Context API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 02:16:03 +02:00
Sergiusz Bazanski b0c05c7f75 Revert "Refactor proxies to nextpnr."
This reverts commit 9b17fe385c.
2018-07-14 18:50:37 +01:00
Sergiusz Bazanski d9c3c117a3 Revert "clang-format"
This reverts commit 8ca7a6da25.
2018-07-14 18:50:34 +01:00
Sergiusz Bazanski ade67ecf21 Revert "Move read methods to ReadMethods, remove some legacy access to Arch"
This reverts commit 3352ff4abb.
2018-07-14 18:50:23 +01:00
Sergiusz Bazanski 3352ff4abb Move read methods to ReadMethods, remove some legacy access to Arch 2018-07-14 11:46:32 +01:00