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

 
 
> Проблема со скремблированием, 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
Ответов
Max42
сообщение Mar 5 2013, 09:56
Сообщение #2





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



Цитата
А задействоанный банк каким напряжением питается?
Может надо выставлять напряжения по требованиям LVDS или других скоростных шин..

Это уже была бы аппаратная проблема. Если вы имеете ввиду "I/O Standard" в ПинПланере - я выставляю Bus LVDS.

Цитата
скремблирование делать в параллельном коде, до сериализатора и после десериализатора

Любопытно, а такое вообще практикуют ?)
Go to the top of the page
 
+Quote Post



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

 


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


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