Max42 0 4 марта, 2013 Опубликовано 4 марта, 2013 (изменено) · Жалоба Задача: передать 10-разрядные данные с одной Альтеры на другую со скоростью 27 Мбит/с. Представляю это так: Альтера-передатчик 10-разрядный поток данных(27Мбит/с) -> сериализатор(270Мбит/с) -> скремблирование(270Мбит/с) -> выходной порт(270Мбит/с) Альтера-приемник входной порт(270Мбит/с) -> дескремблирование(270Мбит/с) -> десериализатор(27Мбит/с) -> 10-разрядный поток данных(27Мбит/с) Для операции сериализации/десериализации использую МегаВизард и функции ALTLVDS_TX и ALTLVDS_RX. Скремблирование - на триггерах и XOR по SMPTE 259M. И вот тут Квартус выдаёт ошибку: Error (15873): Output port DATAOUT of DDIO_OUT primitive "Ser:inst1|altlvds_tx:ALTLVDS_TX_component|Ser_lvds_tx:auto_generated|Ser_ddio_out:ddio_out|ddio_outa_0" must drive input port I of an I/O OBUF primitive Error: Quartus II 32-bit Analysis & Synthesis was unsuccessful. 1 error, 33 warnings Когда делаю на 10Мбит/с и без операции скремблирования - всё работает как часы. Ошибка возникает при добавлении любого лог элемента между выходом сериализатора и выходным портом. Замечу, что на приемной стороне между входным портом и десериализатором никакой ошибки не возникает ни при каких условиях. Думаю, как вариант, можно самому реализовать функцию сериализации на том же VHDL, но не уверен что тогда ПЛИС 270Мбит/с вытянет. Может быть где-нибудь в настройках ALTLVDS или САПРа нужно снять/поставить "галочку", дабы Квартус не ворчал? Изменено 4 марта, 2013 пользователем Max42 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр77 1 4 марта, 2013 Опубликовано 4 марта, 2013 · Жалоба А задействоанный банк каким напряжением питается? Может надо выставлять напряжения по требованиям LVDS или других скоростных шин.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maksimp 0 4 марта, 2013 Опубликовано 4 марта, 2013 · Жалоба Может быть потому что аппаратные блоки, соответствующие примитивам ALTLVDS_TX и ALTLVDS_RX, в реальной ПЛИС соединены с LVDS приёмопередатчиком без возможности коммутации. Поэтому он требует и на схеме так же изобразить. То есть вам нужно или сериализатор и десериализатор самому ручками делать (если по быстродействию пройдёт) или скремблирование делать в параллельном коде, до сериализатора и после десериализатора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Max42 0 5 марта, 2013 Опубликовано 5 марта, 2013 · Жалоба А задействоанный банк каким напряжением питается? Может надо выставлять напряжения по требованиям LVDS или других скоростных шин.. Это уже была бы аппаратная проблема. Если вы имеете ввиду "I/O Standard" в ПинПланере - я выставляю Bus LVDS. скремблирование делать в параллельном коде, до сериализатора и после десериализатора Любопытно, а такое вообще практикуют ?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndrewS6 0 6 марта, 2013 Опубликовано 6 марта, 2013 · Жалоба Любопытно, а такое вообще практикуют ?) Вообще да. Для ускорения разработки можете воспользоваться генератором параллельного скремблера http://outputlogic.com/?page_id=205 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Max42 0 6 марта, 2013 Опубликовано 6 марта, 2013 · Жалоба Благодарю за подсказки. Описал всё на VHDL, проект компилиуется, ошибок не возникает. Будет ли работать в железе - увидим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться