diff --git a/.github/workflows/ax7203-gf10-sub.yml b/.github/workflows/ax7203-gf10-sub.yml index 8cb8dfd2f..506ad0063 100644 --- a/.github/workflows/ax7203-gf10-sub.yml +++ b/.github/workflows/ax7203-gf10-sub.yml @@ -37,6 +37,9 @@ jobs: docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c "cd /nextpnr-xilinx && python3 xilinx/python/bbaexport.py --device xc7a200tfbg484-2 --bba /work/build/gf10_sub/chipdb/xc7a200tfbg484-2.bba && bbasm -l /work/build/gf10_sub/chipdb/xc7a200tfbg484-2.bba /work/build/gf10_sub/chipdb/xc7a200tfbg484-2.bin" - name: nextpnr (seed search) run: | + # --placer heap, not sa (#856). SA leaves invalid tiles on this design ("post-placement validity + # check failed for Bel 'SLICE_.../A5FF'", openXC7/nextpnr-xilinx#162) and placed 11 of seeds 1-40. + # HeAP placed 24 of 24 (seeds 1-16 on regymm/openxc7 sha256:35c91073, 1-8 on eced1cdd), 4-7 s each. CLEAN=0; for s in 1 2 3 4 5 6 7 8; do rm -f build/gf10_sub/gf10_sub_ax7203.fasm docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 timeout --signal=KILL 1800 nextpnr-xilinx \ @@ -45,7 +48,7 @@ jobs: --json /work/build/gf10_sub/gf10_sub_ax7203.json \ --write /work/build/gf10_sub/gf10_sub_ax7203_routed.json \ --fasm /work/build/gf10_sub/gf10_sub_ax7203.fasm \ - --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true + --freq 50.0 --seed $s --placer heap --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf10_sub/gf10_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN"