реклама на сайте
подробности

 
 
> Проблема со скремблированием, Cyclone IV E: EP4CE6E22C8
Max42
сообщение Mar 4 2013, 11:09
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 16-02-13
Из: Ленинградушка
Пользователь №: 75 653



Задача: передать 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 или САПРа нужно снять/поставить "галочку", дабы Квартус не ворчал?

Сообщение отредактировал Max42 - Mar 4 2013, 11:10
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
maksimp
сообщение Mar 4 2013, 17:14
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Может быть потому что аппаратные блоки, соответствующие примитивам ALTLVDS_TX и ALTLVDS_RX, в реальной ПЛИС соединены с LVDS приёмопередатчиком без возможности коммутации.
Поэтому он требует и на схеме так же изобразить.
То есть вам нужно или сериализатор и десериализатор самому ручками делать (если по быстродействию пройдёт) или скремблирование делать в параллельном коде, до сериализатора и после десериализатора.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 11:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.02156 секунд с 7
ELECTRONIX ©2004-2016