Je veux écrire une adresse IP pour stocker/lire des données en utilisant BRAM. Ce que j'ai jusqu'à présent utilise le DMA (C) pour lire les données mappées en mémoire hors de la RAM et obtenir un AXIS.combiner les ports à l'interface bram
Ensuite, j'ai créé un nouveau fichier source en VHDL pour accepter l'AXIS d'un côté qui a fonctionné comme un charme. De l'autre côté je veux créer une interface BRAM mais vivado ne combine pas les ports pour l'interface BRAM.
Le fichier "bram_rtl.xml" est présent dans le dossier "vivado/data/ip/interfaces/bram_v1_0". J'ai essayé d'utiliser les ports utilisés dans le fichier xml. Surtout les ports avec l'étiquette "required".
Le contrôleur AXI BRAM les combine correctement, donc je suis sûr que j'ai fait une erreur. Utiliser le même nom comme le contrôleur AXI BRAM ne fonctionnait pas non plus.
Mon VHDL ressemble à ceci:
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;
J'utilise Vivado 2016,4 pour Zynq 7020 sur Linux.
Y at-il quelque chose qui manque dans le code VHDL pour que Vivado reconnaisse mes ports comme une interface BRAM ou est-ce un bug dans cette version?
votre Merci pour toutes les idées
Avez-vous regardé \ Vivado \ 2016.4 \ data \ ip \ Xilinx \ axi_bram_ctrl_v4_0 \ component.xml? Là, vous pouvez voir la façon dont les ports sont connectés. – JHBonarius
J'ai essayé mais malheureusement les noms sont les mêmes que j'ai déjà essayé. Peut-être que ce n'est possible que si je voudrais empaqueter le code vhdl dans un IP et créer un component.xml pour cela. –
Vous devez ajouter des attributs, quelque chose comme 'ATTRIBUT X_INTERFACE_INFO DE dout: SIGNAL EST « xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT »,' dans votre architecture. Ensuite, il sera déduit que le port BRAM de Xilinx. Ou créez une adresse IP et mappez vos ports BRAM à l'interface Xilinx existante –