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