Forum: FPGA, VHDL & Co. Bus mit mehren Sendern im FPGA


von FPGA noob (Gast)


Lesenswert?

Hallo,
ich studiere Elektrotechnik und arbeite zur Zeit an einem FPGA Projekt. 
Leider war in meinem Studium bisher nur sehr wenig VHDL Design dran. Von 
FPGAs haben wir eigentlich nur erfahren, dass es sie gibt. :(

Ich nutze also dieses Projekt um mich selbst intensiv zu belesen.
Ich habe ein Konzept erstellt und schon eine ganze Reihe 
funktionierender Module erstellt (Simuliert und Synthetisiert). Nun ist 
mein Ziel die einzelnen Module zu verbinden.

In meinem Konzept ist ein Bus vorgesehen:
- 30-40 Sender
- ein Empfänger
- 34 Bit breit

Als ich mir das ausgedacht habe dachte ich an inout-Ports und ein cs 
leitung zu jedem Sender. Jetzt habe ich aber gelesen das es die nicht 
innerhalb von FPGAs gibt und ein Multiplexer als einzige Alternative 
bleibt. Das würde doch aber einen riesigen "Verdrahtnungsaufwand" 
bedeuten.

Wie könnte man dieses Problem lösen?
Das Signal seriell übertragen? Oder gibt es ein andere Möglichkeit die 
sich eigenen würde um die Ausgänge der nicht aktiven Sender auf "High 
Impedanz" zu schalten?

Die Platform die ich verwende ist ein ECP3 von Lattice.
Viele Grüße und Danke für eure Hilfe.

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


Lesenswert?

FPGA noob schrieb im Beitrag #4102283:
> Das würde doch aber einen riesigen "Verdrahtnungsaufwand" bedeuten.
Solange der MUX ins FPGA reinpasst ist das doch kein Problem.

Fang das Design doch einfach mal an, und sieh dir an, was daraus wird. 
Wenns dann tatsächlich klemmt kannst du dir immer noch was ausdenken...

: Bearbeitet durch Moderator
von Fpgakuechle K. (Gast)


Lesenswert?

Es gibt Prozessorinterne Busse, für FPGA's ist der Wishbone weit 
verbreitet:

http://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29
http://cdn.opencores.org/downloads/wbspec_b4.pdf

MfG,

von Christian R. (supachris)


Lesenswert?

Mit "Bus" mit meint er aber hier bidirektionale oder wenigstens auf 
Tristate schaltbare Signale im FPGA aber die gibts schon lange nicht 
mehr. Die meisten Sythesizer machen aber selber einen Mux draus, wenn 
man sowas intern beschreibt. Sauberer ist es natürlich gleich den Mux zu 
beschreiben.

von Schlumpf (Gast)


Lesenswert?

FPGA noob schrieb im Beitrag #4102283:
> Das würde doch aber einen riesigen "Verdrahtnungsaufwand"
> bedeuten.

Richtig, aber das musst du ja nicht von Hand machen. Diesen hässlichen 
Job nimmt dir deine Toolchain ab. Für dich ist der Mux nur ein paar 
Zeilen Code.

Finde ich aber super, dass du dir Gedanken darüber machst. Denn dann 
bist du meiner Meinung nach auf dem richtigen Weg, in das Thema 
einzusteigen.
Wenn du den Blick auf die Hardware nicht verlierst, wirst du guten 
HDL-Code schreiben.
Weiter so und viel Freude beim Lernen :-)

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


Lesenswert?

Christian R. schrieb:
> Sauberer ist es natürlich gleich den Mux zu beschreiben.
Dann kann man nämlich auch gleich die Ports der Komponenten korrekt als 
einen "Eingangsbus" und einen "Ausgangsbus" gestalten und muss nicht in 
der Komponente schon mit einem inout-Port und Tristate-Buffern 
rumpfuschen...

von Schlumpf (Gast)


Lesenswert?

Lothar Miller schrieb:
> Dann kann man nämlich auch gleich die Ports der Komponenten korrekt als
> einen "Eingangsbus" und einen "Ausgangsbus" gestalten

Das sowieso.. aber in seinem Fall scheint das ja unidirektional zu sein.

FPGA noob schrieb im Beitrag #4102283:
> - 30-40 Sender
> - ein Empfänger

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


Lesenswert?

Schlumpf schrieb:
> ... unidirektional ...
> FPGA noob schrieb:
>> - 30-40 Sender
>> - ein Empfänger
Uuuups tatsächlich... ;-)

von FPGA noob (Gast)


Lesenswert?

Hallo,
danke für eure Antworten. Ich hatte irgendwie gehofft das es einen 
"schönen", einfachen Weg gibt. Ich konnte es heute mal ausprobieren und 
bin auf keine Probleme gestoßen. Ich werde es also als Multiplexer 
beschreiben, ohne inout. Mir fehlt leider noch das Gefühl dafür was in 
einem FPGA viel ist und was völlig normal.
Viele Grüße

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


Lesenswert?

FPGA noob schrieb im Beitrag #4103858:
> Mir fehlt leider noch das Gefühl dafür was in einem FPGA viel ist und
> was völlig normal.
Das ist egal.
Wenn du 40 Out-Ports umschalten musst, dann passt der MUX entweder 
rein und ist schnell genug, oder er passt nicht rein oder er ist zu 
langsam. Und nur in den letzten beiden Fällen musst du tatsächlich was 
machen.

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.