Du gibst deinem Pin in der Portbeschreibung den Typ inout, dann
funktioniert das schon.
entity ...
port (MyPin : inout std_logic)
architecture ...
MyPin <= '0' when MySig = '0' else 'Z';
Optionen muss man keine setzten, ausser der IO-Sandard auf ein "single
endet" Typ (LVTTL, LVCMOS).
Ich wiess zwar immer noch nicht wie schnell das arbeitet, aber bei 6
Lasten (kapazitiv) und das ganze noch über Flachkabel, wird es nicht
funktionieren. Überlege mal wie lange es dauern wird, bis der Pullup
das Signal von 0 auf 1 ziehen kann und wie Störungsanfällig es ist.
Wenn du sowiso Verteilerplatine machen musst, kannst du da doch ein
CPLD drauf machen, das den Zugriff auf den Bus steuert. Jedes FPGA das
den Bus benutzen will meldet das beim CPLD über eine Leitung und wartet
dann über eine zweite Leitung auf die Bestätigung. Somit kannst du dir
auch die Collision-Detection sparen.