juvf 17 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба есть АЦП в выходом LVDS. Подключил к Cyclone III. Чтоб получить из этого LVDS пар. код в квартусе создал простой проект с altlvds_rx и pll (см рис). Написал тест имитирующий АЦП. Решил проверить в ModuleSim - принимается какойто мусор. Где можно почитать про altlvds_rx? Не понятно что за входы у altlvds_rx ? Какие клоки на них должны быть, какие фазовые сдвиги и относительно чего? Посмотреть бы временные диаграмы, как в даташите на АЦП. Что за выход в altlvds_rx ? Нужно два канала по 14 бит, у меня 1 канал 28 бит. Как его парсить? Как тока altlvds_rx получит кадр - через какое время этоти данные появятся на выходе? Когда данные на выходе валидны? Хендбук не помог :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 15 ноября, 2010 Опубликовано 15 ноября, 2010 (изменено) · Жалоба есть АЦП в выходом LVDS. Подключил к Cyclone III. Чтоб получить из этого LVDS пар. код в квартусе создал простой проект с altlvds_rx и pll (см рис). Написал тест имитирующий АЦП. Решил проверить в ModuleSim - принимается какойто мусор. Он не мусор принимает, там просто данные своеобразно перемешиваются (hi и low попарно), в хендбуке именно на мегафункции все подробно расписано и даже с времянками. Можете поисковиком посмотреть на форуме, вопрос вроде уже поднимался. http://www.altera.com/literature/ug/ug_altlvds.pdf - последний хандбук на allvds пример приема 18->36 lvds_in lvds_in( .rx_in(link_data), .rx_inclock(link_clk), .rx_out(link_data_36)); always @(posedge link_clk) link_dat<={link_data_36[35],link_data_36[33],link_data_36[31],link_data_36[29], link_data_36[27],link_data_36[25],link_data_36[23],link_data_36[21], link_data_36[19],link_data_36[17],link_data_36[15],link_data_36[13], link_data_36[11],link_data_36[9],link_data_36[7],link_data_36[5], link_data_36[3],link_data_36[1],link_data_36[34],link_data_36[32],link_data_36[30], link_data_36[28],link_data_36[26],link_data_36[24],link_data_36[22], link_data_36[20],link_data_36[18],link_data_36[16],link_data_36[14], link_data_36[12],link_data_36[10],link_data_36[8],link_data_36[6], link_data_36[4],link_data_36[2],link_data_36[0]}; Изменено 15 ноября, 2010 пользователем bogaev_roman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 ноября, 2010 Опубликовано 15 ноября, 2010 (изменено) · Жалоба Он не мусор принимает, там просто данные своеобразно перемешиваются (hi и low попарно), в хендбуке именно на мегафункции все подробно расписано и даже с времянками. Можете поисковиком посмотреть на форуме, вопрос вроде уже поднимался. Ну я подозреваю что где-то это всё разжёвано, и что где-то на это форуме наверно это уже обсуждалось. Но где? Не могу найти ни в хендбуке ни здесь (( ps Ну если бы ,,,, например посылаю на вход 0xcccc, в следующий кадр ~0xcccc, если бы данные на выходе были бы другие, но всегда одни и теже, например вместо 0xcccc всегда 0хаааа, то понятно, нада правильно выход распарсить, а у меня сейчас всегда данные разные. Не правильно както LVDS_RX рабортает, похоже я не правильно его клокирую Изменено 15 ноября, 2010 пользователем juvf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 15 ноября, 2010 Опубликовано 15 ноября, 2010 (изменено) · Жалоба Не правильно както LVDS_RX рабортает, похоже я не правильно его клокирую Для altrx на 2 сдвиньте тактируемую частоту на 90 градусов вперед и все должно работать. Вы на чем проверяете - функциональное моделирование? Изменено 15 ноября, 2010 пользователем bogaev_roman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба Для altrx на 2 сдвиньте тактируемую частоту на 90 градусов и все должно работать. А что такое "тактируемая частота"? На входе altlvds_rx три частоты - rx_inclock, rx_readclock, rx_syncclock.Какую из них двигать? в какую сторону? Вы на чем проверяете - функциональное моделирование? в ModelSim. Функциональное моделирование прошло вроде успешно. Сейчас делаю временное. После компиляции в квартусе командой Tools->Run EDA Simulation Tool->EDA Gate Level Simulation... Там выбираю модель и Run - запускается в ModelSim симуляция. после остановки симуляции некоторые биты на выходе altlvds_rx почему-то x. http://www.altera.com/literature/ug/ug_altlvds.pdf - последний хандбук на allvds Я его до дыр зачитал - не вижу я временных диаграмм с rx_inclock, rx_readclock, rx_syncclock и rx_in[]. Не понятно где и какие частоты должны быть, какие сдвиги? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба Недавно обвязывал АЦП с LVDS. Я вообще не ставил altlvds, там у АЦП был выход данных и выход с АЦП клока, который стробировал данные. Я просто поставил сдвиговый регистр и на входе поставил стандарт LVDS. Формировал клок по даташиту и все работает, правда мне хватало частоты клока 96 МГц, может у вас боле будет, и такое уже не прокатит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба Недавно обвязывал АЦП с LVDS. Я вообще не ставил altlvds, там у АЦП был выход данных и выход с АЦП клока, который стробировал данные. Я просто поставил сдвиговый регистр и на входе поставил стандарт LVDS. Формировал клок по даташиту и все работает, правда мне хватало частоты клока 96 МГц, может у вас боле будет, и такое уже не прокатит. да я тоже сначало сделал без altlvds_rx. Функциональное моделирование прошло на ура. А временное почему-то не позволяет ни чего посмотреть. боссы говорят - попробуй поднять altlvds_rx. 96 МГц - а это какой клок? У меня есть клок FR (слова клокирует, ну есть еще DCO - клокирует данные, но я его не пользую. я его могу получить из PLL) По переднему и заднему фронту выравнивание слова (см картинку выше). Данные в линии lvds приходят с частотой 100 МГц, т.е. FR получается 50 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 15 ноября, 2010 Опубликовано 15 ноября, 2010 (изменено) · Жалоба А что такое "тактируемая частота"? На входе altlvds_rx три частоты - rx_inclock, rx_readclock, rx_syncclock.Какую из них двигать? в какую сторону? в ModelSim. Функциональное моделирование прошло вроде успешно. Сейчас делаю временное. После компиляции в квартусе командой Tools->Run EDA Simulation Tool->EDA Gate Level Simulation... Там выбираю модель и Run - запускается в ModelSim симуляция. после остановки симуляции некоторые биты на выходе altlvds_rx почему-то x. Тактируемая частота - rx_inclock - ее вправо относительно данных, соотношения других частот выдает сам мегавизард, когда выставляется галка напротив use external pll. Я внешнюю частоту не использовал, данные гнал вместе с тактовой (тогда rx_readclock, rx_syncclock вообще нет), ее уже сдвигал на 90 градусов на внутренней pll. То что x - времянки не выполняются, смотрите временные ошибки, из-за них кстати у Вас билиберда да шине данных может быть. ЗЫ. Вы задачу поясните - что требуется сделать, а то после просмотра схемы и словесного описания появляется ощущение, что altlvds вообще неправильно используется. Изменено 15 ноября, 2010 пользователем bogaev_roman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба Вы задачу поясните - что требуется сделать, а то после просмотра схемы и словесного описания появляется ощущение, что altlvds вообще неправильно используется. Задача - АЦП прикрутить к ПЛИС. ацп ltc2267 http://cds.linear.com/docs/Datasheet/22687614f%20.pdf Это двухканальное АЦП с двумя выходами lvds для каждого канала, плюс выход фреймов и data clock out, так же lvds. Входная частота ENC 100 МГц. Частота выборки 100 МГц, т.е. биты в lvds (dco) с частотой 700 МГц. Есть готовый проект для подобного АЦП но сделан в 9-ом квартусе. там мегафункции ldvs немного другие. Но на схеме верхнего уровня, в 9-ке приемный модуль выглядит также , как на моем рисунке в 10-ке. Да и настройки внутри altlvds_rx, старался сделать такие же. Поднять lvds тупо скопировав проект из 9-ки не получилось. решил разобраться. Почему внешний pll? - Те, кто уже поднял lvds, в 9-ке, сказали обязательно нужно пользовать внешний pll. Типа потом во внешнем pll легко двигать фазы и легко добиться всяких временных задержек. А с внутренней плл это гемору по горло и не пройдет временное моделирование. поверил на слово. ну и за основу взял их проект. Если я что не так делаю, подскажите что не так, плиз. ps И всё таки, где-то должно быть написано как на выходе модуля altlvds_rx данные выходят. Где какие биты. Я опытным путем уже это выяснил. Но как же документация? Не могу найти где конкретно это описано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 7 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба Функциональное моделирование прошло вроде успешно. Сейчас делаю временное. После компиляции в квартусе командой Tools->Run EDA Simulation Tool->EDA Gate Level Simulation... А Вы проект только с мегафункцией pll в 10 квартусе создайте. (У меня gate моделирование не прошло). Многие на 9.1sp2 откатились. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба да я тоже сначало сделал без altlvds_rx. Функциональное моделирование прошло на ура. А временное почему-то не позволяет ни чего посмотреть. боссы говорят - попробуй поднять altlvds_rx. 96 МГц - а это какой клок? У меня есть клок FR (слова клокирует, ну есть еще DCO - клокирует данные, но я его не пользую. я его могу получить из PLL) По переднему и заднему фронту выравнивание слова (см картинку выше). Данные в линии lvds приходят с частотой 100 МГц, т.е. FR получается 50 МГц. Нет, у Вас такое не прокатит, 700 МГЦ по лвдс по моему только через altlvds. У меня АЦП похожий, DCO -96 МГц, FR (в моем случае CNV) - 5 МГц. :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба А Вы проект только с мегафункцией pll в 10 квартусе создайте. (У меня gate моделирование не прошло). Многие на 9.1sp2 откатились. ээээээ, я тока начал с квартусом работать,,,,,,,,, не понял что значит "только с мегафункцией pll". Я и так создаю с мегафункцией pll и altlvds_rx. Или вы предлагаете в 10-ке использовать только мегафункцию pll, а altlvds_rx не пользоваться и написать свою? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 7 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба ээээээ, я тока начал с квартусом работать,,,,,,,,, не понял что значит "только с мегафункцией pll". Я предложил прежде чем грешить на lvds, pll проверить на связке 10 квартус - альтера-моделсим. А если только начали, что мешает проектом предыдущим по полной оторваться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 16 ноября, 2010 Опубликовано 16 ноября, 2010 · Жалоба Я предложил прежде чем грешить на lvds, pll проверить на связке 10 квартус - альтера-моделсим.Ага, понял. Вобщем с PLL gate-моделирование проходит. Вытащил на графики входной клок и 3 выходных. По времени все так, как должно быть. А если только начали, что мешает проектом предыдущим по полной оторваться. Выставил я во внешнем pll теже задержки, что и в предыдущем проекте - на выходе altlvds_rx спрошные иксы. (( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 16 ноября, 2010 Опубликовано 16 ноября, 2010 (изменено) · Жалоба Ну вобщем победил я этот lvds. Без образцового проекта. Внешний PLL идёт лесом. вот как я его настроил (мож кому полезно будет, а может мне подсказка на будущее) Как подобное ацп подключить к ПЛИС СIII: Я делал в Quartus 10 SP1, на Win 7. Мож в ХР по другому нада 1)Визард мегафункция altlvds_rx просто так не вызвать. Идем в Пуск-Панель Управления-Языки и Региональные стандарты. Меняем Формат на Английские США. Некоторые рекомендуют дополнительно поменять разделитель с "," на ".", но у меня и с запятой вроде прокатило. После этого будет запускаться заветный визард. 2)для ацп ltc2267 я использовал тока FR и данные. Это двухканальное АЦП с двума линиями lvds для каждого канала. режим выбрал такой, как выше на рисунке. настройки для altlvds_rx смотри на рисунках. Некоторые вкладки в настройках lvds_rx были полностью заблокированны, поэтому этих рисунков нет. 3) ну собствено и всё. функциональное и временное моделирование в ModelSim прошли успешно. по переднему фронту rx_outclock данные на выходе валидны. Как в железке будет работать - пока не знаю. Данные замешанны так: rx_out[0...6] соответствует битам полученным по линии rx_in[0]. Первый старший. rx_out[7...13] соответствует битам полученным по линии rx_in[1] ну и т.д. Хороший документ, по ALTLVDS quartus_lvdswp.pdf Изменено 16 ноября, 2010 пользователем juvf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться