|
|
  |
Сериализатор на Циклон2, сериализатор путает разряды |
|
|
|
Apr 8 2010, 13:28
|
Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746

|
при использовании мегафункции altlvds пара передатчик приемник - на приеме путаютс яразряды передаваемого когда между собой - обычно парами причем реконфигурация каждый раз приводит к разным вариантам - то так то эдак - иногда правильно
Циклон 2 ep2c5SQC144 50 МГц по двум каналам передаю 14 разрядов - по 7 на канал. В плисе используются и приемник и передатчик. Пробовал и сам на себя - на другую плату - одно и тоже - путаютс яразряды ....
|
|
|
|
|
Apr 8 2010, 13:34
|
Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746

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

|
А что в симуляции ?
приемник не симулировал , а передатчик все понятно показывает где какие разряды - все вроде логично
причем работает все четко стабильно - но разряды идут парами - два разряда верно - ну типа 0178239А45.... и порядок после перезагрузки меняется
|
|
|
|
|
Apr 8 2010, 15:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
делал на стратикс 4 и на частоте 500  там и на передаче и на приеме я вручную конвертер ставил перед/после 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
|
|
|
|
|
Apr 9 2010, 06:05
|
Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746

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

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

|
Цитата(DmitryR @ Apr 9 2010, 12:19)  Насколько я помню у Альтеры нет аппаратных сериализаторов, и ALT_LVDS реализована на рассыпухе. Поэтому, когда передо мной встала однажды задача сделать что-то подобное - я написал подобие этой мегафункции сам (там и делать-то вобщем нечего, просто нужна аккуратность) и не имел проблем. Частота была 245МГц DDR на третьем Циклоне. DmitryR, а не могли бы вы выложить здесь этот код? в большей степени интересует десериализатор, но если вы писали только сериализатор, то и его код очень бы мне помог!
|
|
|
|
|
Apr 10 2010, 09:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата Насколько я помню у Альтеры нет аппаратных сериализаторов, и ALT_LVDS реализована на рассыпухе. Если мегафункцию использовать, то квартус сериализатор/десериализатор в конкретное место поставит (для стратикс4 сам проверял), хотя можно самому собрать на обычных триггерах и щелкать данные по фронту и срезу. KWIer. Откройте RTL viewer и посмотрите как квартус мегафункцию реализует, там все просто и понятно, Вам просто надо будет разряды по другому скомпоновать.
|
|
|
|
|
Apr 12 2010, 11:16
|
Группа: Участник
Сообщений: 7
Регистрация: 17-10-05
Пользователь №: 9 746

|
Спасибо за совет... так и сделал. организовал сер-р и десериал-р сам на рассыпухе. Все работает отлично. А на родной мегафункции alttx altrx так так и не смог добиться стабильности назначения разрядов. причем каждая перезагрузка приводит к новой расстановке///
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|