mirror of https://github.com/YosysHQ/nextpnr.git
himbaechel/xilinx: do not set OUT_DIFF for TMDS_33 outputs
TMDS_33 differential outputs use the Y0 current-mode driver alone (TMDS_33.OUT plus DRIVE.I_FIXED, with the Y1 pad set IN_ONLY). Vivado bitstreams for the same design do not set the tile OUT_DIFF feature for TMDS pairs, and setting it disables the driver stage entirely: on hardware the attached HDMI monitor reports no transmitter present. Emit OUT_DIFF only for non-TMDS differential outputs (e.g. LVDS_25), matching Vivado. Hardware-verified on xc7a100t (QMTech Wukong): 640x480 DVI output via an onboard HDMI connector, dead without this change, working with it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
68c1acd80a
commit
0690ca7f16
|
|
@ -1004,7 +1004,11 @@ struct FasmBackend
|
|||
else
|
||||
inv = uarch->get_site_bel(pad_bel_site, ctx->id("IOB33S.O_ININV"));
|
||||
|
||||
if (inv != BelId() && ctx->getBoundBelCell(inv) != nullptr)
|
||||
// TMDS_33 outputs are driven by the Y0 current-mode driver alone
|
||||
// (TMDS_33.OUT + DRIVE.I_FIXED, Y1 IN_ONLY); Vivado does not set
|
||||
// OUT_DIFF for them and setting it disables the driver stage
|
||||
// (hardware-verified: monitor reports "no transmitter present").
|
||||
if (inv != BelId() && ctx->getBoundBelCell(inv) != nullptr && !is_tmds33)
|
||||
write_bit("OUT_DIFF");
|
||||
|
||||
if (is_stepdown && !is_sing)
|
||||
|
|
|
|||
Loading…
Reference in New Issue