A SING-row sibling of 036-iob18-ologic. The parent fuzzer filters
to IOB18S / IOB18M (diff-pair main / secondary), leaving the IOB18
site type in *_SING tiles uncharacterised. This fuzzer's filter
is the complement: only the IOB18 site type, only in *_SING
tiles. Pushes to lioi_sing / rioi_sing via the two new mergedb
modes.
utils/mergedb.sh: add the two missing modes. The captured
specimens emit LIOI_SING. and RIOI_SING. entries in the same
file; the new cases grep each side into its own merge target so
the existing segbits_lioi_sing.db / segbits_rioi_sing.db are
populated symmetrically without needing to refactor the fuzzer
into two passes.
Note: the SING-tile frame layout has 2 words (offsets 99..100),
so OLOGIC features at word offsets 30+ within the regular LIOI
tile cannot be straightforwardly mirrored. The 10 features the
fuzzer captures (ZINV_CLK, ODDR/OSERDES SRTYPE/TSRTYPE, OSERDES
DATA_WIDTH variants) all land within the SING tile's two-word
window. The OMUX.D1 / OQUSED / OSERDES.DATA_RATE_TQ.BUF features
nextpnr-xilinx emits for transparent OBUF route-thrus on V7
SING-row IOBs (VC707 led[?] @ LIOI_SING_X82Y51) still need a
separate solution -- they likely live in an aliased frame
through the neighbouring full LIOI tile. Tracking that as a
separate follow-up.