mikrocontroller.net

Forum: FPGA, VHDL & Co. Bi-Directionale PINs in VHDL


Autor: Falk S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Realisiere den Anschluß eines gemultiplexten Adress/Datenbusses an einen
Xilinx CPLD.

Wie realisiere ich die Bidirectionalen PINs die ich dafür brauche?

Gruß
Falk S.

Autor: DerInder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
bidirectionale Ports erreichst du in dem du sie als "inout"
definierst.
z.B. :  data: inout std_logic_vector(7 downto 0);

Multiplex weiss ich z.Zt. auch noch nicht (bin selbst Anfänger mit
CPLDs).

Gruß
-=jens=-

Autor: Henrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst mal einen inout def., wie Jens schon schrieb.
Du schaltest deinen Port hochohmig, indem du ihm statt eines Wertes
'Z's zuweist. Dann kannst du den Wert von aussen lesen. Da
Macrozellen auf dem Chip keinen hochohmigen Zustand kennen, wird das
der Fitter über Multiplexer realisieren. Die Anschlüssse des CPLDs sind
aber natürlich bidirektional. (war es vielleicht das, was du mit
multiplexen gemeint hast?)
Multiplexer programmiert man mit der case-Anweisung. Je nach
verwendeter Software und der Art der Benutzung können aber auch
if-Anweisungen zu Multiplexern "gefittet" werden. Lerne die Sache
selbst auch noch.
Hoffe, dass hilft weiter.

Gruß Henrik

Autor: Falk S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Antworten!

Ich habe das jetzt auf der schematic-Ebene gelöst: obuf, den man
hochohmisch abtrennen kann (obufe)...vermutlich das gleiche in grün,
was Du in VHDL beschrieben hast.

Gruß
Falk S.

Autor: Kuehnsen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter gemultiplexten Adress- und Datenbus würde ich die Übergabe von
Adressen und Daten über den selben Adress/Datenbus verstehen ein Pin
bestimmt og gerade Adresse oder Daten eingelesen werden sollen.
Übliches Verfahren bei Controllern und Speicher einfach um Pins zu
sparen.
Ansonsten kann ich euch nur zustimmen...

Autor: Max Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also der OBUFE dürfte ein Output Buffer mit Enable sein.

Falls du wirklich einen gemultiplexten Bus anschliessen willst, dann
ist woll IOBUF das bessere Makro.

Das mit dem INOUT stimmt nur teilweise.
Ihr solltet euch mal den unterschied vo INOUT unf BUFFER klar machen.

Beim INOUT kann die Datenrichtung rein exclusive oder raus sein.

Beim BUFFER könnnt ihr den getrieben Zustand zurücklesen  oder den
angelegten Zustand einlesen.

Es kommt dabei aber immer auf die Technologie an, für die man das ganze
beschreibt.
Z.B. braucht man bei Atmel PLDs fast immer Buffer anstatt INOUT.

Ein Buffer entspricht auch eher der Funktion einer Makrozelle eines
GALs oder PLDs.

Gruß


Max

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.