Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from YosysHQ:master #258

Open
wants to merge 1,385 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1385 commits
Select commit Hold shift + click to select a range
0994e11
gowin: Himbaechel. Add OSER16 and IDES16
yrabbit Aug 13, 2023
4d0afdf
gowin: Himbaechel. Add the GW1N-4 simple IOs
yrabbit Aug 15, 2023
e85bb1c
gowin: Himbaechel. Fix DESER and PLL
yrabbit Aug 17, 2023
09b7cad
gowin: Himbaechel. Refactor.
yrabbit Aug 17, 2023
84a27c3
gowin: Himbaechel. Improve error messages
yrabbit Aug 17, 2023
1b926b2
gowin: Himbaechel. Fix IO for GW1NZ-1
yrabbit Aug 19, 2023
fdd45d1
gowin: Himbaechel. Add rough CMake stuff
yrabbit Aug 19, 2023
f428059
gowin: Himbaechel. Improve CMake thing a little
yrabbit Aug 19, 2023
6513299
gowin: Himbaechel. Handling of disabled units
yrabbit Aug 21, 2023
aca14cc
gowin: Himbaechel. Install bases
yrabbit Aug 23, 2023
3e0b982
gowin: Himbaechel. Fix problems.
yrabbit Aug 25, 2023
98b09c3
gowin: Himbaechel. Fix the device selection
yrabbit Aug 31, 2023
a9a9251
clangformat
gatecat Aug 31, 2023
79c6840
ecp5: Improve packer robustness to FF dangling M input
gatecat Sep 1, 2023
9994ba1
json: Fix handling of offsets in backend
gatecat Sep 4, 2023
732b329
himbaechel/gowin: recognize -DHIMBAECHEL_GOWIN_DEVICES=all.
whitequark Aug 31, 2023
eef5243
himbaechel/gowin: recognize -DAPYCULA_INSTALL_PREFIX=.../virtualenv.
whitequark Aug 31, 2023
f9825c3
ice40: only set/clear negclk bit if IO clock actually used
gatecat Sep 7, 2023
78ee20b
gowin: Himbaechel. Extend clock router
yrabbit Sep 4, 2023
890d7f7
gowin: Himbaechel. Use a more appropriate function
yrabbit Sep 7, 2023
3e1e783
himbaechel: Initial timing support
gatecat Aug 25, 2023
3cac90a
himbaechel: Fix for Python 3.9
gatecat Sep 12, 2023
565927d
himbaechel: Add discovery of uarch and chipdb
gatecat Sep 12, 2023
165e89f
gowin: Himbaechel. Support DragonFlyBSD
yrabbit Sep 16, 2023
8a54e5e
gowin: Himbaechel. Support DragonFlyBSD
yrabbit Sep 16, 2023
f5996ff
gowin: Himbaechel. Support DragonFlyBSD
yrabbit Sep 16, 2023
682c914
gowin: Himbaechel. Fix install path
yrabbit Sep 16, 2023
8e84006
gowin: Himbaechel. Specify the chip variant.
yrabbit Sep 16, 2023
38d2a4b
tmg: Fix argument order in run method
rowanG077 Sep 25, 2023
3f2e550
tmg: Fix logging of slack histogram
rowanG077 Sep 25, 2023
c07ca64
hashlib: Improve pool hash function.
wanda-phi Sep 27, 2023
e8602fb
std::numeric_limits<delay_t>::lowest() -> ::min()
rowanG077 Sep 28, 2023
58cb8a8
Load timing data
mmicko Sep 20, 2023
1edb449
optimization/cleanup
mmicko Sep 20, 2023
40313ea
fix import
mmicko Sep 20, 2023
c2b75b3
use timing data
mmicko Sep 20, 2023
657d289
import proper data where possible
mmicko Sep 21, 2023
72546a2
made delay_t int type
mmicko Sep 22, 2023
ed7064b
select proper signal
mmicko Sep 22, 2023
1a92c83
properly assign latest fuzzed data
mmicko Sep 22, 2023
1811c71
update trellis version
mmicko Sep 28, 2023
c2e7d3d
remove commented sections
mmicko Sep 28, 2023
f032573
made higher estimate and use proper speed
mmicko Sep 28, 2023
e4cb7ea
proper clock calc due after funcion change
mmicko Oct 2, 2023
95e7598
Fix timing lookup for DP8KC
mmicko Oct 2, 2023
0eb9a9a
placer_static: Initial prototype
gatecat Jan 25, 2023
5a2eff2
compile fix
mmicko Oct 9, 2023
4a7e58a
static/ecp5: zero bel area for RAMW because it's a zero-area cell
gatecat Oct 14, 2023
1238b69
Fixes for building on windows
alchitry Oct 26, 2023
95f0a19
Fixes for building on windows
alchitry Oct 26, 2023
7cac024
Fixes for building on windows
alchitry Oct 26, 2023
6bae89b
Undid accidental formatting
alchitry Oct 26, 2023
74d7ebc
clangformat
gatecat Oct 28, 2023
d40c6e8
himbaechel: Generation speedup and improvements
gatecat Oct 28, 2023
d6f54fd
ice40: add static placer support
Ravenslofty Oct 29, 2023
214cc43
static: density multiplier should be a vector
Ravenslofty Nov 6, 2023
e3c44dd
ice40: add IO group to static
Ravenslofty Nov 6, 2023
fe52840
archapi: Add new API for global constant routing
gatecat Oct 18, 2023
cf64746
himbaechel: Add support for new constants API
gatecat Oct 28, 2023
7b0e082
clangformat
gatecat Nov 7, 2023
4c6003a
router2: Don't use estimates for constant nets
gatecat Nov 7, 2023
506d5f9
machxo2: less pessimistic delay prediction
Ravenslofty Nov 9, 2023
0106c3d
gowin: Himbaechel. Diff io BUGFIX.
yrabbit Nov 13, 2023
a4d2244
Fix printf formats
uis246 Nov 11, 2023
a32ad13
ecp5: Don't segfault while packing FFs when DI port of TRELLIS_FF unc…
laanwj Nov 14, 2023
5bfe0dd
himbaechel: Adding a xilinx uarch for xc7 with prjxray
gatecat Oct 16, 2023
e2a887e
himbaechel: Switch default back to router1 for now
gatecat Nov 17, 2023
55635cf
Update README
gatecat Nov 17, 2023
6683fd4
himbaechel: Fix when more then 32k unique node shapes
gatecat Nov 22, 2023
7814f44
Fix abstract class implementation for fpga_interchange
cbalint13 Nov 17, 2023
de3d5be
python: Remove deprecated use of Py_SetProgramName
gatecat Nov 22, 2023
0b8a93e
fix compile warning
mmicko Nov 22, 2023
1ec8e41
set render bound box, so grid is displayed
mmicko Nov 22, 2023
ec60542
create wiremap for himbaechel arch
mmicko Nov 23, 2023
e3f4578
CRLF -> LF eol
mmicko Nov 23, 2023
f2c280f
gowin: Himbaechel. Initial BSRAM support
yrabbit Oct 3, 2023
90d4863
gowin: Himbaechel. Add GW1NZ-1 BSRAM.
yrabbit Nov 20, 2023
c13b34f
gowin: Himbaechel. Add BSRAM for all chips.
yrabbit Nov 26, 2023
6d93224
static: Reduce stddev of initial solution
gatecat Nov 26, 2023
b4ca68c
Add ability to override Cluster methods in Himbaechel
mmicko Dec 11, 2023
d1083fd
static/ice40: bug fixes for ultraplus
Ravenslofty Dec 9, 2023
535709a
placer1: Fix various bitrot
gatecat Dec 8, 2023
5658785
nexus: Improve error reporting for illegal carry chains
gatecat Dec 18, 2023
4191487
.gitignore for nextpnr-himbaechel
mmicko Dec 23, 2023
4a40251
run clangformat
gatecat Dec 26, 2023
d2297b1
Add Rust FFI bindings
Ravenslofty Dec 8, 2023
1dbd810
first round of review fixes
Ravenslofty Dec 20, 2023
49d5058
second round of review fixes
Ravenslofty Dec 31, 2023
1bbcc5f
(broken) third round of review fixes
Ravenslofty Jan 2, 2024
e12ab86
rust: Fix segfault
gatecat Jan 3, 2024
50d4374
rust: silence warnings
Ravenslofty Jan 3, 2024
7fd80c5
common/kernel: Fixed unused parameters and spurious `;` warnings in s…
dragonmux Jan 3, 2024
cb4db2d
ice40: Fixed unused parameters and spurious `;` warnings in some of t…
dragonmux Jan 3, 2024
e9c69ac
gui: Fixed unused parameters and spurious `;` warnings in one of the …
dragonmux Jan 3, 2024
7d0c4ea
rust: Reworked `npnr_context_get_wires_leak()` using std::accumulate(…
dragonmux Jan 3, 2024
cfeb588
rust: Reworked `npnr_context_get_pips_leak()` using std::accumulate()…
dragonmux Jan 3, 2024
3e46fbc
rust: Reworked the unwrap helpers by effectively hiding the crime of …
dragonmux Jan 3, 2024
cb269b4
rust: Made the wrap helper `inline` and fixed an accidental copy error
dragonmux Jan 3, 2024
6a9ad61
rust: Fixed an unused parameter warning
dragonmux Jan 3, 2024
5013392
Add trivially copyable invariant for ID types
gatecat Jan 4, 2024
d867019
upgrade to C++17
Ravenslofty Jan 3, 2024
2c8ad5f
Fix a renamed Qt item
Ravenslofty Jan 3, 2024
d557e3e
hashlib: constify const_iterators
Ravenslofty Jan 4, 2024
257fbe5
readme: update build prerequisites
Ravenslofty Jan 5, 2024
d00fdc8
frontend: Ignore $scopeinfo
gatecat Jan 11, 2024
2afb1f6
clangformat
gatecat Jan 12, 2024
f12e764
rust: add mutex for arch manipulation
Ravenslofty Jan 16, 2024
c5fc34f
rust: slight cleanup
Ravenslofty Jan 16, 2024
c8e1cbc
rust: transform pointers to references where possible
Ravenslofty Jan 16, 2024
6e4e814
rust: nets isn't send/sync
Ravenslofty Jan 16, 2024
d0e0166
rust: fix build error
Ravenslofty Jan 16, 2024
dfd651a
rust: fix some calls that got wrongly replaced
Ravenslofty Jan 16, 2024
14a0906
rust: rework portref_cell
Ravenslofty Jan 16, 2024
a0e360f
rust: convert netinfo_driver to Option
Ravenslofty Jan 17, 2024
4220ce1
gui: Remove const on max_elems_
gatecat Jan 18, 2024
8968c84
Increase the set of PnR-excluded cells
gatecat Jan 23, 2024
97f5c3c
Add documentation for Himbaechel Gowin uarch
pepijndevos Jan 20, 2024
91b0c4f
gowin: Himbaechel. Deal with SP BSRAM ports.
yrabbit Jan 23, 2024
73b7de7
gowin: Himbaechel. Fix the style.
yrabbit Jan 23, 2024
9dcd0ef
static: Add a basic threadpool
gatecat Jan 24, 2024
e7192cd
static: Fix ifdefs
gatecat Jan 26, 2024
325985e
gowin: Himbaechel. SPX9 BSRAM BUGFIX.
yrabbit Jan 27, 2024
a65ddff
Update workflows
mmicko Jan 29, 2024
b05cb86
gowin: Himbaechel. Global router BUGFIX.
yrabbit Jan 28, 2024
4eeb56c
gowin: Himbaechel. Improve global router.
yrabbit Jan 31, 2024
833cb86
gowin: Himbaechel. Edit message text.
yrabbit Feb 6, 2024
cc273c1
gowin: Himbaechel. Handle SDP OCE
yrabbit Jan 30, 2024
255633c
static: First pass at timing-driven placement
gatecat Feb 9, 2024
aa26ba7
static: Improve singleton handling
gatecat Feb 20, 2024
05ed930
ecp5: Improve router performance on slower speed grades
gatecat Feb 20, 2024
4981ebb
gowin: Himbaechel. Improve the global router
yrabbit Feb 11, 2024
4e8436a
gowin: Himbaechel. Allow to combine IOLOGIC.
yrabbit Feb 9, 2024
ff96fc5
gowin: Himbaechel. Fix IDES16/OSER16
yrabbit Feb 10, 2024
210e0fa
gowin: Add support for DSP primitives.
yrabbit Mar 18, 2024
5ecb669
gowin: BUGFIX fix typo
yrabbit Mar 18, 2024
693058a
Eliminate gcc13 warnings.
abellgithub Mar 19, 2024
b4da575
One more warning.
abellgithub Mar 20, 2024
7f9f75c
Tweak the FreeBSD version of proc_self_dirname() to work on NetBSD an…
thorpej Mar 3, 2024
465cbfa
Add share to .gitignore
mmicko Feb 29, 2024
75af8cc
gui: user more reliable locking
mmicko Feb 29, 2024
ac72546
gui: fix warning on closing application
mmicko Feb 29, 2024
1f25f20
Make example more like other arch
mmicko Feb 29, 2024
9bb46b9
update ci build script
mmicko Feb 29, 2024
6b7723e
Gowin. Add PLL pads.
yrabbit Apr 7, 2024
d3b53d8
Gowin. PLL Pads. Fix the condition.
yrabbit Apr 8, 2024
4d5c48a
Gowin. Fix DSP MULT36X36
yrabbit Apr 17, 2024
edcafcf
Ignore compile artifacts in rust directory
mmicko Apr 17, 2024
f085950
Fixed header files for boost 1.85.0
pdaehne Apr 26, 2024
7a00e76
static: Exclude dark nodes from steplength
gatecat May 3, 2024
89e3b7d
static: Fix float overflow issue
gatecat May 3, 2024
3f2451f
static: Guard density CSV dumps behind a flag
gatecat May 3, 2024
0dc4bcb
Format utlilisation for larger FPGA as well
mmicko May 3, 2024
f99346b
fix for windows path
lushaylabs Apr 20, 2024
eb05543
use boost for windows path
lushaylabs Apr 21, 2024
09703c7
update import to boost
lushaylabs May 3, 2024
423f1b7
static: Make bin stamping more consistent
gatecat May 8, 2024
59a29e5
nexus: Use a toposort when preplacing clock primitives
gatecat May 16, 2024
b7f91e5
Update cached Yosys in CI
gatecat May 16, 2024
61cc525
prefine: Add shared lock around bel availability checks
gatecat Jun 12, 2024
945cf48
static: Various convergence improvements for ECP5
gatecat May 15, 2024
c89037d
static: Speedup with parallel wirelength gradient computation
gatecat Jun 18, 2024
a29a17f
clangformat
gatecat Jun 18, 2024
8f87918
Gowin. Add fix for Single Port BSRAM
yrabbit Jun 23, 2024
2e8280a
Gowin. Fix pipeline mode in BSRAM.
yrabbit Jun 25, 2024
0639681
Gowin. Fix BSRAM block selection.
yrabbit Jun 27, 2024
ba29343
ice40: Fix Python bindings for pip iterators
tarikgraba Jul 2, 2024
7dd4a8c
Gowin. Implement power saving primitive
yrabbit Jul 6, 2024
6b5b21e
Enable user to override setupArchContext in Himbaechel arch
mmicko Apr 17, 2024
cecd6b3
Document context related calls in HimbaechelAPI
mmicko Apr 19, 2024
1871afe
Gowin. Taking into account the features of ROM
yrabbit Jul 4, 2024
eb099a9
Gowin. Bugfix.
yrabbit Jul 8, 2024
f17caa2
Gowin. BUGFIX. Fix placement checks
yrabbit Jul 29, 2024
10a5a44
Gowin. Implement clock management primitives.
yrabbit Jul 14, 2024
11d335c
Gowin. Fix GW2A-18(c) DCS and DQCE
yrabbit Jul 14, 2024
e9e7dce
Himbaechel Gowin: HCLK Support (#1340)
Seyviour Aug 3, 2024
f199c3e
Update shell.nix (#1347)
rowanG077 Aug 12, 2024
0d5d329
SDC parsing support (#1348)
rowanG077 Aug 12, 2024
fa55e93
Himbaechel xilinx : Fix regex to parse Zynq device names
marzoul Aug 19, 2024
ccdc2f6
himbaechel/gowin: add timing information
Ravenslofty Oct 5, 2023
01737a4
Gowin. Add clock wires delays.
yrabbit Aug 17, 2024
32e2d92
Gowin. BUGFIX. Timing
yrabbit Aug 21, 2024
2dc7121
allow LFD2NX devices to be specified with --device (#1353)
cfib Aug 21, 2024
4cf7afe
Gowin. Implement the UserFlash primitive (#1357)
yrabbit Sep 4, 2024
4d1de45
Gowin. BUGFIX. Create all Clock Pips. (#1358)
yrabbit Sep 5, 2024
8d0f52f
timing: Move towards DelayPairs for timing reporting (#1359)
rowanG077 Sep 11, 2024
ff7b853
Gowin. Add DHCEN primitive. (#1349)
yrabbit Sep 11, 2024
50bd8d0
Gowin. Implement the EMCU primitive. (#1366)
yrabbit Sep 12, 2024
2627d4e
ecp5: Allow disabling of global promotion (#1367)
rowanG077 Sep 12, 2024
6ca6452
Fix handling of RNG seed
jthornblad Sep 17, 2024
4b63b11
Bump tests submodule
gatecat Sep 20, 2024
2d542eb
timing: Add hold time to bound of critical path report
rowanG077 Sep 6, 2024
44665a9
timing: Allow critical path traversal for shortest paths
rowanG077 Sep 6, 2024
c25da06
timing: Start identification of min_delay violations
rowanG077 Sep 11, 2024
7aeed52
common: Add some convenience functions for development
rowanG077 Sep 11, 2024
82ea65d
timing: Report min delay violated in timing logger
rowanG077 Sep 11, 2024
60ee682
timing: Make hold violations an error
rowanG077 Sep 12, 2024
fc3b2de
timing: Add clock skew to arrival and required time
rowanG077 Sep 12, 2024
86106cb
timing: integrate c2c delays and cleanup code
rowanG077 Sep 13, 2024
8e12dfc
timing: cleanup clock2clock reporting
rowanG077 Sep 17, 2024
4488d42
log: Remove bad usage of [[no_return]]
rowanG077 Sep 17, 2024
3b7fec8
report: Handle new segment types
rowanG077 Sep 17, 2024
eb0bf9e
report: Handle new segment types
rowanG077 Sep 17, 2024
bca6f63
timing: Fix slack calculations
rowanG077 Sep 17, 2024
a7f79fd
timing: minor cleanup and stupid mistake fixups
rowanG077 Sep 17, 2024
8ee2c56
timing: Add safe zero check function for delay_t
rowanG077 Sep 17, 2024
5488cd9
router: Enable clock skew analysis during routing
rowanG077 Sep 19, 2024
25d64b2
timing_log: Fix logging indendation to match master
rowanG077 Sep 19, 2024
0fce4b8
timing: lower clock_delay_fact to 1 to check if CI passes
rowanG077 Sep 19, 2024
098dcae
timing: remove the articial clock delay inflation
rowanG077 Sep 19, 2024
93e233d
timing: Fix hold slack not matching reported path delay
rowanG077 Sep 20, 2024
0af42f1
common: Use `NPNR_ASSERT_FALSE` for unreachable case
rowanG077 Sep 23, 2024
bbdf7aa
timing_log: warn on min time violation when timing fail is allowed
rowanG077 Sep 23, 2024
db0c991
Himbaechel xilinx : Add support of DSP packing for 7-series
marzoul Sep 11, 2024
04f5f80
Himbaechel xilinx : Add safety check in DSP packing for 7-series
marzoul Sep 13, 2024
ad9a54c
Himbaechel xilinx : More cascaded input ports for which routing is sk…
marzoul Sep 13, 2024
9bea22e
Himbaechel xilinx : DSP packing : Fix identification of cascaded port…
marzoul Sep 17, 2024
a08229d
Placer : Clearer messages in warnings and errors
marzoul Sep 17, 2024
8a0e062
Himbaechel xilinx : DSP packing : Improve code efficiency
marzoul Sep 19, 2024
81bf92a
Himbaechel xilinx : DSP packing : Disable clustering
marzoul Sep 19, 2024
2031a06
Himbaechel xilinx : More flexibility about types of DSP parameters
marzoul Sep 19, 2024
9da05b6
Himbaechel xilinx : DSP packing : Emit a non-fatal error message
marzoul Sep 24, 2024
cd51a0c
Placer : Emit non-fatal error messages before ending the program
marzoul Sep 24, 2024
437fb70
Himbaechel xilinx : Fix packing of cascaded DSP
marzoul Sep 24, 2024
c90d872
xilinx: Filter out another missing pip type
gatecat Sep 26, 2024
118ecbc
xilinx: Remove unnecessary assert
gatecat Sep 26, 2024
7516b89
xilinx: Few more stub timings
gatecat Sep 26, 2024
e4dfd4e
xilinx: Support single-port LUTRAM variants
gatecat Sep 26, 2024
38e5fac
xilinx: Fix workaround for unsupported xdc construct
gatecat Sep 27, 2024
d3c0f94
xilinx: Fix BRAM placement, clangformat
gatecat Sep 27, 2024
24fc33c
xilinx: Basic I/ODDR support
gatecat Sep 27, 2024
1967db1
xilinx: Support for complex IOLOGIC
gatecat Sep 27, 2024
fcdaf3f
Remove fpga_interchange
gatecat Sep 30, 2024
9b51c6e
clangformat
gatecat Sep 30, 2024
cc04882
BaseCtx : Fix crash in getNetByAlias()
marzoul Oct 1, 2024
ff9ba9e
Himbaechel Xilinx : More warning messages about unsupported things in…
marzoul Oct 1, 2024
a9cc7f4
Himbaechel Xilinx : Support multiple nets per command
marzoul Oct 1, 2024
3d00b97
Himbaechel Xilinx : Support get_nets with braces around net name in X…
marzoul Oct 1, 2024
7f33329
Himbaechel Xilinx : XDC commands : Also search nets with lowercase fo…
marzoul Oct 1, 2024
b3b2392
clang-format on basectx.h
marzoul Oct 1, 2024
268b32c
router2: additional heatmap data
Ravenslofty May 22, 2024
65cf6d8
Gowin. Fix the port check for connectivity. (#1376)
yrabbit Oct 2, 2024
75d2ce6
heap: Fix ripup criterea (#1378)
gatecat Oct 2, 2024
854549a
ice40: Fix missing clock pin types (#1380)
gatecat Oct 4, 2024
0e5b134
timing_log: Handle potentially missing net when reporting crit path (…
rowanG077 Oct 4, 2024
d27993f
Placer: Fix static legalise radius (#1382)
meiniKi Oct 8, 2024
028be14
apicula: add support for magic sip pins (#1370)
pepijndevos Oct 9, 2024
7c45980
himbaechel: Bump DB version for package extra_data addition
gatecat Oct 9, 2024
cf42baa
Fix RNG seed initialization (#1383)
meiniKi Oct 9, 2024
f36a657
cmake: Use upstream BoostConfig.cmake instead of cmake's own (#1387)
gatecat Oct 22, 2024
9c2d96f
Gowin. FFs placement. (#1386)
yrabbit Oct 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 0 additions & 19 deletions .cirrus.yml

This file was deleted.

68 changes: 0 additions & 68 deletions .cirrus/Dockerfile.ubuntu20.04

This file was deleted.

8 changes: 0 additions & 8 deletions .cirrus/archcheck.sh

This file was deleted.

55 changes: 55 additions & 0 deletions .github/ci/build_common.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash

# Install latest Yosys
function build_yosys {
PREFIX=`pwd`/.yosys
YOSYS_PATH=${DEPS_PATH}/yosys
mkdir -p ${YOSYS_PATH}
git clone --recursive https://github.com/YosysHQ/yosys ${YOSYS_PATH}
pushd ${YOSYS_PATH}
git reset --hard ${YOSYS_REVISION}
make -j`nproc` PREFIX=$PREFIX
make install PREFIX=$PREFIX
popd
}

function build_icestorm {
PREFIX=`pwd`/.icestorm
ICESTORM_PATH=${DEPS_PATH}/icestorm
mkdir -p ${ICESTORM_PATH}
git clone --recursive https://github.com/YosysHQ/icestorm ${ICESTORM_PATH}
pushd ${ICESTORM_PATH}
git reset --hard ${ICESTORM_REVISION}
make -j`nproc` PREFIX=${PREFIX}
make install PREFIX=${PREFIX}
popd
}

function build_trellis {
PREFIX=`pwd`/.trellis
TRELLIS_PATH=${DEPS_PATH}/prjtrellis
mkdir -p ${TRELLIS_PATH}
git clone --recursive https://github.com/YosysHQ/prjtrellis ${TRELLIS_PATH}
pushd ${TRELLIS_PATH}
git reset --hard ${TRELLIS_REVISION}
mkdir -p libtrellis/build
pushd libtrellis/build
cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} ..
make -j`nproc`
make install
popd
popd
}

function build_prjoxide {
PREFIX=`pwd`/.prjoxide
PRJOXIDE_PATH=${DEPS_PATH}/prjoxide
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ;\
mkdir -p ${PRJOXIDE_PATH}
git clone --recursive https://github.com/gatecat/prjoxide ${PRJOXIDE_PATH}
pushd ${PRJOXIDE_PATH}
git reset --hard ${PRJOXIDE_REVISION}
cd libprjoxide
PATH=$PATH:$HOME/.cargo/bin cargo install --root $PREFIX --path prjoxide
popd
}
24 changes: 24 additions & 0 deletions .github/ci/build_ecp5.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

function get_dependencies {
:
}

function build_nextpnr {
mkdir build
pushd build
cmake .. -DARCH=ecp5 -DTRELLIS_INSTALL_PREFIX=${GITHUB_WORKSPACE}/.trellis -DWERROR=on -DBUILD_GUI=on -DUSE_IPO=off
make nextpnr-ecp5 -j`nproc`
popd
}

function run_tests {
export PATH=${GITHUB_WORKSPACE}/.trellis/bin:${GITHUB_WORKSPACE}/.yosys/bin:$PATH
make -j $(nproc) -C tests/ecp5/regressions NPNR=$(pwd)/build/nextpnr-ecp5
}

function run_archcheck {
pushd build
./nextpnr-ecp5 --um5g-25k --package CABGA381 --test
popd
}
25 changes: 25 additions & 0 deletions .github/ci/build_generic.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

function get_dependencies {
:
}

function build_nextpnr {
mkdir build
pushd build
cmake .. -DARCH=generic -DWERROR=on
make nextpnr-generic -j`nproc`
popd
}

function run_tests {
export PATH=${GITHUB_WORKSPACE}/.yosys/bin:$PATH
( export NPNR=$(pwd)/build/nextpnr-generic && cd tests/generic/flow && ./run.sh )
}

function run_archcheck {
pushd build
# TODO
# ./nextpnr-generic --uarch example --test
popd
}
23 changes: 23 additions & 0 deletions .github/ci/build_gowin.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash

function get_dependencies {
pip3 install apycula==${APYCULA_REVISION}
}

function build_nextpnr {
mkdir build
pushd build
cmake .. -DARCH=gowin -DWERROR=on -DBUILD_GUI=on -DUSE_IPO=off
make nextpnr-gowin -j`nproc`
popd
}

function run_tests {
:
}

function run_archcheck {
pushd build
./nextpnr-gowin --device GW1N-UV4LQ144C6/I5 --test
popd
}
23 changes: 23 additions & 0 deletions .github/ci/build_himbaechel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash

function get_dependencies {
:
}

function build_nextpnr {
mkdir build
pushd build
cmake .. -DARCH=himbaechel -DHIMBAECHEL_EXAMPLE_DEVICES=example
make nextpnr-himbaechel chipdb-himbaechel-example -j`nproc`
popd
}

function run_tests {
:
}

function run_archcheck {
pushd build
./nextpnr-himbaechel --device EXAMPLE --test
popd
}
27 changes: 27 additions & 0 deletions .github/ci/build_ice40.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash

function get_dependencies {
:
}

function build_nextpnr {
mkdir build
pushd build
cmake .. -DARCH=ice40 -DICESTORM_INSTALL_PREFIX=${GITHUB_WORKSPACE}/.icestorm -DWERROR=on -DBUILD_TESTS=on -DBUILD_GUI=on
make nextpnr-ice40 nextpnr-ice40-test -j`nproc`
popd
}

function run_tests {
export PATH=${GITHUB_WORKSPACE}/.yosys/bin:${GITHUB_WORKSPACE}/.icestorm/bin:$PATH
(cd build && ./nextpnr-ice40-test)
(export NEXTPNR=$(pwd)/build/nextpnr-ice40 && cd ice40/smoketest/attosoc && ./smoketest.sh)
make -j $(nproc) -C tests/ice40/regressions NPNR=$(pwd)/build/nextpnr-ice40
}

function run_archcheck {
pushd build
./nextpnr-ice40 --hx8k --package ct256 --test
./nextpnr-ice40 --up5k --package sg48 --test
popd
}
63 changes: 0 additions & 63 deletions .github/ci/build_interchange.sh

This file was deleted.

24 changes: 24 additions & 0 deletions .github/ci/build_machxo2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

function get_dependencies {
:
}

function build_nextpnr {
mkdir build
pushd build
cmake .. -DARCH=machxo2 -DTRELLIS_INSTALL_PREFIX=${GITHUB_WORKSPACE}/.trellis -DWERROR=on -DUSE_IPO=off
make nextpnr-machxo2 -j`nproc`
popd
}

function run_tests {
:
}

function run_archcheck {
pushd build
./nextpnr-machxo2 --device LCMXO2-1200HC-4SG32C --test
./nextpnr-machxo2 --device LCMXO3LF-6900C-6BG256C --test
popd
}
Loading