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

 
 
 
Reply to this topicStart new topic
> Сериализатор на Циклон2, сериализатор путает разряды
Raw
сообщение Apr 8 2010, 13:28
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746



при использовании мегафункции altlvds пара передатчик приемник - на приеме путаютс яразряды передаваемого когда между собой - обычно парами
причем реконфигурация каждый раз приводит к разным вариантам - то так то эдак - иногда правильно

Циклон 2 ep2c5SQC144
50 МГц по двум каналам передаю 14 разрядов - по 7 на канал. В плисе используются и приемник и передатчик. Пробовал и сам на себя - на другую плату - одно и тоже - путаютс яразряды ....
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 8 2010, 13:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Raw
1) пробовали это же самое симулировать ?
2) пробовали понизить частоту ?
3) пробовали передавать другое кол-во разрядов на канал ?
Go to the top of the page
 
+Quote Post
Raw
сообщение Apr 8 2010, 13:34
Сообщение #3





Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746



да пробовал разные варианты
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 8 2010, 13:36
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



А что в симуляции ?
Go to the top of the page
 
+Quote Post
Raw
сообщение Apr 8 2010, 13:45
Сообщение #5





Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746



А что в симуляции ?

приемник не симулировал , а передатчик все понятно показывает где какие разряды - все вроде
логично



причем работает все четко стабильно - но разряды идут парами - два разряда верно - ну типа 0178239А45.... и порядок после перезагрузки меняется
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 8 2010, 14:03
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Ну как это что в симуляции: сделайте 2 дизайна, засуньте в ТБ, дайти им клок и посомтрите что у вас в RTL-е laughing.gif
Вдруг у вас там то же самое rolleyes.gif
А если там всё нормально, тогда нужно клоки и данные осцилом просматривать при маленькой частоте
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Apr 8 2010, 15:01
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



делал на стратикс 4 и на частоте 500 smile.gif
там и на передаче и на приеме я вручную конвертер ставил перед/после altlvds

Код
assign data_lvds_tx={link_dat[13],link_dat[6],link_dat[12],link_dat[5],
        link_dat[11],link_dat[4],link_dat[10],link_dat[3],
        link_dat[9],link_dat[2],link_dat[8],link_dat[1],
        link_dat[7],link_dat[0]}; - на передаче до altlvds

always @(posedge link_clk) link_dat<={link_data_14[13],link_data_14[11],link_data_14[9],link_data_14[7],
        link_data_14[5],link_data_14[3],link_data_14[1],link_data_14[12],
        link_data_14[10],link_data_14[8],link_data_14[6],link_data_14[4],
        link_data_14[2],link_data_14[0]}; - на приеме после altlvds


На моделировании у меня все работало, можете попробовать.
Порядок компоновки можно вообщето посмотреть, если открыть на RTL блок altlvds

Сообщение отредактировал bogaev_roman - Apr 8 2010, 15:21
Go to the top of the page
 
+Quote Post
yakub_EZ
сообщение Apr 8 2010, 17:57
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252



Сделал на Cyclone3 5c144. Функция altlvds. Сериалайзер и десериалайзер загнал в один кристалл. Соединил вход с выходом советским выводным МЛТ резистором 27 Ом. Получил перетасованные разряды. Перестановка при каждой компиляции была, как мне казалось, со сдвигом - типа применения ассемблерной функции ror на 2-4 разряда.
Через резистор удалось 400 Мбод прогнать без проблем, на больших частотах появляется шум.
Go to the top of the page
 
+Quote Post
murmel1
сообщение Apr 8 2010, 19:05
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 2-11-08
Из: Ростов-на-Дону
Пользователь №: 41 331



Именно так оно и работает. Почему - не знаю, но при использовании ALT_DDR или ALT_LVDS всегда после петли приемник-передатчик разряды переставленны (попарно на каждой линии). Так и на симуляции и в жизни.
С этой штукой я столкнулся еще лет 5 назад, на первом циклоне. Сейчас работаю со Stratix 2 GX - все то же самое.
Так что, просто подправьте код, чтобы переставить их обратно и не беспокойтесь - преемственность подобного ... бага ? сохраняется.
Go to the top of the page
 
+Quote Post
Raw
сообщение Apr 9 2010, 06:05
Сообщение #10





Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746



Именно так оно и работает. Почему - не знаю, но при использовании ALT_DDR или ALT_LVDS всегда после петли приемник-передатчик разряды переставленны (попарно на каждой линии). Так и на симуляции и в жизни.
С этой штукой я столкнулся еще лет 5 назад, на первом циклоне. Сейчас работаю со Stratix 2 GX - все то же самое.
Так что, просто подправьте код, чтобы переставить их обратно и не беспокойтесь - преемственность подобного ... бага ? сохраняется.

Спасибо за поддержку - но у меня при каждой перезагрузке через Jtag расстановка меняется - вот только с конф. микросхемы еще не пробовал, может там есть стабильность?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Apr 9 2010, 09:04
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Насколько я помню у Альтеры нет аппаратных сериализаторов, и ALT_LVDS реализована на рассыпухе. Поэтому, когда передо мной встала однажды задача сделать что-то подобное - я написал подобие этой мегафункции сам (там и делать-то вобщем нечего, просто нужна аккуратность) и не имел проблем. Частота была 245МГц DDR на третьем Циклоне.
Go to the top of the page
 
+Quote Post
KWIer
сообщение Apr 10 2010, 04:54
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 4-02-07
Из: Казань
Пользователь №: 25 041



Цитата(DmitryR @ Apr 9 2010, 12:19) *
Насколько я помню у Альтеры нет аппаратных сериализаторов, и ALT_LVDS реализована на рассыпухе. Поэтому, когда передо мной встала однажды задача сделать что-то подобное - я написал подобие этой мегафункции сам (там и делать-то вобщем нечего, просто нужна аккуратность) и не имел проблем. Частота была 245МГц DDR на третьем Циклоне.

DmitryR, а не могли бы вы выложить здесь этот код? в большей степени интересует десериализатор, но если вы писали только сериализатор, то и его код очень бы мне помог!
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Apr 10 2010, 09:17
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата
Насколько я помню у Альтеры нет аппаратных сериализаторов, и ALT_LVDS реализована на рассыпухе.

Если мегафункцию использовать, то квартус сериализатор/десериализатор в конкретное место поставит (для стратикс4 сам проверял), хотя можно самому собрать на обычных триггерах и щелкать данные по фронту и срезу.

KWIer. Откройте RTL viewer и посмотрите как квартус мегафункцию реализует, там все просто и понятно, Вам просто надо будет разряды по другому скомпоновать.
Go to the top of the page
 
+Quote Post
Raw
сообщение Apr 12 2010, 11:16
Сообщение #14





Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746



Спасибо за совет... так и сделал. организовал сер-р и десериал-р сам на рассыпухе. Все работает отлично. А на родной мегафункции alttx altrx так так и не смог добиться стабильности назначения разрядов. причем каждая перезагрузка приводит к новой расстановке///
Go to the top of the page
 
+Quote Post

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

 


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


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