axi4 simples beispiel: Slave Eingänge

Gast #6933091
Lesenswert?

Ich möchte AXI4 etwas nachvollziehen können und teste gerade ein 
Beispiel in Vivado.

Habe anstatt eines multipliers (Beispiel unten), einen Adder verwendet.
Wollte Eingänge A,B und Ausgang O vom Typ bit haben. Aber slv_reg0 ist 
ein 32-Bit std_logic_vector.

 * Sollten AXI4-Slaves immer 32-Bit große I/O haben?
 * Was soll denn slv_reg0 eigentlich sein.
 * ist der clk-Eingang immer notwendig bei AXI4 ?

Danke

https://www.fpgadeveloper.com/2014/08/creating-a-custom-ip-block-in-vivado.html/
folgendes soll vor begin:
1
signal multiplier_out : std_logic_vector(31 downto 0);
2
 
3
component multiplier
4
port (
5
  clk: in std_logic;
6
  a: in std_logic_VECTOR(15 downto 0);
7
  b: in std_logic_VECTOR(15 downto 0);
8
  p: out std_logic_VECTOR(31 downto 0));
9
end component;
folgendes soll zu -- Add user logic here
1
multiplier_0 : multiplier
2
port map (
3
  clk => S_AXI_ACLK,
4
  a => slv_reg0(31 downto 16),
5
  b => slv_reg0(15 downto 0),
6
  p => multiplier_out);
Gast #6933362
Lesenswert?

Zum Verständnis: Es gibt drei Arten von AXI:

AXI-Stream
AXI-Lite
AXI(-Full)

AXI-Stream ist, wie Gustl schon schreibt das einfachste. Und wenn man 
Daten von A nach B übertragen will völlig ausreichend. Vereinfacht 
gesagt gibt es das Datensignal und zwei Flags (tValid & tReady), mit 
denen Sender und Empfänger jeweils sagen, ob sie gerade 
Sende-/Empfangsbereit sind. Dazu können dann noch weitere Signale wie 
tLast (markiert das Ende eines "Pakets"), tUser usw. kommen, die man 
aber nicht unbedingt bespielen muss um AXI-Stream zu verwenden.

AXI-Lite ist eine vereinfachte Variante von AXI(-Full), hat aber schon 
sehr viel mehr Signale, die man "verwalten" muss. Dafür bekommt man hier 
Adressierte Zugriffe und Bidirektionale Übertragung.

Bei AXI-Full wird es dann noch mal komplizierter - das sollte man nur 
anfassen wenn man es wirklich braucht ;-)
Gast #6933409
Lesenswert?

Falls du irgendwann dann doch mal AXI-Lite oder AXI-Full benötigst, 
hilft das Wissen über AXI-Stream auch weiter, die beiden bestehen 
nämlich praktisch gesehen aus mehreren AXI-Streams mit diversen 
Zusatzsignalen, die dann aber natürlich noch untereinander diverse 
Abhängigkeiten haben. Ohne die Abhängigkeiten wäre es einfach ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren