Commit Graph

2030 Commits

Author SHA1 Message Date
David Shah
0be844e6a8
Merge pull request #270 from smunaut/sb_io_conflict
SB IO conflict checks
2019-04-17 16:18:40 +01:00
David Shah
e7bb262e96
Merge pull request #269 from smunaut/pll_gb_place
PLL GB usage and placement fix
2019-04-17 16:17:09 +01:00
Sylvain Munaut
66b64f928b ice40: Check for SB_IO shared wires conflicts in isValidBelForCell
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-04-17 16:07:22 +02:00
Sylvain Munaut
c4cb0c5e49 ice40: In assignCellInfo get PIN_TYPE/NEG_TRIGGER from params and not attrs
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-04-17 16:07:16 +02:00
Sylvain Munaut
6387a3d33e ice40: Only create padin gbuf for PLLs if global output actually used
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-04-17 14:06:23 +02:00
David Shah
037e13b883
Merge pull request #267 from noopwafel/lock-for-timing
timing_opt: Add locks to optimise()
2019-04-16 16:29:26 +01:00
Alyssa Milburn
c1cc356bb0 timing_opt: Add locks to optimise()
Signed-off-by: Alyssa Milburn <amilburn@zall.org>
2019-04-16 16:03:12 +02:00
Sylvain Munaut
9dd68aa0e2 ice40: Take placed SB_GBs into account when placing PLLs
Because the PLLs drive global networks, we need to account for
already existing and placed SB_GBs when trying to place/pack them.

Theses can be user instanciated SB_GBs with BEL attribute, or
SB_GB_IOs that got converted during the IO packing.

This patch assumes that:
 - If a PLL is used the output A global network is always used, even
   if there is no connection to the global output pin
 - If a PLL with a singe output is used, then the B output global
   network is still free to be used by whatever.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-04-16 10:12:28 +02:00
Eddie Hung
250c914763
Merge pull request #266 from xanderlent/patch-1
Fix ice40 example directory in README.md
2019-04-15 22:50:53 -07:00
Alexander Lent
003619e91c
Fix ice40 example directory in README.md
ice40/blinky.* moved to ice40/examples/blinky/blinky.* in commit 1780f42b9a
2019-04-15 21:27:11 -07:00
David Shah
db7e850ee8
Merge pull request #264 from smunaut/fix_sb_unused_in
ice40/pack: During IO packing, remove any unused input connection
2019-04-11 13:32:01 +01:00
Sylvain Munaut
6cb4e2e83b ice40/pack: During IO packing, remove any unused input connection
This is mostly for the benefit of PLL placement because the D_IN_x
ports are used for other purposes when PLL is enabled so we need to
make sure nothing is connected there already. (even an unused net is
too much)

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-04-11 13:52:23 +02:00
David Shah
22da6c8a65
Merge pull request #263 from YosysHQ/placer1_incr_bb
placer1: Improve incremental bounding box updates
2019-04-10 11:01:34 +01:00
David Shah
cfcd657e32 clangformat
Signed-off-by: David Shah <dave@ds0.me>
2019-04-08 18:08:39 +01:00
David Shah
ad9bc627e6 placer1: Check correctness of incremental updates with --debug
Signed-off-by: David Shah <dave@ds0.me>
2019-04-08 18:08:26 +01:00
David Shah
65b2a76159 placer1: Improve incremental bounding box updates
Signed-off-by: David Shah <dave@ds0.me>
2019-04-07 15:55:07 +01:00
Eddie Hung
6adf37e3c1
Merge pull request #262 from chexum/gcc4x
common: avoid std::ofstream copy
2019-04-02 11:57:55 -07:00
Janos Farkas
587b022b0a common: avoid std::ofstream copy
Using a copy constructor to set the logfile is the only thing that
stops compilation with the libstdc++ shipping with gcc 4.8 (maybe 4.7)
2019-04-02 16:39:21 +00:00
David Shah
2e246c1968
Merge pull request #260 from xobs/windows-eigen-docs
README: update windows build instructions for eigen, python
2019-04-02 12:41:25 +01:00
Sean Cross
638f84a622 README: update windows build instructions for eigen, python
The recent addition of "eigen3" to nextpnr necessitates the addition of
"eigen" to the list of vcpkg packages to be installed on Windows.

Add the 32- and 64-bit versions of eigen to the command issued to
install various dependencies.

Also document one possible build command, and note about unpacking
python36.zip.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-04-02 15:25:00 +08:00
David Shah
d27ec2cd15 ice40: Don't constrain to a PLL bel that has already been used
Fixes #258

Signed-off-by: David Shah <dave@ds0.me>
2019-04-01 12:25:32 +01:00
David Shah
db152b332b HeAP: Don't call Eigen if system is empty
Fixes #259

Signed-off-by: David Shah <dave@ds0.me>
2019-04-01 12:18:02 +01:00
David Shah
ed4fc888de
Merge pull request #255 from smunaut/i2c_spi
ice40: Add support for SB_I2C and SB_SPI
2019-03-26 08:03:37 +00:00
Sylvain Munaut
d401e3e1a0 ice40: Add support for SB_I2C and SB_SPI
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-03-25 23:48:59 +01:00
David Shah
c2d87846d8
Merge pull request #257 from whitequark/patch-1
Fix broken header guard
2019-03-25 19:39:49 +00:00
whitequark
818165031c
Fix broken header guard 2019-03-25 19:32:58 +00:00
David Shah
c67b8259bb
Merge pull request #219 from daveshah1/placer_heap
HeAP-based analytical placer
2019-03-25 16:24:02 +00:00
David Shah
25e3350675 HeAP: Make log output more consistent
Signed-off-by: David Shah <dave@ds0.me>
2019-03-25 15:39:15 +00:00
David Shah
49e827a9b4 HeAP: Add missing newline
Signed-off-by: David Shah <dave@ds0.me>
2019-03-25 12:41:25 +00:00
David Shah
efc6872341 placer1: Restore old weighting in budget-based mode
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 13:59:27 +00:00
David Shah
00b09fbb43 HeAP: Per-iteration output all on one line
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:18:38 +00:00
David Shah
02ae21d8fc Add --placer option and refactor placer selection
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:10:20 +00:00
David Shah
52e05f4a07 placer1: Fix regression moving chained cells pre-legalise
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-23 23:15:05 +01:00
David Shah
e04efa8c6e Bump tests to include WAIVE 2019-03-23 20:51:57 +00:00
David Shah
81a7b5d2a1 Update README.md
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:46:54 +00:00
David Shah
23f2fff1c8 clangformat
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:39:05 +00:00
David Shah
801675a2c6 placer1: Only get criticalities when in timing-driven mode
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
fcc3bb1495 ecp5: Speedup cell delay lookups
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00: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
bd12c0a486 HeAP: Add PlacerHeapCfg
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
7142db28a8 HeAP: Make HeAP placer optional
A CMake option 'BUILD_HEAP' (default on) configures building of the
HeAP placer and the associated Eigen3 dependency.

Default for the iCE40 is SA placer, with --heap-placer to use HeAP

Default for the ECP5 is HeAP placer, as SA placer can take 1hr+ for
large ECP5 designs and HeAP tends to give better QoR. --sa-placer can
be used to use SA instead, and auto-fallback to SA if HeAP not built.

Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
1c824709e2 HeAP: Switching from TAUCS to Eigen
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
589b267a93 HeAP: Fix regression
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
8e4e03d980 HeAP: Fix occupancy count
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah
6cf001d355 HeAP: Legaliser fixes
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
352f15e96b HeAP: Avoid getting stuck in legaliser ripup
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
70a6379bf6 HeAP: Chain support
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
87edf6305f ci: Add OpenBLAS to Dockerfile
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
2e2f44c82e HeAP: tidying up
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
fb02fc69c6 HeAP: Make strict legalisation wirelength driven where needed
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00