Forum: FPGA, VHDL & Co. Daten vom NIOS zu einem VHDL-Block schicken


von Mouhamadou T. (mouhamadou_t)


Lesenswert?

Hi Leute,
ich soll Zahlen nacheinander an den Eingänge eines Vhdl-Blocks schicken. 
Die Zahlen werden im NIOS Editor("c"-code)geschrieben. Wie kann ich das 
realisieren/implementieren. Hat jemand Ahnung?
Danke im Voraus

von mki (Gast)


Lesenswert?

Du bindest in deiner NIOS CPU einen PIO ein.
Dort kannst du dann mit
IOWR_ALTERA_AVALON_PIO_DATA(Deine_PIO_BASE,deineDaten)
deine Daten an deinem Block schicken.

von Mouhamadou T. (mouhamadou_t)


Lesenswert?

hi mki,
zuerst danke für deinen Vorschlag. Ich habe schon einen PIO an dem NIOS 
CORE angelegt. Aber, wo finde ich die Funktion 
"IOWR_ALTERA_AVALON_PIO_DATA(,)"? Die gibt´s nicht in meiner Bibliothek 
"system.h", obwohl ich mit dem Altera-Software arbeite.

von mki (Gast)


Lesenswert?

Du benötigst da noch die "altera_avalon_pio_regs.h". Ich denk da steht 
das drinne - ich habe es gerade nicht vor mir.

von Matthias G. (mgottke)


Lesenswert?

Mouhamadou T. schrieb:
> Wie kann ich das
> realisieren/implementieren.

Alternativ zur Pio kannst Du auch selbst ein Modul mit einer 
Avalon-Schnittstelle schreiben. Such mal bei Altera nach "Avalon 
Interface Specifications". Die Schnittstelle ist denkbar einfach. Wenn 
Du das ganze im SOPC-Builder zusammen klickst, dann entstehen auch 
gleich die Bibliotheken für die Software.

von phreak (Gast)


Lesenswert?

Hallo, habe gerade ein ähnliches Problem.

ich habe ein Nios-Sytem mit PIO als output.
Das habe ich verbunden mit den LEDs
Code ist folgender:

#define LED_BASE 0xbase adresse aus dem sopc
...
main()
..
IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,0x10);


aber nichts passiert.
Die pio ist output also nicht bidirectional.

An was muss ich denn noch denken?

von phreak (Gast)


Lesenswert?

achso, noch was
die LEDs leuchten immer, schon von anfang an bevor das Programm in nios 
eingespiel ist, danach auch.(warum?)
Egal was für einen Wert ich setze ändert sich nichts.

von Mouhamadou_T (Gast)


Lesenswert?

Versuch mal rückzusetzen. Kann sein , daß es die ganze Zeit gesetzt ist:
zB:

if (gut){
     IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,0x10);// LED an
else
     IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,0x00);// LED aus
}

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.