billidean 0 22 ноября, 2012 Опубликовано 22 ноября, 2012 · Жалоба Доброго времени суток всем. Пытаюсь разобраться с приемником/передатчиком SDI-ядра. Задача простая: передать и принять любые случайные данные по каналу SDI в режиме 3G. Ядро SDI может содержать в себе модуль протокола, для передачи/приема видео, но мне он не нужен, поэтому буду использовать только модули приемника/передатчика ядра. В МегаВизарде сгенерил передатчик и приемник SDI: COMPONENT tx IS GENERIC ( ... ); PORT ( rst_tx : IN STD_LOGIC; tx_pclk : IN STD_LOGIC; tx_serial_refclk : IN STD_LOGIC; txdata : IN STD_LOGIC_VECTOR (19 DOWNTO 0); gxb4_cal_clk : IN STD_LOGIC; sdi_reconfig_clk : IN STD_LOGIC; sdi_reconfig_togxb : IN STD_LOGIC_VECTOR (3 DOWNTO 0); sdi_gxb_powerdown : IN STD_LOGIC; sdi_tx : OUT STD_LOGIC_VECTOR (0 DOWNTO 0); tx_status : OUT STD_LOGIC_VECTOR (0 DOWNTO 0); gxb_tx_clkout : OUT STD_LOGIC_VECTOR (0 DOWNTO 0); sdi_reconfig_fromgxb : OUT STD_LOGIC_VECTOR (16 DOWNTO 0) ); END tx; и COMPONENT rx IS GENERIC ( ... ); PORT ( rst_rx : IN STD_LOGIC; rx_serial_refclk : IN STD_LOGIC; sdi_rx : IN STD_LOGIC_VECTOR (0 DOWNTO 0); refclk_rate : IN STD_LOGIC; rx_protocol_locked : IN STD_LOGIC_VECTOR (0 DOWNTO 0); rx_xcvr_trs_lock : IN STD_LOGIC_VECTOR (0 DOWNTO 0); gxb4_cal_clk : IN STD_LOGIC; sdi_reconfig_clk : IN STD_LOGIC; sdi_reconfig_togxb : IN STD_LOGIC_VECTOR (3 DOWNTO 0); sdi_gxb_powerdown : IN STD_LOGIC; rxdata : OUT STD_LOGIC_VECTOR (19 DOWNTO 0); rx_data_valid_out : OUT STD_LOGIC_VECTOR (1 DOWNTO 0); rx_clk : OUT STD_LOGIC; rx_status : OUT STD_LOGIC_VECTOR (10 DOWNTO 0); detected_rate : OUT STD_LOGIC; sdi_reconfig_fromgxb : OUT STD_LOGIC_VECTOR (16 DOWNTO 0); rx_std : OUT STD_LOGIC_VECTOR (1 DOWNTO 0) ); END rx; Режим их использования - 3G. При управлении передатчиком на вход "rst_tx" подаем '0', на входы "tx_pclk, tx_serial_refclk" подаем 148.5МГц, на вход "txdata" будем засылать наши данные, вход "sdi_tx" подключаем наружу на микросхему драйвера. Совершенно не понятно, что делать с входами "gxb4_cal_clk, sdi_reconfig_clk, sdi_reconfig_togxb". В доке "ug_sdi" о них ничего подробного не написано. Для приемника на уровне интуиции понятно, что на вход "rx_protocol_locked" и на "rx_xcvr_trs_lock" подать '1'. Как и зачем мне использовать выход "sdi_reconfig_fromgxb" мне вообще не понятно. Пожалуйста, подскажите, где мне об этом почитать, или что мне с этими выводами делать. Лучше, конечно, ответы от тех, кто использовал ядро-SDI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cordroy 0 22 ноября, 2012 Опубликовано 22 ноября, 2012 · Жалоба Совершенно не понятно, что делать с входами "gxb4_cal_clk, sdi_reconfig_clk, sdi_reconfig_togxb". В доке "ug_sdi" о них ничего подробного не написано. Для приемника на уровне интуиции понятно, что на вход "rx_protocol_locked" и на "rx_xcvr_trs_lock" подать '1'. Как и зачем мне использовать выход "sdi_reconfig_fromgxb" мне вообще не понятно. Пожалуйста, подскажите, где мне об этом почитать, или что мне с этими выводами делать. Лучше, конечно, ответы от тех, кто использовал ядро-SDI. Проще всего будет взять пример Альтеры и содрать оттуда код, там есть и реконфиг. Когда разберетесь/запустите, будете по-тихоньку выкидывать ненужное. Тут PDF с описанием SDI Reference design Тут можно скачать сам дизайн и код примера для Arria II Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 28 ноября, 2012 Опубликовано 28 ноября, 2012 (изменено) · Жалоба Квартус 11.1 SP2. Выходные ноги проекта: ext_sdi_tx : out std_logic_vector (0 downto 0); ext_sdi_rx : in std_logic_vector (0 downto 0); подключаю к выводам: sdi_tx : out std_logic_vector (0 downto 0); sdi_rx : in std_logic_vector (0 downto 0); sdi_tx => ext_sdi_tx, sdi_rx => ext_sdi_rx, В .tcl-файле прописал: set_location_assignment PIN_K4 -to ext_sdi_tx[0] set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to ext_sdi_tx[0] set_location_assignment PIN_L2 -to ext_sdi_rx[0] set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to ext_sdi_rx[0] При компиляции получаю: В чем может быть проблема?? Изменено 28 ноября, 2012 пользователем billidean Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 29 ноября, 2012 Опубликовано 29 ноября, 2012 · Жалоба Квартус 11.1 SP2. Выходные ноги проекта: ext_sdi_tx : out std_logic_vector (0 downto 0); ext_sdi_rx : in std_logic_vector (0 downto 0); подключаю к выводам: sdi_tx : out std_logic_vector (0 downto 0); sdi_rx : in std_logic_vector (0 downto 0); sdi_tx => ext_sdi_tx, sdi_rx => ext_sdi_rx, В .tcl-файле прописал: set_location_assignment PIN_K4 -to ext_sdi_tx[0] set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to ext_sdi_tx[0] set_location_assignment PIN_L2 -to ext_sdi_rx[0] set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to ext_sdi_rx[0] При компиляции получаю: В чем может быть проблема?? С этим разобрался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться