another_one 0 23 сентября Опубликовано 23 сентября · Жалоба Здравствуйте! Есть АЦП которая выдает 10Гб/с поток, и есть Virtex Ultrascale+ Для того чтобы работать с АЦП необходимо IP JESD204C Поскольку динамические характеристики самой ПЛИС(которые в районе 2 нс максимум на запись в BRAM и на защелкивание регистровой логики), необходимо буферизировать приходящие данные по JESD204C В самом JESD204C есть буфер но его размер не понятен и не понятно можно его менять, по крайней мере в настройках IP я не нашел, в сигналах инстанса ядра тоже. Подскажите пожалуйста как согласовывать высокоскоростные интерфейсы основанные на GTY с динамическими ограничениями самой ПЛИС(даже такой как Virtex Ultrscale+). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 23 сентября Опубликовано 23 сентября · Жалоба 3 hours ago, another_one said: Есть АЦП которая выдает 10Гб/с поток, и есть Virtex Ultrascale+ Чет то каша кая то - гигабиты, наносекунды, GTY ... GTY вам как раз и "согласовывает" гигабиты с наносекундами так как принимает быстрые гигабиты последовательно, а выдаёт принятое паралельно медленно на наносекундах которых хватит для записи в память или обработки ... А вот как вы будете буферизировать принятые параллельные данные зависит только от вас (и хотелок дизайна) - либо в FIFO либо в двойной/кольцевой буфер в BRAM/DDR либо хоть сразу по 10G/40G/100G сети на сервер для вечного хранения ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
another_one 0 23 сентября Опубликовано 23 сентября · Жалоба спасибо, звучит классно, а структурно как это происходит?. В структуре GTY есть какой-то буфер, но как пересчитать например глубину BRAM буфера чтобы далее на наносекундах ПЛИС не потерять приходящий быстрый гигабитный поток Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 23 сентября Опубликовано 23 сентября · Жалоба 49 minutes ago, another_one said: спасибо, звучит классно, а структурно как это происходит? Структурно это происходит методом чтения доков, даташитов, .., и в последствии коррекции запросов в соответствии с полученной новой информацией ... А не структурно, по простому - GTY это конвертор сериал в паралель, почти как SPI ... Поэтому если у него на последовательном 1 бит входе 10Gbit то на параллельном 32 бит выходе будет 10/32 = 312.5 MHz (3.2ns) что уже удовлетворяет ваши лимиты в 2ns. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 27 23 сентября Опубликовано 23 сентября · Жалоба On 9/23/2024 at 4:14 PM, another_one said: .. а структурно как это происходит? PG242 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
another_one 0 23 сентября Опубликовано 23 сентября · Жалоба 8 hours ago, blackfin said: PG242 не вижу буфера ни в GTY ни в JESDC IP Также просинтезировав IP я не нашел буфер, только системные регистры Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 24 сентября Опубликовано 24 сентября · Жалоба 14 hours ago, another_one said: не вижу буфера ни в GTY ни в JESDC IP Также просинтезировав IP я не нашел буфер, только системные регистры И не увидите ... Да и зачем он (буфер) нужен если эти корки выдают данные с той же скоростью что и получают? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
another_one 0 24 сентября Опубликовано 24 сентября · Жалоба 11 minutes ago, RobFPGA said: И не увидите ... Да и зачем он (буфер) нужен в если эти корки выдают данные с той же скоростью что и получают? ПЛИС, даже Virtex UltraScale+ со своими динамическими характеристиками, принять может(с помощью GTY) но обработать нет, без двухвортовой буферизации. Но двухпортовая BRAM пропустит любой высокоскоростной поток, так как для записи ей нужно 2 нс Возможность обработки может быть только если JESD204C IP обладал бы конфигурируемый по глубине буфер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 27 24 сентября Опубликовано 24 сентября · Жалоба On 9/24/2024 at 10:09 AM, another_one said: Но двухпортовая BRAM пропустит любой высокоскоростной поток, так как для записи ей нужно 2 нс Отуда у вас эти цифры? С потолка? И какой speed grade у вашей ПЛИС? Читайте DS923, Table 33: Block RAM and FIFO Switching Characteristics. Но даже самый медленный Virtex UltraScale+ умеет обрабатывать (читать и писать в BRAM) на частоте 642 МГц: vup_1_ctscanner. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 24 сентября Опубликовано 24 сентября · Жалоба 54 minutes ago, another_one said: ПЛИС, даже Virtex UltraScale+ ... Ещё раз - буферизация в общем случае нужна в тогда когда скорости потоков на входе и выходе не совпадают. Как в школьной задачке про две трубы и бассейн ... Если скорости входных и выходных потоков равны то зачем вам буфер? Если на вход GTY (или JESD204) вливается поток по одной быстрой "трубе" в 10G bit/s и такой же поток 10GBit/s из него выливается по 32 медленным "трубам" зачем вам внутри этой корки бассейн/буфер ? А если скорость выходящего потока даже больше чем входящего тем более бассейн/буфер не нужен, в этом случае достаточно простого тазика/регистра ... Поэтому повторюсь - почитайте доки - и сформулируйте ваши желания более понятно - что вы хотите сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
another_one 0 24 сентября Опубликовано 24 сентября · Жалоба 1 hour ago, blackfin said: Отуда у вас эти цифры? С потолка? И какой speed grade у вашей ПЛИС? Читайте DS923, Table 33: Block RAM and FIFO Switching Characteristics. Но даже самый медленный Virtex UltraScale+ умеет обрабатывать (читать и писать в BRAM) на частоте 642 МГц: vup_1_ctscanner. У меня 19p я как раз взял самый худший вариант, округлив до 2 нс У меня -2 1 hour ago, RobFPGA said: Ещё раз - буферизация в общем случае нужна в тогда когда скорости потоков на входе и выходе не совпадают. Как в школьной задачке про две трубы и бассейн ... Если скорости входных и выходных потоков равны то зачем вам буфер? Если на вход GTY (или JESD204) вливается поток по одной быстрой "трубе" в 10G bit/s и такой же поток 10GBit/s из него выливается по 32 медленным "трубам" зачем вам внутри этой корки бассейн/буфер ? А если скорость выходящего потока даже больше чем входящего тем более бассейн/буфер не нужен, в этом случае достаточно простого тазика/регистра ... Поэтому повторюсь - почитайте доки - и сформулируйте ваши желания более понятно - что вы хотите сделать? я об этом и говорю что на вход приходит 10Гбит и эти 10 Гбит ПЛИС должна успеть принять чтобы далее обработать и далее передать уже на меньше частоте по GTH Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 24 сентября Опубликовано 24 сентября · Жалоба 1 hour ago, another_one said: я об этом и говорю что на вход приходит 10Гбит и эти 10 Гбит ПЛИС должна успеть принять чтобы далее обработать и далее передать уже на меньше частоте по GTH Так и я об этом же - как я выше вам уже говорил - 10Gbit всего-навсего каких то жалких ~1 GByte/s. Это частота 312.5 MHz (3.2 ns) для шины данных в 32 бита, или 156.25 MHz (6.4 ns) для шины в 64 бит. Неужели ваша версия VU+ 19p не способна работать на таких частотах? Может это не VU+ а GOW+ ? ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
another_one 0 24 сентября Опубликовано 24 сентября · Жалоба 6 hours ago, RobFPGA said: Так и я об этом же - как я выше вам уже говорил - 10Gbit всего-навсего каких то жалких ~1 GByte/s. Это частота 312.5 MHz (3.2 ns) для шины данных в 32 бита, или 156.25 MHz (6.4 ns) для шины в 64 бит. Неужели ваша версия VU+ 19p не способна работать на таких частотах? Может это не VU+ а GOW+ ? ... Прошу прощения, ввел в заблуждение, я теперь понял в чем наше недопонимание Вечная путаница с бит с байтами.... У меня АЦП 12 бит, частота семплирования 10 ГГц Значение с АЦП должно поступать по JESD204C в 19p(не китай) Таким образом, в зависимости от выбранной конфигурации лейнов и линков получается скорость потока не менее 10 Гбайт/с, и это уже требует буферизацию Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 24 сентября Опубликовано 24 сентября · Жалоба 1 hour ago, another_one said: получается скорость потока не менее 10 Гбайт/с, и это уже требует буферизацию Это всего-лишь требует увеличить число "медленных труб" на выходе GTY/JESD - Если грубо считать то 12 бит 10Gs/s то скорее всего используются 8 линий по 15 Gbit/s, что даёт при 32 бит интерфейсе GTY на линию ~469 MHz (2.13 ns) или ~234 MHz (4.26 ns) для шины 64 бит. Для 8 линий соответственно будет шина 256 или 512 бит. Для VU19 мелочи ... А дальше уже все зависит от вас - хотите обрабатывайте эти 256/512 на лету, а хотите то и буферизируйте как вам удобно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
another_one 0 24 сентября Опубликовано 24 сентября · Жалоба 4 hours ago, RobFPGA said: Это всего-лишь требует увеличить число "медленных труб" на выходе GTY/JESD - Если грубо считать то 12 бит 10Gs/s то скорее всего используются 8 линий по 15 Gbit/s, что даёт при 32 бит интерфейсе GTY на линию ~469 MHz (2.13 ns) или ~234 MHz (4.26 ns) для шины 64 бит. Для 8 линий соответственно будет шина 256 или 512 бит. Для VU19 мелочи ... А дальше уже все зависит от вас - хотите обрабатывайте эти 256/512 на лету, а хотите то и буферизируйте как вам удобно Спасибо большое! Похоже я ошибся с преобразованием в линии с АЦП, а в Вашем случае это похоже на правду, только не совсем понятно как именно получилось ~469 MHz (2.13 ns) или ~234 MHz (4.26 ns) Прошу по возможности предоставить Ваш расчет Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться