Ich möchte eine IP schreiben, um Daten zu speichern/lesen mit BRAM.kombinieren Ports zu Bram-Schnittstelle
Was ich bis jetzt habe, ist die Verwendung der (C) DMA, um gespeicherte Daten aus dem RAM zu lesen und eine AXIS zu bekommen.
Dann habe ich eine neue Quelldatei in VHDL erstellt, um die AXIS auf einer Seite zu akzeptieren, die wie ein Zauber wirkte. Auf der anderen Seite möchte ich eine BRAM-Schnittstelle erstellen, aber vivado kombiniert keine Ports für die BRAM-Schnittstelle.
Im Ordner "vivado/data/ip/interfaces/bram_v1_0" befindet sich eine Datei "bram_rtl.xml". Ich habe versucht, die in der XML-Datei verwendeten Ports zu verwenden. Vor allem die Ports mit dem "erforderlichen" Tag.
Der AXI BRAM Controller kombiniert sie richtig, also bin ich ziemlich sicher, dass ich einen Fehler gemacht habe. Die gleiche Benennung wie der AXI BRAM Controller funktioniert auch nicht.
Meine VHDL sieht wie folgt aus:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity AXIS_TO_BRAM is
generic (
addr_size : integer range 1 to 12 := 10
);
Port (
--axistream
tdata : in std_logic_vector(31 downto 0);
tkeep : in std_logic_vector(3 downto 0);
tlast : in std_logic;
tready : out std_logic;
tvalid : in std_logic;
aclk : in std_logic;
--BRAM
en : out std_logic;
dout : in std_logic_vector(31 downto 0);
din : out std_logic_vector(31 downto 0);
we : out std_logic;
addr : out std_logic_vector(addr_size-1 downto 0);
clk : out std_logic;
rst : out std_logic);
end AXIS_TO_BRAM;
architecture Behavioral of AXIS_TO_BRAM is
begin
end Behavioral;
I vivado 2016,4 für Zynq 7020 auf Linux verwende.
Gibt es etwas in der VHDL-Code fehlt vivado erkennen meine Ports als BRAM-Schnittstelle oder ist das ein Fehler in dieser Version?
Vielen Dank für alle Ideen
würden Sie \ Vivado aussehen \ 2016,4 \ data \ ip \ Xilinx \ axi_bram_ctrl_v4_0 \ component.xml? Dort können Sie sehen, wie die Ports verbunden sind. – JHBonarius
Ich habe das versucht, aber leider sind die Namen die gleichen, die ich bereits versucht habe. Vielleicht ist dies nur möglich, wenn ich den vhdl-Code in einer IP verpacken und eine component.xml dafür erstellen würde. –
Sie müssen Attribute hinzufügen, etwa wie ATTRIBUTE X_INTERFACE_INFO OF dout: SIGNAL IST xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT ";" in Ihrer Architektur. Dann wird es als Xilinx BRAM-Port abgeleitet. Oder erstellen Sie eine IP-Adresse und ordnen Sie Ihre BRAM-Ports der vorhandenen Xilinx-Schnittstelle zu –