Я новичок в VHDL, и в настоящее время я работаю над применением нескольких фильтров для передачи hdmi через пример кода, который я нашел. Мне удалось заставить все работать ( HDMI Pass Through с RGB Switch Filter ), поэтому я пытаюсь перенести код на кусок IP с помощью Vivado.
Я объявил компонент и экземпляр следующим образом:
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 (Поведенческий) (TestIP_0.vhd)
Проблема в том, что я не могу найти это в своем каталоге IP и даже несмотря на то, что я могу успешно создать поток битов на моей схеме c, я ожидал найти свой IP-адрес между блоком DVI2RGB и RGB2DVI, но вместо этого мой 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;