David Shah
9aa22433ff
Improve handling of unused inout port bits
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-25 14:26:47 +00:00
David Shah
2248e07b66
router2: Improve flow and log output
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 13:46:05 +00:00
David Shah
ce144addb3
ice40: Implement getRouteBoundingBox for router2
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 12:00:05 +00:00
David Shah
7123209324
Allow selection of router algorithm
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:54:38 +00:00
Larry Doolittle
eba6ea53f8
More adjustments to .bba file locations
...
Follows PM discussion with Marcus Comstedt.
Extend changes in .bba file location (made in commit b6a7b60
) to ice40 and MSVC cases,
so all cases become compatible with read-only access to git tree.
Only known down-side is inefficiency when building out-of-tree for multiple architectures;
people following that use case should consider using PREGENERATED_BBA_PATH.
It would be nice if there were less copy-paste in MSVC vs. non-MSVC content in family.cmake,
but that would have to be addressed by someone more skilled in Cmake and MSVC.
2020-01-14 12:28:40 -08: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
b100087024
python: Add bindings for hierarchy structures
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
035bfb0fe5
json: Remove legacy frontend
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
28279b18fe
frontend/generic: Fix regressions
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
b6e2159cec
Work around Qt MOC issue with IdString enums
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:32:23 +00:00
David Shah
dd7f7a53bd
ice40: Improve error handling of Lattice-style parameters
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-10 15:28:16 +00:00
Clifford Wolf
0392cd3a5b
Add bba #embed support
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2019-12-01 00:44:07 +01:00
David Shah
ff9d6b4f89
ice40: Make HeAP the default placer
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-26 10:03:28 +00:00
David Shah
d08e2ade88
Merge pull request #345 from YosysHQ/dave/sdf
...
Improve handling of top level IO and add SDF support
2019-11-18 14:28:40 +00:00
David Shah
f2b9cc6d23
sdf: Working on support for CVC
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-24 12:37:07 +01:00
Sean Cross
5b99382002
ice40: cmake: fix build with pregenerated bba path
...
When building using non-pregenerated bba files, the rule to create bbasm
files gets called twice: once unconditionally, and once as part of the
conditional that determines we're not using a pregenerated bba path.
If we _are_ using a pregenerated bba path, then this rule gets called
anyway, resulting in a build error.
Remove the duplicate, unconditional creation of the bba file generation,
to fix the build when using pregenerated files, and to speed up the
build when not using pregenerated files.
Signed-off-by: Sean Cross <sean@xobs.io>
2019-10-24 13:39:00 +08:00
David Shah
a22f86f861
ice40: Preserve top level IO properly
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-19 13:01:00 +01:00
David Shah
8c0610e84f
ice40: Add set_frequency pcf command; and document pcf
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-13 18:48:39 +01:00
David Shah
30e3c8469b
ice40: Add support for PLL DELAY_ADJUSTMENT_MODE
...
Fixes #336
Signed-off-by: David Shah <dave@ds0.me>
2019-09-23 19:46:31 +01:00
David Shah
fac998ddcb
ice40: Fix carry feed-out when we have to split the chain next
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-23 15:51:05 +01:00
David Shah
cb71b488ec
Merge pull request #332 from YosysHQ/dave/python-refactor
...
Improving Python API and adding docs for it
2019-09-19 20:15:42 +01:00
David Shah
8351ae275e
Merge branch 'precompiled-bba' of https://github.com/xobs/nextpnr into xobs-precompiled-bba
2019-09-19 16:02:10 +01:00
David Shah
f8719a5717
Merge pull request #330 from zeldin/bba
...
bba: Default to native endian in bbasm
2019-09-19 15:57:23 +01:00
Sean Cross
96130efc34
ice40: support PREGENERATED_BBA_PATH
...
Add support for pregenerating BBA files, to build on Windows
and Darwin.
Signed-off-by: Sean Cross <sean@xobs.io>
2019-09-17 11:33:17 +08:00
David Shah
d5e4986e1b
python: Refactor out bindings shared between ECP5 and iCE40
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-15 16:15:07 +01:00
David Shah
c2299c8972
python: Fix getWireBelPins
...
Fixes #327
Signed-off-by: David Shah <dave@ds0.me>
2019-09-15 15:59:16 +01:00
Marcus Comstedt
2f9b04fd56
CMake: Generate chipdbs in build tree when building out-of-tree
...
Signed-off-by: Marcus Comstedt <marcus@mc.pp.se>
2019-09-15 13:42:17 +02:00
Marcus Comstedt
3d9ce8836c
bba: Require explicit endianness flag, and supply it
...
Signed-off-by: Marcus Comstedt <marcus@mc.pp.se>
2019-09-15 12:30:03 +02:00
David Shah
bc6b47efe0
Merge pull request #329 from YosysHQ/dave/net_aliases
...
json: Add support for net aliases
2019-09-13 19:01:26 +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
9e8976996e
ice40: Move clock constraints across SB_IO and SB_GB_IO
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-13 16:59:41 +01:00
David Shah
4d8fa13033
ice40: Fix DSP cascade wires
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-03 11:53:43 +01:00
Sylvain Munaut
82ce89e315
ice40: Only warn about default package if there is no package argument
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-08-10 16:22:04 +02:00
David Shah
c9969c1593
Add deprecation warning for default packages
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-08 21:35:55 +01:00
David Shah
dc565b11c7
ice40/examples: Fix blinky.sh
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-08 21:26:56 +01:00
David Shah
eed85cda83
ice40: Add better stats on LC packing
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-08 20:56:30 +01:00
David Shah
c9ba81ab50
ice40: Fix regression
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 19:10:00 +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
David Shah
8f2813279c
Merge pull request #284 from YosysHQ/json_write
...
Initial support for writing to json files from nextpnr.
2019-07-03 12:39:38 +01:00
David Shah
ff958830d1
Merge pull request #297 from whitequark/serialize-chipdb
...
Serialize chipdb generation by default
2019-06-27 17:50:13 +01:00
David Shah
e78ed11421
Merge pull request #283 from tux3/warn_pcf_trailing
...
ice40: Warn that trailing PCF settings are ignored
2019-06-26 22:40:19 +01:00
whitequark
1b3c8ea9c1
CMake: serialize chipdb generation by default.
...
Fixes #296 .
2019-06-26 21:31:24 +00:00
whitequark
640285755e
CMake: formatting. NFC.
2019-06-26 21:27:57 +00:00
Miodrag Milanovic
be47fc3e9a
clangformat run
2019-06-25 18:19:25 +02:00
Miodrag Milanovic
ec47ce2320
Merge master
2019-06-25 18:14:51 +02:00
David Shah
fa77a5ae4a
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-24 11:43:01 +01:00
Miodrag Milanovic
66ea9f39f7
enable lading of jsons and setting up context
2019-06-14 15:18:35 +02:00
Miodrag Milanovic
36ccc22fc9
Use flags for each step
2019-06-14 09:59:04 +02:00
Miodrag Milanovic
ca7e944d7a
restore arch info for ecp5
2019-06-14 08:55:11 +02:00
Miodrag Milanovic
c6057abd00
restore context from json
2019-06-14 08:13:59 +02:00
Miodrag Milanovic
03dff10cbd
Load properties from json and propagate to context create
2019-06-13 20:42:11 +02:00
Miodrag Milanovic
4de147d9e4
Save settings that we saved in project
2019-06-13 18:39:16 +02:00
Miodrag Milanovic
1cd4a4d17a
Remove concept of project and code connected
2019-06-13 17:42:41 +02:00
Miodrag Milanovic
856760599e
Use properties for settings and save in json
2019-06-12 18:34:34 +02:00
Simon Schubert
88eeafae12
ice40: add RGB_DRV/LED_DRV_CUR support for u4k
2019-06-10 14:04:25 +02:00
Miodrag Milanovic
d9b0bac248
Save top level attrs and store current step
2019-06-07 16:11:11 +02:00
Miodrag Milanovic
07b21c5129
Add vcc and gnd nets and cells only if needed
2019-06-07 13:58:21 +02:00
Miodrag Milanovic
78e6631f76
Cleanup
2019-06-07 13:49:19 +02:00
Miodrag Milanovic
1093d7e122
WIP saving/loading attributes
2019-06-07 11:48:15 +02:00
Miodrag Milanovic
eff1a1341a
Revert "Do not add VCC if not used, loading json works"
...
This reverts commit f1b3a14bc2
.
2019-06-02 08:51:32 +02:00
Miodrag Milanovic
d5d8213871
Added support for attributes/properties types
2019-06-01 15:52:32 +02:00
Miodrag Milanovic
f1b3a14bc2
Do not add VCC if not used, loading json works
2019-05-31 13:38:18 +02:00
tux3
eb2c50b135
ice40: Warn that trailing PCF settings are ignored
2019-05-31 10:44:05 +02:00
Sylvain Munaut
e17299a1ca
ice40: Add support for HFOSC trimming
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-05-13 12:52:58 +02:00
David Shah
0be844e6a8
Merge pull request #270 from smunaut/sb_io_conflict
...
SB IO conflict checks
2019-04-17 16:18:40 +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
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
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
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
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
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
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
ea56dc9d08
HeAP: Add TAUCS wrapper and integration
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
1780f42b9a
ice40: Add examples folder including floorplan example
...
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
Marcin Kościelnicki
1060810d7a
ice40: Fix u4k in external chipdb mode.
...
Signed-off-by: Marcin Kościelnicki <marcin@symbioticeda.com>
2019-03-19 15:23:43 +01:00
David Shah
e87fb69665
ice40: u4k merge fix
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:36:12 +00:00
David Shah
7a5699891a
Merge pull request #239 from YosysHQ/dsp_casc_dummy_wires
...
ice40: Add DSP SIGNEXTIN/OUT and ACCUMCI/O ports
2019-02-25 08:20:32 +00:00
Simon Schubert
7044f56246
ice40: support u4k
2019-02-23 17:39:20 +01:00
David Shah
a05f6b261e
ice40: Add DSP SIGNEXTIN/OUT and ACCUMCI/O ports
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-02-21 20:34:23 +00:00
David Shah
a7ea3f58e3
ice40: Fix timing class of 'padin' GB outputs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-02-20 21:23:43 +00:00
Miodrag Milanović
c52202233a
Merge branch 'master' into mmaped_chipdb
2019-02-12 18:53:20 +01:00
Miodrag Milanovic
8b0af0e48d
Fix according to comments on PR
2019-02-10 08:33:52 +01:00
David Shah
054be887ae
ice40: PLLs can't conflict with themselves
...
Fixes error building testcase from #145
Signed-off-by: David Shah <dave@ds0.me>
2019-02-09 19:27:52 +00:00
Miodrag Milanovic
73f200fe74
Load chipdb from filesystem as option
2019-02-09 13:34:57 +01:00
David Shah
170bf8a5ec
ice40: Don't create PLLOUT_B buffer for single-output PLL variants
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-09 10:41:22 +00:00
Eddie Hung
6d664046d3
Merge pull request #220 from YosysHQ/coi3
...
ice40: Add budget override for CO->I3 path
2019-01-29 11:22:31 -08:00
Eddie Hung
77bb5ea63a
[ice40] Refactor Arch::getBudgetOverride()
2019-01-29 10:43:14 -08:00
David Shah
cc53c312de
timing: Path related fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2019-01-27 16:45:37 +00:00
David Shah
f4d8a25fb7
ice40: Add budget override for CO->I3 path
...
Signed-off-by: David Shah <dave@ds0.me>
2019-01-27 14:43:10 +00:00
David Shah
265fa1be16
Merge pull request #211 from smunaut/ice40_ram_attrs
...
ice40/pack: Copy attributes to packed cell
2019-01-21 11:10:38 +00:00
Sylvain Munaut
b274a8f8f0
ice40/pack: Copy attributes to packed RAM cells
...
Useful to allow manual placement of SPRAM/EBR using BEL attribute
for instance
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-01-19 15:49:21 +01:00
Sylvain Munaut
830d462f92
ice40: Add error message if a selected site is not Global Buffer capable
...
... rather than assert()-out during the call to getWireBelPins() call
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-01-18 17:53:24 +01:00
David Shah
7d8b729ff4
ice40: Add timing data for all IO modes
...
Signed-off-by: David Shah <dave@ds0.me>
2019-01-07 17:18:40 +00:00
David Shah
4444a39fd4
ice40: Improve handling of unconstrained IO
...
Signed-off-by: David Shah <dave@ds0.me>
2018-12-26 16:00:19 +00:00
David Shah
953a3ac552
ice40: Add PCF support for -pullup, -pullup_resistor and -nowarn
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-12-20 20:52:54 +00:00
David Shah
75335d4e1a
ice40: Fix LOCK feedthrough insertion with carry or >8 LUTs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-12-20 18:50:34 +00:00