Forum: FPGA, VHDL & Co. "Z" für internen Bus (bei LinuxCNC/Mesa HostMot2)


von Jo Daho (Gast)


Lesenswert?

Ich wollte gerne ein paar Sachen aus der HostMot2 "Firmware" von 
LinuxCNC bzw. Mesa 
(http://git.linuxcnc.org/gitweb?p=hostmot2-firmware.git;a=tree) 
verwenden.

Dabei ist mir aufgestossen, dass die am internen Bus angeschlossenen 
Module so beschrieben sind, dass sie hochohmig sein sollen (obus <= 
(others => 'Z');), wenn das Modul nicht mit dem Bus kommuniziert.

Nach dem, was ich bisher so gelesen habe, scheint der Konsens zu sein, 
dass Hi-Z nur was für externe Signale sein soll, weil das u.a. 
FPGA-unabhängiger und leichter zu routen ist.

Wass meint ihr: So lassen (ist ja praxiserprobt auf den Mesa-Karten und 
funktioniert mit deren Xilinx Spartanern super) oder umschreiben?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jo Daho schrieb:
> Nach dem, was ich bisher so gelesen habe, scheint der Konsens zu sein,
> dass Hi-Z nur was für externe Signale sein soll, weil das u.a.
> FPGA-unabhängiger und leichter zu routen ist.
Heutige FPGAs haben keine internen bidirektionalen Busse und die 
zugehäörigen Tristate-Treiber mehr. Sie müssen solche 
Tristate-Konstrukte also mit Multiplexern auflösen. Oft geht das gut, 
wenn der Adressdecoder einen exklusiven Zugriff garantiert. Wenn der 
Buszugriff aber z.B. über Tokens realisiert wird, dann wirds schnell 
eng.

> Wass meint ihr: So lassen (ist ja praxiserprobt auf den Mesa-Karten und
> funktioniert mit deren Xilinx Spartanern super) oder umschreiben?
Tja, der erste Spartaner war ja auch das letzte FPGA mit so einem Bus. 
Wenn das Design weiterhin nur auf so einem FPGA laufen soll, dann kannst 
du es lassen. Wenn es auf einem neuen FPGA eingesetzt werden sollte, 
würde ich die Ports umschreiben.

von Jo Daho (Gast)


Lesenswert?

Vielen Dank für Deine Antwort, Lothar (und natürlich auch Deine super 
Webseiten rund um VHDL).

Das hat mich überzeugt, das doch anzugehen.

von Sönke P. (snke_p)


Lesenswert?

Ich bin das Problem auch schonmal angegangen, als ich ein paar Sachen 
für einen Motioncontroller übernehmen wollte.

Bei den Sachen, die ich verwendet hab, hatte es gereicht, obus bei 
Inaktivität auf 0, statt Z zu setzen und dann natürlich die Busanbindung 
anders zu gestalten.

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.