Forum: FPGA, VHDL & Co. Simpler Avaloon Slave


von Günter (. (dl4mea)


Lesenswert?

Hallo,

ich suche jetzt schon länger nach einer passenden Lösung, aber bei 
einigen Vorschlägen fehlt mir das Verständnis, oder ich schaffs nicht 
aufs Gleis zu kommen.

Ich habe ein CycloneIII mit einem Logikteil und einem NIOS-SoC. Ich 
möchte ein in der Logik implementiertes FIFO lediglich lesend 
ansprechen, so daß bei jedem Lesen auf eine Adresse vom Nios auch ein 
FIFO-Readstrobe erzeugt wird. D.h. eigentlich Funktion wie ein 
GPIO-Input, nur eben zusätzlich der Readstrobe. Eine zweite Adresse in 
diesem Interface würde ich mir so gestalten daß dort der FIFO-Füllstand 
vom NIOS abgelesen werden kann. Letztlich klingt das nicht nach 
besonders komplizierter oder aufwendiger Logik.

Ich denke es geht über die Custom Device von QSYS. Wie kann ich hier ein 
Template erstellen, welches ich dann selbst mit Code füllen kann.
Oder gibt es irgendwo schon ein simples Beispiel für ein eigenes Device 
am Avalon-Bus?

Zweite Möglichkeit erscheint mir die QSYS-Komponente "On-Chip FIFO 
Memory", aber auch hier habe ich Verständnisprobleme wie man die externe 
Logik anschließen kann. Es erscheint mir hier aber etwas aufweniger zu 
sein, denn - richtiges Verständnis vorausgesetzt - hat dieses FIFO auf 
der Nicht-NIOS-Seite wohl Avalon-Eigenschaften, die man nachbilden muß.

Danke schon jetzt für eure Hilfe.

Günter

von Muggebadscher (Gast)


Lesenswert?

Hier ein Beispiel mit mehreren PWMs:
http://www.grigaitis.eu/?p=566

von Günter (. (dl4mea)


Lesenswert?

Hallo,

danke, das hat geholfen.

* Das Wichtigste: die Signale in Richtung Logik sind alle als 
conduit_end zu definieren

* Im "Interface"-Tab muß man den dazu passenden Reset eintragen - dafür 
gibt es ein Warning, also das findet man relativ problemlos

* Die Datenbusbreite habe ich aber erst durch manuelles Editieren des 
TCL ändern können. Wo das im Component Editor geht, habe ich nicht 
gefunden

* Das zugrundeliegende VHDL am besten erst dann generieren wenn das TCL 
stimmt. Sobald es Inkonsistenzen gibt, kommt es vor, daß der Component 
Editor zuvor definierte Signale beim Konsistenzcheck wieder löscht

* Im NIOS-System muß man dann die conduit-Signale nochmal extra 
exportieren, das sieht man aber auch gut im QSYS "HDL Example" Tab.

Ciao, Günter

PS: Kann einer der Moderatoren ggf. den Tippfehler im Titel ändern? Ich 
hab Avalon mit zwei 'o' geschrieben. Diese Wildwest-Variante ist noch in 
Entwicklung.

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.