Forum: FPGA, VHDL & Co. Xilinx AXI Custom IP Core


von Kampi (Gast)


Lesenswert?

Hallo,

ich habe mal ein paar grundsätzliche Fragen zum AXI IP-Core von Xilinx.
Ich besitze seit einigen Wochen ein Zybo Board und wollte mir jetzt mal 
einen einfachen IP-Core bauen, welcher ein paar Werte bekommt, die Bits 
ein bisschen verändert und das Ergebnis dann auf den LEDs ausgibt.
Ich habe jetzt in meinem AXI Interface folgenden Custom Code eingefügt:
1
process( S_AXI_ACLK ) is
2
begin
3
    if (rising_edge (S_AXI_ACLK)) then
4
        if((slv_reg_wren = '1') and (axi_awaddr = "0000")) then
5
             Signal_Out <= S_AXI_WDATA(3 downto 0);
6
        elsif((slv_reg_wren = '1') and (axi_awaddr = "0001")) then
7
             Signal_Out <= "0101";
8
        end if;
9
    end if;
10
end process;

Die erste If-Abfrage funktioniert auch wunderbar...die zweite nicht. 
Jetzt verstehe ich noch nicht so ganz warum...
Ich habe ja einen AXI-Lite Core mit 4 Registern und einer Adressweite 
von C10000 - C1FFFF.
Wieso klappt es jetzt nicht wenn ich sage, dass die Adresse eins höher 
sein soll?
Ich greife über die normale Write-Funktion der Headerdatei vom SDK aus 
auf den Core zu:

LED_mWrite(Adresse, 0, 1)

Die erste Zahl ist die Adresse des Cores, die zweite der Adressoffset 
und die dritte die Daten.
Wenn ich den Adressoffset jetzt auf 1 setze sollte doch die Bedingung 
der zweiten If-Abfrage erfüllt sein oder sehe ich das falsch?

Und wofür sind dann die 4 Register in dem Core und wie kann ich die 
ansprechen? Oder werden die nur als "Zwischenspeicher" verwendet bis das 
Writesignal vom System kommt und die Logik die Daten ins Datenregister 
schreibt?
Hoffe hier kann mir einer bei den Fragen helfen :)
Arbeite leider noch nicht so lange mit FPGAs und habe dem entsprechend 
wenig / keine Erfahrung dazu.

Gruß
Daniel

von user (Gast)


Lesenswert?

wenn die register 4byte/32bit breit sind ist auch das addressbit um 2 
verschoben. versuche mal mit "0100" zu vergleichen

von Kampi (Gast)


Lesenswert?

Hallo,

danke für die Antwort :)
Nun klappt es!

Gruß
Daniel

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.