Hallo, TLDR: Hat es schon mal jemand geschafft für einen synchronen xpm AXI-Stream FIFO URAM zu verwenden; und wenn ja, wie? Ich verwende für ein Xilinx US+-Design die RAM/FIFO-Templates aus der Xilinx XPM-Library [1] [2]. Das funktioniert soweit. Nun hat US+ sowohl 4K BRAM als auch größere 32K URAM. Für große RAMs/FIFOs möchte ich gern, dass Vivado URAMs instanziiert. Für URAM muss der Speicherausgang mehrere Pipelinestufen haben. Für RAMs hat das xpm-template ein generic READ_LATENCY, welches automatisch Register am Ausgang einfügt. Das AXIS-FIFO xpm hat keinen generic, um Register einzufügen (abgesehen von CDC_STAGES für async FIFOs). Ich habe entsprechend versucht, selbst Register an den AXIS tdata-Ausgang und tvalid hinzuzufügen. (tready wird kombinatorisch zurückgegereicht). Allerdings erkennt Vivado das nicht als Pipelinestufen, die es für den URAM nehmen kann, die Meldung ist " INFO: [Synth 8-6793] RAM (testram) is implemented using BRAM instead of URAM due to insufficient pipeline registers. Available pipeline stages = 0, Minimum required pipeline stages = 1 " Es könnte nun entweder sein, dass das xpm-template selbst dazu führt, dass eine externe Pipeline am Ausgang nichts nützt (weil da drin z.B. wegen AXI-Stream-Handshake verschiedene Ausgangsregister gemuxt werden und deswegen keine lineare Pipeline intern vorhanden ist). Oder es könnte sein, dass ich das einfach anders machen muss. Evtl. kann da jemand helfen? Um die Bedingung nochmal zu wiederholen: ich möchte das xpm-template verwenden. Andere Lösungsansätze ohne xpm sind mir klar. [1] https://docs.xilinx.com/r/en-US/ug974-vivado-ultrascale-libraries/XPM_MEMORY_SPRAM [2] https://docs.xilinx.com/r/en-US/ug974-vivado-ultrascale-libraries/XPM_FIFO_AXIS
Wir hatten vor einiger Zeit dasselbe Problem. Es braucht einen AXIS-FIFO mit Berücksichtigung des Ready vom Verbraucher. Der muss auch gepipelined werden. Was anderes: Du bist seit 2007 angemeldet, hast aber nur 4 Beiträge geschrieben?
M. T. schrieb: > Wir hatten vor einiger Zeit dasselbe Problem. Es braucht einen AXIS-FIFO > mit Berücksichtigung des Ready vom Verbraucher. Der muss auch > gepipelined werden. Das hört sich so an, als habt ihr es letztendlich nicht mit dem xpm-template gelöst. Ich habe eine externen Pipeline mit und ohne gepipelinetes tready versucht, macht keinen Unterschied, Vivado nimmt keinen URAM. > > Du bist seit 2007 angemeldet, hast aber nur 4 Beiträge geschrieben? Seit man nur noch mit Login schreiben kann, nutze ich den Account wieder. Ansonsten habe ich die letzten Jahre ab und zu mal etwas als unangemeldeter Nutzer "VHDL hotline" geschrieben.
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.