BRAMを使用してデータを保存/読み取りするためのIPを書きたいと思います。ポートをブラムインターフェイスに結合する
私がこれまでに(C)DMAを使用してRAMからメモリマップデータを読み込み、AXISを取得しています。
次にVHMLで新しいソースファイルを作成して、魅力的に機能していたAXISを受け入れました。 一方、私はBRAMインターフェイスを作成したいが、vivadoはBRAMインターフェイス用のポートを結合していない。
"vivado/data/ip/interfaces/bram_v1_0"フォルダには "bram_rtl.xml"というファイルがあります。 xmlファイルで使用されているポートを使用しようとしました。 特に、「required」タグを持つポート。
AXI BRAMコントローラはそれらを正しく組み合わせているので、私が間違っていると確信しています。 AXI BRAMコントローラのような同じ名前を使用しても機能しませんでした。
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;
私はLinux上でのZynq 7020用vivado 2016.4を使用しています:
私のVHDLは、このようになります。
VHDLコードに何か不足していますか?vivadoが私のポートをBRAMインターフェイスとして認識するか、これはこのバージョンのバグですか?
は、ここで任意のアイデア
\ Vivado \ 2016.4 \ data \ ip \ xilinx \ axi_bram_ctrl_v4_0 \ component.xmlを見ましたか?ポートがどのように接続されているかを見ることができます。 – JHBonarius
私はそれを試みましたが、残念ながら名前は私がすでに試みたものと同じです。 これは、vhdlコードをIPにパッケージ化し、そのためのcomponent.xmlを作成する場合にのみ可能です。 –
アトリビュートを追加する必要があります。アトリビュートを「dout:SIGNAL IS」xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT「;」などのアーキテクチャに追加する必要があります。その後、ザイリンクスのBRAMポートとして推測されます。またはIPを作成し、既存のザイリンクスインターフェイスにBRAMポートをマッピングします –