Spartanischer schrieb:
> Kannst du bitte noch mal beschreiben, wie man das dann "schön" macht.
Auf Toplevel Ebene einen Buffer-Kostrukt oder es per VHDL inferieren,
indem man das Verhalten mit VHDL beschreibt:
if internal_oe = '1' then INOUTPORT <= "Z"; else internal_data_out;
internal_data_input <= INOUTPORT;
Dann hast Du innen zwei logische Signale und einen physischen Port, die
auch namentlich bestehen und nicht wegoptimiert oder umbenannt werden.
Die bidirektionalen Ports tief ins Logik-Design reinzuschleppen ist
einfach nur kontraproduktiv, da man etwas beschreibt, was es praktisch
nicht gibt. Die Zwischensignale MÜSSEN förmlich wegoptimiert werden,
damit sinnvolle Physik entsteht, wodurch man sich nicht wundern darf,
wenn dann Referenzen ins Leere gehen, weil die Synthese das nicht
handhaben kann bzw einen Schmarrn zusammenbaut.
berndl schrieb:
> Das ist auch ok solange da 'ein
> einfacher Draht' ist.
Nein, das ist eben nicht ok. Ich kann Dir ein design zeigen, wo Altera
Quartus den SRAM-Datenbus rausgeschmissen hat. Das Signal war im
Toplevel korrekt verdrahtet und ging mittels Mentors HDL-Designer an ein
Modul. Die Synthese hat es nicht kapiert. Wenn, müsste/könnte man die
Signale dann als "buffer" deklarieren, ich bleibe aber dabei, dass das
eine unsinnige Darstellung ist, weil in einem Logikdesign die Physik
nichts zu suchen hat.