|
Передача большого потока, Передача большого потока из платы в плату |
|
|
|
 |
Ответов
(1 - 49)
|
Oct 26 2015, 15:56
|
Частый гость
 
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584

|
Цитата(Lmx2315 @ Oct 25 2015, 20:17)  16*200 = 3200 Мгц ..можно через гигабитные трансиверы передать посредством HDMI кабеля. А можно как-то подробней? В одной плис есть тактовая + 16р шина. Передаю через HDMI кабель. Что я получаю в ПЛИС приемнике? Мне бы хотелось опять же 16р. + тактовый сигнал. Это возможно? Я вообще в плис не новичок, но с приемопередатчиками встроенными никогда дела не имел. Так что если можно разжуйте немного. Если можно - то примерчик неплохо. Нужна ли какая-то внешняя обвеска ПЛИС. Если да то какая?
|
|
|
|
|
Oct 26 2015, 17:30
|

отэц
    
Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684

|
..ваши 16 бит и тактовую нужно пропустить через эту корку - http://www.xilinx.com/support/documentatio...8b10b_ds637.pdfвыдать наружу через гигабитный трансивер, затем также принять на другой ПЛИС. Внешняя обвеска - конденсаторы, разъёмы. Если жалко ПЛИС то можно поставить высокоскоростные компараторы в роли буферов. Сам так никогда не делал - потому философствую как теоретик. з.ы. схему можно скопировать с демоплаты xilinx-а http://www.xilinx.com/support/documentatio..._schematics.pdf
--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0 SHA-256
|
|
|
|
|
Dec 14 2015, 12:10
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Доброго времени суток! Прошу прощения, если не по адресу, но покапавшись в форуме не нашёл ничего приближенного. Подскажите, пожалуйста с помощью каких ip ядер я могу принять высокоскоростной последовательный асинхронный код? Да, и не могли бы расписать поподробнее. Железо cyclone v.
|
|
|
|
|
Dec 14 2015, 22:30
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(Anton1990 @ Oct 25 2015, 19:55)  Или использовать просто хороший коаксиальный шлейф? Шлейф вроде легко, но это на первый взгляд. Да и дорог он очень. если из говна и палок, то http://www.dns-shop.ru/product/d6c41c2dbba...7/slejf-noname/как раз полметра, ATA Ultra DMA - до 166МБайт в секунду обеспечивал по 16ти разрядной шине, не думаю что возникнут какие-то непреодолимые сложности покачать через это 100МГц х 32. хотя если уже есть virtexы с трансиверами под это дело, то правильнее пожалуй будет через них.
|
|
|
|
|
Dec 15 2015, 06:20
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(Maverick @ Dec 15 2015, 00:07)  мало данных - подробнее Стоит задача принять асинхронный сигнал с выхода сериалайзера и дессериплизировать его. Выход с сериалайзера представляет собой последовательный код со стартовым и стоповым битами. Скорость выдачи потока 960 Mbps. На выходе должен получится параллельный 18-разрядный код. Цитата(Алексей_1990 @ Dec 15 2015, 10:14)  Стоит задача принять асинхронный сигнал с выхода сериалайзера и дессериплизировать его. Выход с сериалайзера представляет собой последовательный код со стартовым и стоповым битами. Скорость выдачи потока 960 Mbps. На выходе должен получится параллельный 18-разрядный код. Вообще если ещё более подробнее, то у нас есть ацп с 16-разрядным выходом и частотой 48 МГц. Все это дело загоняется на внешний сериалайзер, который работает с 18-разрядным кодом. Добавляем 2 бита + стартовый и стоповый. С результате получаем на выходе сериалайзера последовательные пачки по 20 бит. Так вот стоит задача получить 16 разрядный параллельный код, как с ацп
|
|
|
|
|
Dec 16 2015, 05:55
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(Алексей_1990 @ Dec 15 2015, 09:20)  Попробуйте глянуть в сторону ядра ALT_LVDS в режиме RX (смущает только то, что у Вас 18-бит, а так именно оно используется для приёма данных с АЦП по описанному протоколу). А разве altlvds_rx позволяет работать на таких скоростях (960 Mbps)? На сколько я понял у него ограничение скорости битрейта порядка 800 Mbps. К тому же для приёма сигнала я использую разъёмы sma на отладочной плате, которые железно соединены с высокоскоростными приемопередатчиками. Вот поэтому и хотел уточнить про ядра использующие именно их. Порывшись в интернете вроде понял, что мне может пригодиться custom PHY transciever. Не знакомы с ним? Go to the top of the pageReport Post
|
|
|
|
|
Dec 16 2015, 06:17
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(Алексей_1990 @ Dec 16 2015, 07:55)  А разве altlvds_rx позволяет работать на таких скоростях (960 Mbps)? На сколько я понял у него ограничение скорости битрейта порядка 800 Mbps. К тому же для приёма сигнала я использую разъёмы sma на отладочной плате, которые железно соединены с высокоскоростными приемопередатчиками. Вот поэтому и хотел уточнить про ядра использующие именно их. Порывшись в интернете вроде понял, что мне может пригодиться custom PHY transciever. Не знакомы с ним? Go to the top of the pageReport Post Цитата(Алексей_1990 @ Dec 15 2015, 09:55)  А разве altlvds_rx позволяет работать на таких скоростях (960 Mbps)? На сколько я понял у него ограничение скорости битрейта порядка 800 Mbps. К тому же для приёма сигнала я использую разъёмы sma на отладочной плате, которые железно соединены с высокоскоростными приемопередатчиками. Вот поэтому и хотел уточнить про ядра использующие именно их. Порывшись в интернете вроде понял, что мне может пригодиться custom PHY transciever. Не знакомы с ним? кросспосты на данном форуме не приветствуются... Посмотрите SerialLiteЦитата The SerialLite III Streaming IP core is a high-speed serial communication protocol for chip-to-chip, board-to-board, and backplane application data transfers. This protocol offers high-bandwidth, low overhead frames, low I/O count, and supports scalability in both number of lanes and lane speed.
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Dec 16 2015, 06:40
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Посмотрите SerialLite[/quote] А custom PHY не подходит для этих целей? Просто сложности возникли с word alignment pattern при конфигурации custom PHY. Что означает выравнивание слова? Правильно ли я понял, что это как раз для определения начала и конца пакетов данных?
|
|
|
|
|
Dec 16 2015, 07:28
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 16 2015, 10:56)  Это означает, что если будет использоваться только приёмник (ядра Custom PHY или другого), то придётся вручную синхронизировать его с передатчиком данных. На передатчике выставляется тестовая последовательность и проверяется правильность приёма, при неправильном приёме делается сдвиг принимаемого слова на бит, и так пока не получим правильное слово. Потом переходим в рабочий режим с уже правильным word alignment. То есть передающее устройство помимо стартовых и стоповых битов передаёт сначала какую-то постоянную последовательность? Есть смысл залезть в datasheet сериалайзера за этой последовательностью?
|
|
|
|
|
Dec 16 2015, 12:43
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 16 2015, 12:03)  Не знаю, как работает данный сериалайзер, наверное стоит. Для всех ядер на базе трансиверов есть "ручной" режим выравнивания слова на основе тестовой последовательности если используется half duplex (про старт/стоп биты не встречал, тут наверное свой word aligner придётся сделать). Для АЦП с последовательным LVDS интерфейсом (например ADS6445) используется метод выравнивания на основе тестовой последовательности (для этого есть режим, когда АЦП гонит на линии тестовые данные по которым синхронизируется приёмник).
Расскажите, что за сериалайзер используется? Сериалайзер DS92LV18. И да, спасибо Вам, что отзываетесь. Цитата(doom13 @ Dec 16 2015, 14:11)  Тогда вообще хз, как его синхронизировать с приёмником. В datasheet я обнаружил такое понятие, как sync pattern. То есть последовательность для синхронизации, как я понял. Так вот она представляет собой "a fixed pattern with 9-bits of data high followed by 9-bits of data low". Да и ещё на сериалайзер приходит sync, который к тому же приходит на десериалайзер. Судя по всему, когда sync = 0 с выходов идёт фиксированная последовательность 9 нулей 9 единиц. А когда sync = 1, на выход идут данные.
|
|
|
|
|
Dec 16 2015, 13:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Алексей_1990 @ Dec 16 2015, 15:43)  Да и ещё на сериалайзер приходит sync, который к тому же приходит на десериалайзер. Судя по всему, когда sync = 0 с выходов идёт фиксированная последовательность 9 нулей 9 единиц. А когда sync = 1, на выход идут данные. Тогда немного понятнее (бегло просмотрел доку и не заметил, какая последовательность используется для синхронизации). Для выравнивания слова используете последовательность FFC00, когда поймаете переходите в рабочий режим. Какое ядро на базе трансивера подойдёт лучше - смотрите доку (немного смущает разрядность слова 20 бит, но, думаю, можно будет подобрать параметры ядра). Цитата(Алексей_1990 @ Dec 16 2015, 15:43)  Да и ещё на сериалайзер приходит sync, который к тому же приходит на десериалайзер. Судя по всему, когда sync = 0 с выходов идёт фиксированная последовательность 9 нулей 9 единиц. А когда sync = 1, на выход идут данные. Наоборот, 1 - sync pattern.
|
|
|
|
|
Dec 16 2015, 14:17
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 16 2015, 17:02)  Тогда немного понятнее (бегло просмотрел доку и не заметил, какая последовательность используется для синхронизации). Для выравнивания слова используете последовательность FFC00, когда поймаете переходите в рабочий режим. Какое ядро на базе трансивера подойдёт лучше - смотрите доку (немного смущает разрядность слова 20 бит, но, думаю, можно будет подобрать параметры ядра).
Наоборот, 1 - sync pattern. Так вот у меня как раз проблема в выборе ядра. Какую документацию посоветуете посмотреть?
|
|
|
|
|
Dec 16 2015, 17:22
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 16 2015, 18:35)  xcvr_user_guideЕсли железо есть, то тут можно и опытным путём пойти. Думаю, можете Custom PHY смотреть и не прогадаете. Глянул доку - ширина слова в 20 бит есть, так что должно работать. А в этом случае не могли бы прояснить следующий момент: Ширина слова 20 бит, а word alignment в этом случае либо 7, либо 10 бит. Почему так? Да и в datasheet на сериалайзер указан 18 битный фиксированный код для синхронизации. Как быть?
|
|
|
|
|
Dec 16 2015, 18:21
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Алексей_1990 @ Dec 16 2015, 20:22)  А в этом случае не могли бы прояснить следующий момент: Ширина слова 20 бит, а word alignment в этом случае либо 7, либо 10 бит. Почему так? Да и в datasheet на сериалайзер указан 18 битный фиксированный код для синхронизации. Как быть? 18+start+stop = 20, итого Ваше синхрослово 20 бит, после приёма в рабочем режиме будете два крайних выбрасывать. Из вышеуказанной доки для Custom PHY: Цитата Word Alignment Parameters The word aligner restores word boundaries of received data based on a predefined alignment pattern. This pattern can be 7, 8, 10, 16, 20, or 32 bits long. The word alignment module searches for a programmed pattern to identify the correct boundary for the incoming stream.
|
|
|
|
|
Dec 17 2015, 03:43
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 16 2015, 22:21)  18+start+stop = 20, итого Ваше синхрослово 20 бит, после приёма в рабочем режиме будете два крайних выбрасывать.
Из вышеуказанной доки для Custom PHY: Ага, с этим разобрался. А вот при конфигурации ядра, когда выбираешь ширину слова 20 бит, он предлагает word alignment либо 7, либо 10 бит. Или мне стоит выбрать режим 10 бит и задать все единицы?
|
|
|
|
|
Dec 17 2015, 07:47
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Алексей_1990 @ Dec 17 2015, 06:43)  Ага, с этим разобрался. А вот при конфигурации ядра, когда выбираешь ширину слова 20 бит, он предлагает word alignment либо 7, либо 10 бит. Или мне стоит выбрать режим 10 бит и задать все единицы? Да, какая-то ерунда получается, в доке одно написано, а GUI ядра не даёт выставить нужные настройки (QII v14.0). Возможно более новая версия QII поможет или можно попробовать сгенерить ядро, а потом вручную задать нужные параметры для топ модуля.
|
|
|
|
|
Dec 18 2015, 10:25
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 17 2015, 11:47)  Да, какая-то ерунда получается, в доке одно написано, а GUI ядра не даёт выставить нужные настройки (QII v14.0). Возможно более новая версия QII поможет или можно попробовать сгенерить ядро, а потом вручную задать нужные параметры для топ модуля. А если решать задачу немного другого характера: есть ацп, выход которого последовательный дифференциальный с фреймовой синхронизацией. Разрядность ацп 16-битная. В этом случае легче? И нужна ли фиксированная последовательность для синхронизации?
|
|
|
|
|
Dec 18 2015, 10:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Алексей_1990 @ Dec 18 2015, 13:25)  А если решать задачу немного другого характера: есть ацп, выход которого последовательный дифференциальный с фреймовой синхронизацией. Разрядность ацп 16-битная. В этом случае легче? И нужна ли фиксированная последовательность для синхронизации? Я бы сказал, что это более правильный вариант, данные АЦП попадают в FPGA без "посредников". В данном случае для приёма данных с АЦП используется ядро ALT_LVDS RX. Режим синхронизации будет необходим при старте. По SPI (может какой другой интерфейс для чтения/записи регистров АЦП) загоняете АЦП в режим синхронизации, выбираете sync pattern, его ловите на стороне FPGA (сдвигаете принятое слово пока не совпадёт с sync pattern) и переходите в рабочий режим. Если железо ещё только проектируется, то я бы остановился на данном варианте, ещё можно попробовать АЦП с более новым JSD204B.
|
|
|
|
|
Dec 18 2015, 19:58
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 18 2015, 14:45)  Я бы сказал, что это более правильный вариант, данные АЦП попадают в FPGA без "посредников". В данном случае для приёма данных с АЦП используется ядро ALT_LVDS RX. Режим синхронизации будет необходим при старте. По SPI (может какой другой интерфейс для чтения/записи регистров АЦП) загоняете АЦП в режим синхронизации, выбираете sync pattern, его ловите на стороне FPGA (сдвигаете принятое слово пока не совпадёт с sync pattern) и переходите в рабочий режим.
Если железо ещё только проектируется, то я бы остановился на данном варианте, ещё можно попробовать АЦП с более новым JSD204B. Железо уже оговорено, к сожалению. Вы упомянули про altlvds-rx. А если скорость порядка 800 Mbps, разве altlvds-rx адекватно будет воспринимать данные?
|
|
|
|
|
Dec 18 2015, 20:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Алексей_1990 @ Dec 18 2015, 22:58)  Железо уже оговорено, к сожалению. Вы упомянули про altlvds-rx. А если скорость порядка 800 Mbps, разве altlvds-rx адекватно будет воспринимать данные? Для CV заявлено (cv_51001.pdf), но надо ещё в какой доке глянуть: Цитата 875 Mbps LVDS receiver and 840 Mbps LVDS transmitter , но для Вашего случая оно не подходит, если только ставить "правильный" АЦП.
|
|
|
|
|
Dec 21 2015, 06:31
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 19 2015, 00:55)  Для CV заявлено (cv_51001.pdf), но надо ещё в какой доке глянуть: , но для Вашего случая оно не подходит, если только ставить "правильный" АЦП. А ситуация с асинхронным кодом патовая? Может у Вас есть ещё какие мысли? На самом деле стоит две задачи: В первом случае принять сигнал с сериалайзера, т.е. организовать десериалайзер. Во втором случае будет необходимо принять сигнал с АЦП lts 2193. Первая задача вроде как промежуточная. Также для отладки всего этого есть в наличии отладочная плата Cyclone V GX Starter Kit
|
|
|
|
|
Dec 21 2015, 06:48
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Я так и не понял, железо уже есть или можно ещё что-то менять? Если железо есть, то пробуйте использовать ядро Custom PHY, в GUI ставте для SYNC PATTERN настройки, которые оно позволяет выбрать, а в топ модуле подправте вручную и пробуйте скомпилить. Цитата(Алексей_1990 @ Dec 21 2015, 09:31)  Во втором случае будет необходимо принять сигнал с АЦП lts 2193. Если правильно понял, что АЦП это LTC2193, то никакой внешний сериалайзер не нужен, заводите сигналы прямо на FPGA и используете ядро ALT_LVDS RX. Клоки - на клоковую ногу FPGA (которую можно протянуть до PLL), достаточно будет DATA CLOCK OUT.
|
|
|
|
|
Dec 21 2015, 07:15
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 21 2015, 10:48)  Я так и не понял, железо уже есть или можно ещё что-то менять? Если железо есть, то пробуйте использовать ядро Custom PHY, в GUI ставте для SYNC PATTERN настройки, которые оно позволяет выбрать, а в топ модуле подправте вручную и пробуйте скомпилить.
Если правильно понял, что АЦП это LTC2193, то никакой внешний сериалайзер не нужен, заводите сигналы прямо на FPGA и используете ядро ALT_LVDS RX. Клоки - на клоковую ногу FPGA (которую можно протянуть до PLL), достаточно будет DATA CLOCK OUT. Железо выбрано. Сейчас колдую над custom PHY. При чем я отошёл от сериалайзера и подаю на вход просто последовательность единиц с генератора импульсов, при этом решил попробовать режим bitslip. Вывел его на кнопку, при нажатии код смещается, как я понял, так и должно быть. Но все идёт нормально только до 8ого бита, потом код скачет вверх, пропуская много позиций. Хотелось бы, конечно, проверить режим с выравниванием слова по последовательности, но я не располагаю таким генератором, с которого я подаю сначала синхро-последовательность, а потом какой-то код.
|
|
|
|
|
Dec 21 2015, 07:52
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 21 2015, 11:33)  Про АЦП Вы не ответили, это LTC2193??? Да, именно. Прошу прощения. Попробовал в топ модуле подправить, компилятор ругается.
|
|
|
|
|
Dec 21 2015, 08:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Алексей_1990 @ Dec 21 2015, 10:52)  Попробовал в топ модуле подправить, компилятор ругается. Возможно ещё что-то завязано на эти параметры. Цитата(Алексей_1990 @ Dec 21 2015, 10:52)  Да, именно. Прошу прощения. Тогда тут не нужен внешний трансивер. Для приёма достаточно завести все сигналы АЦП в FPGA (линии данных канала АЦП для 4-line mode и тактовую АЦП DATA CLOCK OUT) и при максимальной частоте тактирования АЦП 125 MHz получится всего 500 Mbps на линию. Для 800 Mbps от канала АЦП можно использовать 2-line mode (а если FPGA держит приведённые выше характеристики, то будет достаточно и 1-line mode). PS: ALT_LVDS вполне подходит.
|
|
|
|
|
Dec 23 2015, 05:55
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 21 2015, 12:05)  Возможно ещё что-то завязано на эти параметры.
Тогда тут не нужен внешний трансивер. Для приёма достаточно завести все сигналы АЦП в FPGA (линии данных канала АЦП для 4-line mode и тактовую АЦП DATA CLOCK OUT) и при максимальной частоте тактирования АЦП 125 MHz получится всего 500 Mbps на линию. Для 800 Mbps от канала АЦП можно использовать 2-line mode (а если FPGA держит приведённые выше характеристики, то будет достаточно и 1-line mode). PS: ALT_LVDS вполне подходит. А в этом случае, не проясните ли мне почему в altlvds_rx максимальный возможный фактор дессериализации равен 10? Как я понимаю, чтобы принять 16битную последовательность нужно поставить каскадно два приёмника по 8 бит
|
|
|
|
|
Dec 23 2015, 11:15
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 23 2015, 10:47)  У Вашего АЦП есть режимы 4-line/2-line/1-line mode, где фактор десериализации будет соответственно 4/8/16 (вот только 16 выбрать не получится, тут только если делать свой приёмник). Используйте 4-line mode, чтоб можно было работать на максимальной частоте тактирования АЦП. Так вот задача то и заключается в принятии сигнала по 1 линии.
|
|
|
|
|
Dec 23 2015, 12:00
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Алексей_1990 @ Dec 23 2015, 14:15)  Так вот задача то и заключается в принятии сигнала по 1 линии. Если учесть, что согласно даташиту на ALTLVDS_RX: Цитата In Cyclone series, the SERDES circuitry is always implemented in logic cells. то, как вариант, можно попробовать сделать свой приёмник для Вашего случая. Когда-то давно делал такое, а потом нашёл ALTLVDS_RX, который работает намного лучше. В настоящей системе используется ALTLVDS_RX, который принимает 800 Mbps с одной линии, так что пробуйте.
|
|
|
|
|
Dec 23 2015, 16:17
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 23 2015, 16:00)  Если учесть, что согласно даташиту на ALTLVDS_RX:
то, как вариант, можно попробовать сделать свой приёмник для Вашего случая. Когда-то давно делал такое, а потом нашёл ALTLVDS_RX, который работает намного лучше. В настоящей системе используется ALTLVDS_RX, который принимает 800 Mbps с одной линии, так что пробуйте. Буду пробовать, только жаль что на отладочной плате высокочастотные выводы железно завязаны на аппаратные высокоскоростные трансиверы. Не могли бы прояснить ещё один момент: как я понимаю в altlvds_rx на пин inclock я завожу свою фреймовую частоту? Немного не по теме, но хочу поделиться: был на семинаре, так вот там упоминался интерфейс jesd204b. Знакомы с ним? Это чисто моё любопытство)
|
|
|
|
|
Dec 23 2015, 18:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Алексей_1990 @ Dec 23 2015, 19:17)  Буду пробовать, только жаль что на отладочной плате высокочастотные выводы железно завязаны на аппаратные высокоскоростные трансиверы. Не могли бы прояснить ещё один момент: как я понимаю в altlvds_rx на пин inclock я завожу свою фреймовую частоту? Если хотите использовать вход трансивера, то тут altlvds_rx прицепить не получится. Мне кажется, что должен быть способ настроить Custom PHY для Вашего случая. Сами заложили в своём устройстве соединение между FPGA через трансиверы в режиме half duplex и предполагал использовать Custom PHY (по документации всё должно работать, но железа пока ещё нет, а так проект скомпилился, не помню, правда, какие настройки для шины данных там задавал). На inclock заводится либо frame clock либо bit clock (можно оба, но это избыточно), если только один АЦП на плате, то разницы нет, если несколько и надо будет их все синхронизировать - тогда bit clock. Заводится на ногу, которую можно забросить на PLL. Цитата(Алексей_1990 @ Dec 23 2015, 19:17)  Немного не по теме, но хочу поделиться: был на семинаре, так вот там упоминался интерфейс jesd204b. Знакомы с ним? Это чисто моё любопытство) У нас DDS с этим интерфейсом используется, но запускал его коллега.
|
|
|
|
|
Dec 24 2015, 07:17
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(warrior-2001 @ Dec 24 2015, 09:26)  jesd204b - это готовый стандарт. Использую его в AD9656. Написал сам. Если бы была ПЛИС 5 серии - поставил бы ядро альтеровское. И в какую нынче цену такое ядро? Цитата(doom13 @ Dec 23 2015, 22:42)  Если хотите использовать вход трансивера, то тут altlvds_rx прицепить не получится. Мне кажется, что должен быть способ настроить Custom PHY для Вашего случая. Сами заложили в своём устройстве соединение между FPGA через трансиверы в режиме half duplex и предполагал использовать Custom PHY (по документации всё должно работать, но железа пока ещё нет, а так проект скомпилился, не помню, правда, какие настройки для шины данных там задавал). На inclock заводится либо frame clock либо bit clock (можно оба, но это избыточно), если только один АЦП на плате, то разницы нет, если несколько и надо будет их все синхронизировать - тогда bit clock. Заводится на ногу, которую можно забросить на PLL.
У нас DDS с этим интерфейсом используется, но запускал его коллега. На самом деле, уже много режимов перепробовал для трансивера, ничего даже приближенного к правде не выдавалось.
|
|
|
|
|
Dec 25 2015, 07:19
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

|
Цитата(Алексей_1990 @ Dec 24 2015, 10:17)  И в какую нынче цену такое ядро? Не знаю, говорю же - написал сам. Вариантов "купить" платное ядро много.
--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
|
|
|
|
|
Jan 11 2016, 07:40
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(doom13 @ Dec 23 2015, 22:42)  Если хотите использовать вход трансивера, то тут altlvds_rx прицепить не получится. Мне кажется, что должен быть способ настроить Custom PHY для Вашего случая. Сами заложили в своём устройстве соединение между FPGA через трансиверы в режиме half duplex и предполагал использовать Custom PHY (по документации всё должно работать, но железа пока ещё нет, а так проект скомпилился, не помню, правда, какие настройки для шины данных там задавал). На inclock заводится либо frame clock либо bit clock (можно оба, но это избыточно), если только один АЦП на плате, то разницы нет, если несколько и надо будет их все синхронизировать - тогда bit clock. Заводится на ногу, которую можно забросить на PLL.
У нас DDS с этим интерфейсом используется, но запускал его коллега. День добрый) с наступившими праздниками. Хотел поинтересоваться больше не ковырялись с custom PHY?
|
|
|
|
|
Jan 13 2016, 07:25
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(Алексей_1990 @ Dec 16 2015, 13:28)  То есть передающее устройство помимо стартовых и стоповых битов передаёт сначала какую-то постоянную последовательность? Есть смысл залезть в datasheet сериалайзера за этой последовательностью? Там чуть посложнее, чем в UART. Нет никаких стартовых и стоповых бит, по линии всегда что-то летит. Это либо данные либо синхропоследовательности, закодированные с помощью 10B8B или более современных кодов. Кодирование необходимо для реализации как минимум двух важных задач : 1 - сделать вероятность появления низкого и высокого уровней одинаковой чтобы избавиться от необходимости передавать постоянную составляющую 2 - избавиться от длинных последовательностей нулей и единиц чтобы приёмная CDR PLL(Clock and Data Recovery Phase Locked Loop) не сбивалась. За счёт кодирования эффективная скорость передачи данных увеличивается (в случае 8B10B на 25 процентов). В общем, с виду система сложноватая, но на деле очень хорошо изученная и очень часто используемая (SATA - PCI Express - Fiber Ethernet и так далее).
|
|
|
|
|
Jan 18 2016, 05:11
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 20-10-15
Пользователь №: 88 934

|
Цитата(Bad0512 @ Jan 13 2016, 11:25)  Там чуть посложнее, чем в UART. Нет никаких стартовых и стоповых бит, по линии всегда что-то летит. Это либо данные либо синхропоследовательности, закодированные с помощью 10B8B или более современных кодов. Кодирование необходимо для реализации как минимум двух важных задач : 1 - сделать вероятность появления низкого и высокого уровней одинаковой чтобы избавиться от необходимости передавать постоянную составляющую 2 - избавиться от длинных последовательностей нулей и единиц чтобы приёмная CDR PLL(Clock and Data Recovery Phase Locked Loop) не сбивалась. За счёт кодирования эффективная скорость передачи данных увеличивается (в случае 8B10B на 25 процентов). В общем, с виду система сложноватая, но на деле очень хорошо изученная и очень часто используемая (SATA - PCI Express - Fiber Ethernet и так далее). То есть не исключён тот вариант, что с моего сериалайзера данные выходят закодированными?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|