Перейти к содержанию
    

Симуляция LVDS (Cyclone2) в Моделсим

Есть два Циклона2. В одном ALTLVDS_TX, во втором - просто вход LVDS соединен с выходом LVTTL. На этом выходе данные - совсем не те, что передаются первым Циклоном.

Все вроде просто как батон, но не работает....

Тестбенч такой:

 

`timescale 1 ps/ 1 ps

module lvdsrxtx_tb1();

 

reg r_TXCLK;

reg [19:0]r_TXIN;

 

wire w_TXCLK;

wire [19:0]w_TXIN;

 

wire [1:0]TXOUT;

wire TXOUTCLK;

wire TXCORECLK;

 

wire [1:0]LVDSRX;

wire RXOUTCLK;

 

assign {w_TXCLK, w_TXIN} = {r_TXCLK, r_TXIN};

 

LVDSsend1 tx (.TXCLK(w_TXCLK),

.TXIN(w_TXIN),

.TXOUT(TXOUT),

.TXOUTCLK(TXOUTCLK),

.TXCORECLK(TXCORECLK));

 

LVDSrx1 rcv (.RXCLK(TXOUTCLK),

.RXIN(TXOUT),

.RXDATA(LVDSRX),

.RXOUTCLK(RXOUTCLK));

 

 

 

initial

begin

r_TXCLK = 0;

r_TXIN = 0;

end

 

always #12500 r_TXCLK = ~r_TXCLK;

always @(posedge TXCORECLK)

r_TXIN = r_TXIN + 1;

 

endmodule

 

На выходе LVDSRX - совсем не то, что на TXOUT. Причем временами совпадает.

Как такое может быть???

 

Вообще, есть у кого-нибудь положительный опыт использования LVDS, ALTLVDS в Циклонах2?

Симулил ли кто это в Моделсиме?

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

B Циклонe 2 использую ALTLVDS RX, cкорость > 400 Mbps, проблем нет.

 

Почему Вы используете только ALTLVDS TX? Как синхронизировaны TX и RX?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужны оба, ТХ и RX, просто не работало, стал разбираться, дошел до того, что ТХ шлет нормально, а на RX - принимается не то. Даже в Моделсиме.

Выкинул ALTLVDS RX, оставил просто пины - все равно не то Моделсим показывает.

 

А какая версия Циклона 2 у вас? Имеется ввиду версия силикона. Есть версия А, с багами, и версия В, поправленная. Правда, в еррате про баги в LVDS ничего не сказано.

Версию можно определить так:

A Xβ Z ## ####

вот β и есть Die Revision.

 

 

Синхронизация ТХ и RX сделана так: у ТХ tx_outclock Divide factor = 10. Т.е. предполагается, что на каждые 10 бит данных будет 1 перепад клока. И ресивер сможет правильно "нарезать" входной битовый поток, зная, что на 10 бит есть 1 перепад клока.

Верно ли подобное рассуждение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавление:

 

При приеме пропадают короткие импульсы - 5нс, например (симуляция для 400 Мбит/с). На приаттаченной картинке это видно, если сравнить TXOUT[0] и LVDSRX[0].

 

Как будто скорости не хватает...

post-5782-1146737626_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, синхронизацию TX/RX я похоже понимал неправильно.

Поэтому про общий алгоритм спросил отдельно

http://electronix.ru/forum/index.php?showtopic=15776

 

Остается вопрос, почему в Моделсиме неправильно показываются сигналы на приемной стороне. Короткие (ничё себе - короткие! - 5нс) импульсы не видны...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какая версия Циклона 2 у вас? Имеется ввиду версия силикона. Есть версия А, с багами, и версия В, поправленная.

Не знаю, не обращал внимания.

 

Синхронизация ТХ и RX сделана так: у ТХ tx_outclock Divide factor = 10. Т.е. предполагается, что на каждые 10 бит данных будет 1 перепад клока. И ресивер сможет правильно "нарезать" входной битовый поток, зная, что на 10 бит есть 1 перепад клока.

Синхронизация между чипами должна передаваться отдельной линией. Если передавать "родную" частоту, придется прокладывать еще одну LVDS линию. Можно передавать частоту, поделенную на 8 или на 10, тогда удастся обойтись одиночным сигналом (CMOS), однако на приемном конце придется использовать PLL, а также точно настроить сдвиг фазы, чтобы биты сэмплировались посередине битового интервала.

 

Насчет того, как приемный поток нарезается на куски по 8 или 10 бит. Насколько я знаю, ALTLVDS нарезает как ему бог на душу положит. Я так и не смог найти, как заставить его синхронизировать байтную нарезку в нужный мне момент времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...