BRAM을 사용하여 데이터를 저장/읽기 위해 IP를 쓰고 싶습니다.포트를 bram 인터페이스에 연결하십시오.
내가 지금까지 RAM으로 메모리 매핑 된 데이터를 읽고 AXIS를 얻으려면 (C) DMA를 사용하고있다.
그런 다음 VHDL에 새로운 소스 파일을 만들어서 AXIS를 매력적으로 활용했습니다. 반대쪽에서 BRAM 인터페이스를 만들고 싶지만 vivado는 BRAM 인터페이스 용 포트를 결합하지 않습니다.
"vivado/data/ip/interfaces/bram_v1_0"폴더에 "bram_rtl.xml"파일이 있습니다. xml 파일에 사용 된 포트를 사용하려고했습니다. 특히 "필수"태그가있는 포트.
AXI BRAM 컨트롤러가 올바르게 결합되어 있으므로 실수를 저 지르지 않았을 것입니다. AXI BRAM 컨트롤러와 같은 이름을 사용하면 작동하지 않습니다.
내 VHDL은 다음과 같습니다 : 나는 리눅스에 Zynq 7020에 대한 vivado 2016.4을 사용하고
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;
.
vivado에서 내 포트를 BRAM 인터페이스로 인식하는 데 VHDL 코드에 누락 된 것이 있습니까? 아니면이 버전의 버그입니까?
다음은 전체 작업 및 합성 VHDL 코드 어떤 아이디어
\ Vivado \ 2016.4 \ data \ ip \ xilinx \ axi_bram_ctrl_v4_0 \ component.xml을 보셨습니까? 포트가 연결되는 방식을 볼 수 있습니다. – JHBonarius
나는 그것을 시험했다. 그러나 불행하게도 이름은 벌써 시험해 보았던 같은 것이다. IP에 vhdl 코드를 패키지로 만들고 component.xml을 만드는 경우에만 가능합니다. –
속성을 추가해야합니다 (예 :'ATTRIBUTE X_INTERFACE_INFO OF dout : SIGNAL IS "xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT";). 자일링스의 BRAM 포트로 추측된다. 또는 IP를 생성하고 기존의 자일링스 인터페이스에 BRAM 포트를 매핑하십시오. –