Bidirektionaler Bustreiber mit InOut und Tri-State

Gast #388061
Lesenswert?
• ▲
▼
hmm, bin nicht besonders begeistert von deinem Design. Es ist fraglich
was die Synthese daraus macht. Ich würde die Xilinx Logic Primitive
benutzen und entsprechend deinen Anforderungen Register einfügen.
Hier mal die Instanzierung des passenden IOBUF

IOBUF_inst : IOBUF
port map (
O => O, -- Buffer output
IO => IO, -- Buffer inout port (connect directly to top-level
port)
I => I, -- Buffer input
T => T -- 3-state enable input
);
#388062
Lesenswert?
• ▲
▼
Die Synthese sollte das schon korrekt machen. Die Frage ist nur ob es
sich wirklich auszahlt, dafür ein eigenes Modul zu schreiben, weil
jedes Design ein bischen anders ist.
Nicht jedes Design braucht z.B. taktsynchrones Enable.
Meines Erachtens ist es dann einfacher und verständlich im TopLevel
Design zu schreiben:

Pin <= DataOut when Enable = '1' else (others => 'Z');

In jedem Fall ist das Modul von Christian ein bischen irreführend, weil
man meinen könnte, nach der Taktflanke ist immer nach der gleichen
Verzögerung der Ausgang entweder hochohmig oder hat einen neuen Wert.
In Wirklichkeit geht das tri-staten meist langsamer.

Die Xilinx-Primitive würde ich nicht verwenden, weil das Design dann
nicht mehr so portabel ist.
Christian, wenn Du das Modul verwenden willst, würde ich es von
einfachen Signalen auf Signal-Vektoren erweitern.
Außerdem bin ich ein gläubiger Anhänger der rising_edge() Funktion.

Grüße
Klaus

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.