Hallo Leute, ich stehe vor einem Problem. In meinem FPGA sind derzeit mehrere Module eingebaut. Zu diesen zählt unter anderem ein Microblaze. Die Module sollen un im nächsten Schritt miteinander kommunizieren können. Ich dachte da an einen bidirektionalen Bus! Dies ist aber, wie ich vernommen habe nicht möglich(kein tristate im FPGA). Welche Möglichkeiten bieten sich noch an? ... Vielen Dank
Gast
#3296806
Der Bus, den der Microblaze von Haus aus mitbringt? Es soll auch bidirektionale Busse geben, die nicht auf Tristate angewiesen sind.
Gast
#3296808
Tim S. schrieb: > Welche Möglichkeiten bieten sich noch an? Wie viele Busmaster hast Du? Wenn Du nur einen hast, kannst Du alle Modulausgänge miteinander verodern. Du mußt nur dafür sorgen, daß ein inaktives Modul "0000" auf den Bus gibt. Duke
Hallo, ich habe vergessen zu erwähnen, dass es ein Multi-Master Bus sein soll. Sprich jeder Teilnehmer soll sowohl als Master als auch Slave fungieren(wenn er addressiert wird). Also später sollen es ungefähr 10 Teilnehmer werden.
ich würde nen Controller-Modul(ne Art von Arbiter) schreiben, welches Schreib- und Leseanfragen verarbeitet und entsprechend deiner eigenen Prioriäten dann Schreib- und Leserechte an die einzelnen Busteilnehmer vergibt. Ist ein bissel extra Arbeit und die Businterface(s? = Plural??) müssen um entsprechende Logik und Signale erweitert werden, aber mir fällt nichts mit mehr Kontrolle und Sicherheit ein.
Und wie ist es mit Wishbone ... das würde doch dann beudeuten meine Module anzupassen?
Gast
#3296874
Tim S. schrieb: > Und wie ist es mit Wishbone ... Würde gehen. Du mußt trotzdem sicherstellen, das nur ein Master den Buszugriff genehmigt bekommt. > das würde doch dann beudeuten meine > Module anzupassen? Ja. Die brauchen dann eine Wishbone-Master und eine Wishbone-Slave Schnittstelle. Duke
Tim S. schrieb: > In meinem FPGA sind derzeit mehrere Module eingebaut. Zu diesen zählt > unter anderem ein Microblaze. > Die Module sollen un im nächsten Schritt miteinander kommunizieren > können. Vielleicht beschreibst Du uns eine bischen genauer was Du machen möchtest? Miteinander kommunizieren kann vieles bedeuten, das reicht vom Austausch kleiner Pakete bis zu einer schnellen Datenübertragung mit MB/s und Mbytes an Daten. Das macht einen Unterschied. Außerdem : Du sprichst von einem Multimastersystem unter anderem mit Microblaze. Wie soll aber der MB als Slave reagieren? Man kann einen Speicher als Slave haben, aber nicht einen Prozessor.
> Du sprichst von einem Multimastersystem unter anderem mit Microblaze. > Wie soll aber der MB als Slave reagieren? Man kann einen Speicher als > Slave haben, aber nicht einen Prozessor. Da hast du recht daran habe ich nicht gedacht! Hier sei noch gesagt, dass es nur einen Prozessor geben wird. Dieser wird dann halt nur Master sein. > Miteinander kommunizieren kann vieles bedeuten, das reicht vom Austausch > kleiner Pakete bis zu einer schnellen Datenübertragung mit MB/s und > Mbytes an Daten. Es handelt sich nur um kleine Pakete. > Ja. Die brauchen dann eine Wishbone-Master und eine Wishbone-Slave > Schnittstelle. Wie groß ist da der Aufwand.
Gast
#3296890
Hi Microblaze klingt nach XILINX FPGA, wie sieht es mit der Verwendung des AXI Busses aus.
Gast
#3297095
abcd schrieb: > Der Bus, den der Microblaze von Haus aus mitbringt? Es soll auch > bidirektionale Busse geben, die nicht auf Tristate angewiesen sind. Im FPGA stets 2 Busse parallel, non duplex.
Bego schrieb: > Im FPGA stets 2 Busse parallel, non duplex. Und zum Umschalten ein Sack voll Multiplexer... Jeder bidirektionale Bus wird auf Schreib- und Lesebus aufgetrennt. Und aus diesem Grund sollte das Design im FPGA auch gleich so machen, dass das problemlos möglich ist. Oder dass es gar nicht nötig ist.
Ich stehe jetzt vor der Entscheidung:
Wishbone Interface an meine Module anbinden
oder
> ein Sack voll Multiplexer
und eignen Arbiter
Wie schätzt ihr den Aufwand?
Gast
#3297261
Warum eigentlich alles neu erfinden? Alles wichtige steht doch schon oben: Mit dem Microblaze verwendet man am besten den xilinx AXI4 Bus. Bei einem FPGA der älter als ein Spartan6 ist eben den PLB-Bus. Alles andere (Arbiter, Bus-Mastering) erübringt sich. Wenn man nur Single-Word Zugriffe macht (kein Bursts) sind eigen IP-Module sehr schnell angepasst. Stichwort ist Xilinx IPIF.
Tim S. schrieb: > Ich stehe jetzt vor der Entscheidung: > Wishbone Interface an meine Module anbinden > oder >> ein Sack voll Multiplexer > und eignen Arbiter > Ich kenne Wishone nicht, aber wenn man sich http://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29 ansieht, und Du wirklich 10 Master hast, dann wird die Crossbar ziemlich aufwändig. > Wie schätzt ihr den Aufwand? Wie ist Dein Kenntnisstand?
Wozu braucht man eigentlich innerhalb eines FPGAs einen Multimasterbus?
Gast
#3297584
Lothar Miller schrieb: > Wozu braucht man eigentlich innerhalb eines FPGAs einen > Multimasterbus? DMA wäre wohl ein klassischer Fall.
Gast
#3298079
Ich versuche möglichtst immer mit Wishbone zu arbeiten. Zum Einen finde ich den recht schlank und übersichtlich, einfach handhabbar und meist völlig ausreichend. Zum Anderen haben eben viele OS-Cores ein WB-Interface. Im Falle eine Microblaze mache ich dann eine Umsetzung von AXI/PLB auf Wishbone.
Gast
#3298431
Thomas schrieb: > Lothar Miller schrieb: >> Wozu braucht man eigentlich innerhalb eines FPGAs einen >> Multimasterbus? > > DMA wäre wohl ein klassischer Fall. Kann man auch gut abseits vom Master bus implementieren. D.h. einen parallel laufenden DMA-Bus ziehen. Bringt mehr Performance, vereinfacht einiges und die meisten FPGAs schaffen das von den Resourcen her.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.