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


von Falk S. (Gast)


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.

von DerInder (Gast)


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=-

von Henrik (Gast)


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

von Falk S. (Gast)


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.

von Kuehnsen (Gast)


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...

von Max Müller (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.