导入自定义 VHDL IP 但无法使用或查看 IP
Importing Custom VHDL IP but not able to use or view IP
我是 VHDL 的新手,目前正在通过我找到的示例代码将一些过滤器应用于 hdmi 传递。我设法让一切正常工作 (),所以我正在尝试使用 Vivado 将代码迁移到一个 IP 上。
我这样声明了组件和实例:
component TestIP
port (
vid_pData : in std_logic_vector(23 downto 0);
vid_pData_new : out std_logic_vector(23 downto 0);
aRst : in std_logic;
PixelClk : in std_logic;
sw0 : in std_logic;
sw1 : in std_logic;
sw2 : in std_logic;
sw3 : in std_logic
);
TestIP_inst : TestIP
port map(
vid_pData => vid_pData_new,
aRst => async_reset_i,
PixelClk => pixelclk,
sw0 => sw0,
sw1 => sw1,
sw2 => sw2,
sw3 => sw3
);
其余代码保持不变。我使用 IP 向导打包 IP,并将其导出到默认 IP 存储库。它创建了一个名为 TestIP_0 的文件,其中包含两个文件,TestIP_0 和 Top_IP,都是 .vhd 文件。
在vivado的源层次结构中,我可以在IP中看到我的实例,TestIP_inst: TestIP(Behavioral)(TestIP_0.vhd)
问题是我在我的 IP 目录中找不到它,即使我可以在原理图上成功创建比特流,我也希望在 DVI2RGB 和 RGB2DVI 块之间找到我的 IP,但我的 IP 没有出现并且数据流没有将输入连接到输出,所以当我对电路板编程时,屏幕是黑色的。
对于这可能是一个愚蠢的问题,我提前表示歉意,但知道如何纠正这个问题吗?
谢谢
编辑
这是我的 TestIP
实体声明
entity TestIP is
Port ( vid_pData : in STD_LOGIC_Vector(23 downto 0);
vid_pData_new : out STD_LOGIC_Vector(23 downto 0);
aRst : in std_logic;
PixelClk : in std_logic;
sw0 : in STD_LOGIC;
sw1 : in STD_LOGIC;
sw2 : in STD_LOGIC;
sw3 : in STD_LOGIC);
end TestIP;
启动组件的正确方法是定义一组新的变量,它一定是混淆了,因为 vid_pData 和 vid_pData new 有多个实例,所以有没有 "order" 数据流。
TestIP_inst : TestIP
port map(
vid_pData1 => vid_pData,
vid_pData2 => vid_pData_new,
aRst => async_reset_i,
PixelClk => pixelclk,
sw0 => sw0,
sw1 => sw1,
sw2 => sw2,
sw3 => sw3
);
我是 VHDL 的新手,目前正在通过我找到的示例代码将一些过滤器应用于 hdmi 传递。我设法让一切正常工作 (
我这样声明了组件和实例:
component TestIP
port (
vid_pData : in std_logic_vector(23 downto 0);
vid_pData_new : out std_logic_vector(23 downto 0);
aRst : in std_logic;
PixelClk : in std_logic;
sw0 : in std_logic;
sw1 : in std_logic;
sw2 : in std_logic;
sw3 : in std_logic
);
TestIP_inst : TestIP
port map(
vid_pData => vid_pData_new,
aRst => async_reset_i,
PixelClk => pixelclk,
sw0 => sw0,
sw1 => sw1,
sw2 => sw2,
sw3 => sw3
);
其余代码保持不变。我使用 IP 向导打包 IP,并将其导出到默认 IP 存储库。它创建了一个名为 TestIP_0 的文件,其中包含两个文件,TestIP_0 和 Top_IP,都是 .vhd 文件。
在vivado的源层次结构中,我可以在IP中看到我的实例,TestIP_inst: TestIP(Behavioral)(TestIP_0.vhd)
问题是我在我的 IP 目录中找不到它,即使我可以在原理图上成功创建比特流,我也希望在 DVI2RGB 和 RGB2DVI 块之间找到我的 IP,但我的 IP 没有出现并且数据流没有将输入连接到输出,所以当我对电路板编程时,屏幕是黑色的。
对于这可能是一个愚蠢的问题,我提前表示歉意,但知道如何纠正这个问题吗?
谢谢
编辑 这是我的 TestIP
实体声明entity TestIP is
Port ( vid_pData : in STD_LOGIC_Vector(23 downto 0);
vid_pData_new : out STD_LOGIC_Vector(23 downto 0);
aRst : in std_logic;
PixelClk : in std_logic;
sw0 : in STD_LOGIC;
sw1 : in STD_LOGIC;
sw2 : in STD_LOGIC;
sw3 : in STD_LOGIC);
end TestIP;
启动组件的正确方法是定义一组新的变量,它一定是混淆了,因为 vid_pData 和 vid_pData new 有多个实例,所以有没有 "order" 数据流。
TestIP_inst : TestIP
port map(
vid_pData1 => vid_pData,
vid_pData2 => vid_pData_new,
aRst => async_reset_i,
PixelClk => pixelclk,
sw0 => sw0,
sw1 => sw1,
sw2 => sw2,
sw3 => sw3
);