Hallo zusammen, ich würde gerne ein Stream Master AXI auf zwei slaves spliten, ich habe folgendes versucht (siehe Bild), allerdings bekommen weder der FFT-Block Slave noch der zweiter Block (nicht im Bild zu sehen, die Ausgänge gehen einfach in ein zweiter Block, der allerdings in VHDL code realisiert wurde, somit im Block nicht enthalten). Wie kann man so etwas am besten realisieren? Vielen Dank im voraus!
Nimm dafür den AXI-Stream-Broadcaster-IP von Xilinx. Einfach nur Signale im BD zu verbinden wird dich nicht weit bringen. Die Streams müssen beide aktiv bedient werden.
Danke Samuel, ich probiere es morgen aus, allerdings habe ich schon bevor ich gepostet habe, die AXI infrastructure IPs angeschaut. Wenn ich mich richtig entsinne waren die AXI broadcastes von Slave auf Master. Aber morgen mehr dazu. Vielen lieben Dank!
Hallo Samuel, wie muss ich den Broadcuster parametrisieren, also ich habe für den Slave databytes 8 und für den Master auch 8 bytes eingestellt, da ich 64 Bits habe (Siehe Bild Broadcuster_Einstellung 1). Dann ist die zwete seite Stream Splitting Options auch jeweils auf 64 Bits (siehe Bild Broadcuster_Einstellung_2). Allerdings wird der Broadcuster mit 127 bits generiert (siehe BildBroadcuster. Ich möchte eigentlich die 64 Bit eingangsseitig Slave 1 auf die Master zwei Masters 1:1 ausgeben. Hast du vielleicht eine Ahnung woran es liegen könnte?
Das ist ein Darstellungsfehler im Broadcaster (welcome to Xilinx). Das kannst du ignorieren. Es zählt nur, was in der Konfiguration eingestellt ist. https://support.xilinx.com/s/question/0D52E00006hpKflSAE/using-axi-broadcaster?language=en_US
:
Bearbeitet durch User
Und wenn man ohne den dämlichen AXI-Kram baut, dann spult man alles auf 2 FIFOs und lässt das per hgand shake individuell abholen. Im Vergleich zum AXI-BC kommt man bis an 100% der möglichen Masterbandbreite, wenn man die Vereinigungsmenge der Slaves bildet.
Lässt sich mit dem dämlichen AXI-Kram 1:1 so bauen. Außer man ist allergisch dagegen.
FPGA-Spezi schrieb im Beitrag #7332537: > Es lässt sich einfacher und übersichtlicher auch ohne das AXI bauen. Mindestens ein Handshake und Datenbus brauchst du am FIFO auch, und da sind wir am Eingang bei FIFO_Data_in=tdata, FIFO_Data_enable=tvalid, not FIFO_full=tready und am Ausgang ähnlich. Je nachdem, welche Features du brauchst (byte enable, frame-basiertes stop flag), kommst du auch bei was selbst gestricktem nicht auf weniger Signale. Am einfachsten ist, zumindest für mich, das was schon da ist und funktioniert. Am übersichtlichstens ist das, was nicht an jedem Modul ein anderes Interface hat. AXI-Stream ist da meiner Meinung nach geeignet. Ich würde zustimmen, dass es sich "einfacher und übersichtlicher" ohne diesen IP-Block-Design Kram bauen lässt, aber das ist Sache der persönlichen Präferenz bzw. Fähigkeiten.
Hallo zusammen, ich habe den Bugg auch hier gefunden: https://imperix.com/doc/implementation/axi4-stream-ip-from-xilinx Allerdings will bei mir der Broadcaster einfach nicht laufen, ich habe tready signal gleich ~fifo_busy gesetzt, da in diesem zweiten Pfade bevor die Daten verarbeitet werden in eiem FIFO gespeichert werden. Also werde ich mich mal heute rumprobieren.
Yonas schrieb: > Allerdings will bei mir der Broadcaster einfach nicht laufen, ich habe > tready signal gleich ~fifo_busy gesetzt, da in diesem zweiten Pfade > bevor die Daten verarbeitet werden in eiem FIFO gespeichert werden. Das ist so ein Beispiel, wo der broadcaster einfach nicht universell genug ist. Wenn man so etwas bauen möchte, dann baucht das System VOR und NACH der Ausgabelung ein ausreichend großes FIFO, damit der Master jederzeit reinschreiben kann, auch wenn nur einer der beiden Slaves abholen kann. Da in jeder Anwendung das Abhol- und Einschreib-Muster anders ist, gibt es keine einheitliche Lösung für das Problem, auch wenn XI das immer wieder suggeriert. Wenn man unbedingt AXI nehmen will oder muss, dann ERST die FIFOs und mit verundetem READY und DANN die Slaves.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.