Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор связки АЦП - ПЛИС - ЦАП самое быстрое
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
syoma
Добрый день всем.
Возможно не в правильном форуме задаю вопрос, но интересует мнение Гуру, так как я занимаюсь в основном программированием FPGA, но совсем не в курсе последних веяний.
Просто хотел поинтересоваться - на современном уровне развития цифровой техники можно ли решить данную задачу в цифре или нужно делать в аналоге. Или это вообще бред?
Задача управления. Входной сигнал(не периодический) должен измеряться АЦП(хотя-бы 8-бит). Далее с помощью ПЛИС (FPGA или CPLD не знаю) данный сигнал должет сравниваться с изменяемой уставкой(которая будет приходить по оптике). Возможно пара операций сложения и может умножение. Результат всего этого будет выдаваться на ЦАП и далее на буфер для исполнения.
Если деньги не принимать в расчет, то возможно ли получение времени задержки всей этой цепочки на уровне 10нс? Или не реально. Какое минимальное время можно получить? Задача стоит разработать интеллектуальный драйвер для очень мощных IGBT.
Если реально - то на чем и в каком ките это может быть?
Спасибо за ответы.
Maverick
Цитата(syoma @ Oct 25 2010, 14:05) *
Добрый день всем.
Возможно не в правильном форуме задаю вопрос, но интересует мнение Гуру, так как я занимаюсь в основном программированием FPGA, но совсем не в курсе последних веяний.
Просто хотел поинтересоваться - на современном уровне развития цифровой техники можно ли решить данную задачу в цифре или нужно делать в аналоге. Или это вообще бред?
Задача управления. Входной сигнал(не периодический) должен измеряться АЦП(хотя-бы 8-бит). Далее с помощью ПЛИС (FPGA или CPLD не знаю) данный сигнал должет сравниваться с изменяемой уставкой(которая будет приходить по оптике). Возможно пара операций сложения и может умножение. Результат всего этого будет выдаваться на ЦАП и далее на буфер для исполнения.
Если деньги не принимать в расчет, то возможно ли получение времени задержки всей этой цепочки на уровне 10нс? Или не реально. Какое минимальное время можно получить? Задача стоит разработать интеллектуальный драйвер для очень мощных IGBT.
Если реально - то на чем и в каком ките это может быть?
Спасибо за ответы.

скорость АЦП?
Например это и вот это. Все в одном корпусе! wink.gif
Отладочные платы
выбираем здесь.
syoma
Цитата(Maverick @ Oct 25 2010, 13:18) *
скорость АЦП?

Чем меньше, тем лучше. Может 3нс или меньше быть? Единственное, это время от начала измерения до появления данных на выходе. Меня не устраивают т.н. конвейерные АЦП, в которых скорость сэмплирования достигает 600Msps, но результат появляется на выходе через несколько тактов, что в лучшем случае дает задержку в 15-20нс.
Цитата
Например это и вот это. Все в одном корпусе!

Это ж игрушки с 600kSps. Такими разве что токи мерять.
des00
Цитата(syoma @ Oct 25 2010, 05:05) *
Если деньги не принимать в расчет, то возможно ли получение времени задержки всей этой цепочки на уровне 10нс?

нет
syoma
Цитата(des00 @ Oct 25 2010, 15:05) *
нет

А сколько можно? И почему?
ViKo
Цитата(syoma @ Oct 25 2010, 15:59) *
Чем меньше, тем лучше. Может 3нс или меньше быть? Единственное, это время от начала измерения до появления данных на выходе. Меня не устраивают т.н. конвейерные АЦП, в которых скорость сэмплирования достигает 600Msps, но результат появляется на выходе через несколько тактов, что в лучшем случае дает задержку в 15-20нс.

Тогда вам нужны АЦП, созданные по flash технологии (не путать с flash памятью), сильно жрущие, дорогие. Может быть, лучше сделать "интеллектуальный драйвер" аналоговый?
Maverick
Цитата(ViKo @ Oct 25 2010, 16:12) *
Тогда вам нужны АЦП, созданные по flash технологии (не путать с flash памятью), сильно жрущие, дорогие. Может быть, лучше сделать "интеллектуальный драйвер" аналоговый?

добавлю описание архитектуры АЦП, созданных по flash технологии

PS Я не знал до сегодняшнего дня про такую архитектуру/технологию АЦП laughing.gif Просветился!!!
Microwatt
А может, если подумать, то нужно не 3нс, а 3 микросекунды для системы? Или даже 30?
Неужели действительно такой скоростной контур обработки нужен?
litv
Действительно слабо верится чтобы очень МОЩНАЯ схема требовала скорости 10 нс.
Для чего ? Для электродвигателя или блока питания?? Им 10 нс? lol.gif
SFx
1. куда вам такой поток ?
2. где его вы будете обрабатывать?
3. где его будете хранить во время обработки?
4. это экспериментальное оборудование вы хотите сделать для физических опытов каких-нито ?
5. может быть есть смысл пожертвовать разрядностью и сделать на прецизионном делители и компараторах ?
6. оптические интерфейсы наверняка имеют еще большую задержку, тк там происходит преобразование сначала оптического диапазона в электрический, а потом его тоже оцифровывают.
syoma
Цитата
PS Я не знал до сегодняшнего дня про такую архитектуру/технологию АЦП Просветился!!!

А я еще в институте такое выучил. Только называются они в отечественной электронике просто параллельные АЦП. Даже помню задачка была на практике - разработать логическую схему дешифратора на такой 3-х битный АЦП - то есть выход с 8-и компараторов переделать в двоичный код.
В принципе я с самого начала понял, что с ними придется работать - просто думал - может кто имеет опыт и может подсказать конкретно какие линейки есть. А то никто не пишет сразу, что это FLASH АЦП, а приходится вчитываться в даташиты, чтобы обнаружить, что там какие-то задержки есть и т.д.
А насчет задачи - требуется активно контролировать включение и отключение IGBT, то есть напряжение и ток в ключе в моменты переключения. Это можно делать со стороны затвора, контролируя ток в нем, по определенным законам (таблице) плюс надо иметь обратную связь по напряжению и по току в ключе. ОС по напряжению делается простым резистивным делителем, а по току надо интегрировать падение напряжение на паразитной индуктивности эмиттера. Время переключения мощных IGBT составляет где-то 1мкс в среднем от начала до конца. По литературе для нормального регулирувания требуется время реакции системы на более 10-20нс. Иначе по динамике система может быть не стабильной.
Так что потоков у меня нет.
С АЦП буду копать дальше, а что можете сказать по ПЛИС + ЦАП. Вроде ЦАПы с резисторными цепочками достаточно быстрые, или нет?
Для ПЛИС мне большая емкость не нужна и встроенные процессоры тоже - главное, чтобы по быстрее была и ХЗ, какие-то, наверное быстрые интерфейсы для связи с АЦП нужни?

Aprox
Цитата(SFx @ Oct 26 2010, 10:36) *
1. куда вам такой поток ?
2. где его вы будете обрабатывать?
3. где его будете хранить во время обработки?
По-видимому, хотят встроить свой девайс в разрыв какой-то цепи уже существующей системы и при этом не нарушить ее работу. Скорей всего, отсюда и возникли требования ко времени распространения с обработкой сигнала со входа на выход порядка 10нс. На FPGA я бы за такую работу не взялся.
des00
Цитата(syoma @ Oct 26 2010, 01:59) *
С АЦП буду копать дальше, а что можете сказать по ПЛИС + ЦАП.

Еще раз предлагаю вам посмотреть задержки буферов ввода/вывода плис.
Gothard
Цитата(syoma @ Oct 25 2010, 15:05) *
Входной сигнал(не периодический) должен измеряться АЦП(хотя-бы 8-бит). Далее с помощью ПЛИС (FPGA или CPLD не знаю) данный сигнал должет сравниваться с изменяемой уставкой(которая будет приходить по оптике). Возможно пара операций сложения и может умножение. Результат всего этого будет выдаваться на ЦАП и далее на буфер для исполнения.

Возможно глупый вопрос: а без "цифры" тут никак?
syoma
Цитата
Возможно глупый вопрос: а без "цифры" тут никак?

Как. В аналоге тоже можно решить, но получается очень не гибко и пара очень интересных функция не реализуема.
Цитата
По-видимому, хотят встроить свой девайс в разрыв какой-то цепи уже существующей системы и при этом не нарушить ее работу.

Да, система существует - это физический объект системы управления - IGBT. У него есть вход и выход, зависящий от входа и кучи других факторов, которые должна компенсировать система управления. В система управления должна реализовать что-то типа ПИ контроллера + уставки + таблица.

Цитата
Еще раз предлагаю вам посмотреть задержки буферов ввода/вывода плис.

Если я правильно понял - это в районе 3-4нс х 2 раза для Spartan - 3AN. Но я не знаю - это вообще предел, или есть более быстрые ПЛИСы?
XVR
Вы для начала определитесь где вы будете покупать такие АЦП и ЦАПы - они попадают под ограничения экспорта (в США), и просто так их вам не продадут sad.gif
Kuzmi4
2 syoma
когда то давно решал что-то подобное, но не с такими жёсткими требованиями. Так был какой то дискретный цифровой компарер который давал где то ~10нс задержки для результата сравнения, но у вас ещё задержка на цифрование аналога где то выйдет ~5-10нс (если денег не жалко и достать сможете).. так что в принципе думаю реально, но намучаетесь сильно laughing.gif

На счёт шустрого компарера, там его тоже как то мутили cool.gif
des00
Цитата(syoma @ Oct 26 2010, 03:07) *
Если я правильно понял - это в районе 3-4нс х 2 раза для Spartan - 3AN. Но я не знаю - это вообще предел, или есть более быстрые ПЛИСы?

вот именно, у вас только 8нс уйдут на то что бы просто заташить и выташить сигнал из ПЛИС. это не считая задержки обработки внутри. Искать АЦП/ЦАП уже бессмысленно. Ищите хорошего аналоговика или снижайте требования.


Цитата(Kuzmi4 @ Oct 26 2010, 03:18) *
.. так что в принципе думаю реально, но намучаетесь сильно laughing.gif

?? сильно сомневаюсь что за 10 нс он успеет оцифровать, затащить в плис, сделать обработку, вытащить из плиса, перевести в аналог. Даже если будет ну очень сильно мучатся.
syoma
Цитата
Вы для начала определитесь где вы будете покупать такие АЦП и ЦАПы - они попадают под ограничения экспорта (в США), и просто так их вам не продадут

Мне для начала нужно определиться, какие АЦП и ЦАПы мне нужны. А потом я их куплю, не беспокойтесь.

Цитата
вот именно, у вас только 8нс уйдут на то что бы просто заташить и выташить сигнал из ПЛИС. это не считая задержки обработки внутри. Искать АЦП/ЦАП уже бессмысленно. Ищите хорошего аналоговика или снижайте требования.

Хорошо, давайте снижать. 20-30нс достаточно? Или в какое время можно уложиться и с чем?
des00
Цитата(syoma @ Oct 26 2010, 03:38) *
Хорошо, давайте снижать. 20-30нс достаточно? Или в какое время можно уложиться и с чем?

ИМХО 0,5 - 1мкс в зависимости от обработки.
Shtirlits
Из любопытства провел эксперимент - 8-ми со входа умножается на 8-ми битовый регистр и старшие 8 бит результата асинхронно выдаются наружу. Задержки констрейнил от ножки до ножки.
На счет альтеры не уверен - редко quartus беру в руки, но в цифры ожидаемые.
CODE
7.039 nS    EP3SL50F484C2
7.656 nS    xc6vlx75t-3ff784
7.799 nS    EP3C55U484C6
7.863 nS    xc5vlx30-3ff676
8.400 nS    EP4E230F29C2
9.628 nS    xc4vlx15-12ff676
11.574 nS    xc3sd1800a use dsp block = yes
11.616 nS    xc3s50an-5tqg144
12.207 nS    xc3sd1800a use dsp block = no
13.070 nS    xc6slx4-3cpg196


Для окончательного решения нужно знать функцию, поработать над её оптимизацией исходя из архитектуры тех или иных частей конкретных микросхем.
На первый взгляд аппаратные умножители вещь полезная, но от входных ножек до них довольно далеко - в разы больше, чем задержка на входах-выходах.
Если функцию возможно реализовать на LUT-ах совсем рядом с ножками, да еще ножки аккуратно разместить, то можно мечтать о 5nS.
О синхронной схеме на частоте ~400MHz тоже можно думать, но задержка возрастет.
А так придется использовать коды грея или аналогичные приемы, что может сделать невыгодным применение DSP-блоков.
Все же мне представляется синхронной только часть, которая принимает уставки.
des00
Цитата(Shtirlits @ Oct 26 2010, 04:42) *
Для окончательного решения нужно знать функцию,

угу, а функция это какая нить фильтрация + пороговые схемы + петлевые фильтры %)
Kuzmi4
2 des00
Я про компарер на дискретке, плису в таком случае нужно заюзать для выдачи значения на этот компарер и получения собствено его по оптике. Но это естевтенно чистый компарер, без функции от результатов сравнения..
Shtirlits
QUOTE (des00 @ Oct 26 2010, 13:46) *
угу, а функция это какая нить фильтрация + пороговые схемы + петлевые фильтры %)

Интересна только та её часть, которая определяет зависимость текущего выхода от текущего значения входа, чуть менее от прошлого, еще менее от позапрошлого...
des00
Цитата(Shtirlits @ Oct 26 2010, 03:50) *
Интересна только та её часть, которая определяет зависимость текущего выхода от текущего значения входа, чуть менее от прошлого, еще менее от позапрошлого...

с точки зрения задержки замкнутой цепи управления должны быть интересны все цепи, а не только те, что определяют текущий отчет.
syoma
Цитата(des00 @ Oct 26 2010, 11:46) *
угу, а функция это какая нить фильтрация + пороговые схемы + петлевые фильтры %)

Нет.
Пока такое планирую - один канал - сложение входного сигнала с уставкой + умножение на константу.
второй канал - сложение входного сигнала с уставкой + интегрирование + умножение.
В конце 2 канала складываются и подаются на выход.
Только к этим вещам предъявляются такие требования. Остальное намного медленнее будет. Уставка будет генерироваться в ПЛИС из таблицы, которая будет расчитана до того.
Цитата
Все же мне представляется синхронной только часть, которая принимает уставки.

Я тоже так думал. Но гонки будут..
des00
Цитата(syoma @ Oct 26 2010, 05:03) *
Пока такое планирую

0.5 - 1мкс.
Shtirlits
QUOTE (des00 @ Oct 26 2010, 13:55) *
с точки зрения задержки замкнутой цепи управления должны быть интересны все цепи, а не только те, что определяют текущий отчет.

Не согласен. С точки зрения художественного выпиливания напильником по fpga эти цепи влияют только на fanout и ресурсы разводки входных сигналов, чем портят жизнь тем, кто определяет выход текущего отсчета.

QUOTE (syoma @ Oct 26 2010, 14:03) *
...В конце 2 канала складываются и подаются на выход....

Потянет тактов на 6-7 на предельной частоте DSP-блоков.
Как программист думаю, что сложить, умножить и даже интегрировать можно какими-нибудь операционными усилителями, а параметры на них подавать из FPGA через ЦАП с любой конвейеризацией.
syoma
Цитата
Потянет тактов на 6-7 на предельной частоте DSP-блоков.

Чего то у меня так не выходит. Я без DSP блоков только на логике смоделировал свою схему. Все сигналы 8-и битные. Интегратор 10-ти битный. Все за 1 такт. На спартане 3-ем выходит 10.8нс на все до буферов. То есть к этому нужно еще 7нс прибавить на задержки IO. Получается 20нс для FPGA достаточно на вычисления. Или я что-то не то посчитал?
khach
Аналогово делать. Вспоминать, что операционный усилитель- именно операционный. Что-то сверхбыстрое, current mode full dif применить. Мат-операции- на ADL5391 - практически без альтернативы. А коэффициенты пересчета задавать токами с внешних ЦАПов- получится достаточно гибко.
Shtirlits
я насчитал TIOPLI+TIOOP = 4.3nS(-5) и 4.83nS(-4)

des00
Цитата(Shtirlits @ Oct 26 2010, 04:38) *
Не согласен. С точки зрения художественного выпиливания напильником по fpga эти цепи влияют только на fanout и ресурсы разводки входных сигналов, чем портят жизнь тем, кто определяет выход текущего отсчета.

оставим сей бесполезный спорт, как не хочется вас к ТАУ посылать.
Цитата
Как программист думаю, что сложить, умножить и даже интегрировать можно какими-нибудь операционными усилителями, а параметры на них подавать из FPGA через ЦАП с любой конвейеризацией.

а на кой тогда тут ПЛИС если решение аналоговое?
Цитата(khach @ Oct 26 2010, 05:05) *
Аналогово делать.

+1
syoma
Все еще смотрю решения на ПЛИС. Обработка на Спартан 3AN - около 18нс на все. ЦАП типа AD9748 - 1нс задержка.
Вот не могу понять насчет ADC. Все, что есть - идет как минимум с 5-цикловой задержкой на всякую фигню. Что только Maxim настоящие FLASH АЦП делает? Или кто-то еще? Может тыкнуть где рыть?
serebr
Для AD9748 setup time=2 ns, задержка=1 ns, время установления до 1% - порядка 8 ns. Итого 11 ns минимум только на ЦАП. rolleyes.gif
syoma
Цитата
Итого 11 ns минимум только на ЦАП.

Не - Output Rise Time (10% to 90%) - 2.5нс. А 11нс - до 0.1%. Мне так точно не надо будет. Все равно выход так резко меняться не будет.
Vjacheslav
"Настоящие" параллельные АЦП - выдают результат за один такт на выход - никто не делает: обязательно 2-3 конвейера - по крайней мере все какие мне попадались и использовались были такие.
И это понятно почему - никто не использует "градусниковый" код, значит уже один конвейер необходим и т.д.
ViKo
Цитата(Vjacheslav @ Oct 29 2010, 09:40) *
"Настоящие" параллельные АЦП - выдают результат за один такт на выход - никто не делает

Делают. Особенно раньше так делали, когда частота 100 MHz была пределом мечтаний.
См. документ из поста №7, а в нем стр. 6
Vjacheslav
Цитата(ViKo @ Oct 29 2010, 10:04) *
Делают. Особенно раньше так делали, когда частота 100 MHz была пределом мечтаний.
См. документ из поста №7, а в нем стр. 6

Вы себе противоречите - или за дурачков держите других.
Именно про то что нарисовано на стр.6 (рис.5) я и говорил. Там на этом рисунке отчетливо видно:
результат измерения N появляется на выходе через 2 такта!! Я с ними (параллельными АЦП) "наигрался"
в начале 80-х и пишу про то что знаю и в чем уверен! Могу даже объяснить почему чем выше частота
тактирования параллельного АЦП тем неизбежнее наличие конвейейерных регистров.
ViKo
Цитата(Vjacheslav @ Nov 2 2010, 14:50) *
Вы себе противоречите - или за дурачков держите других.
Именно про то что нарисовано на стр.6 (рис.5) я и говорил. Там на этом рисунке отчетливо видно:
результат измерения N появляется на выходе через 2 такта!! Я с ними (параллельными АЦП) "наигрался"
в начале 80-х и пишу про то что знаю и в чем уверен! Могу даже объяснить почему чем выше частота
тактирования параллельного АЦП тем неизбежнее наличие конвейейерных регистров.

Почему-то я на этом рисунке 5 вижу, что данные, соответствующие выборке N, появляются на выходе уже в следующем такте (upd. - а это и есть "за один такт"). Где и кому я противоречил? Я тоже применял когда-то, разные...
А про частоту и такты - это ж понятно! Пример - процессор Pentium 4. Если хотите высказать свое мнение - прошу!
P.S. Нашел АЦП, который когда-то пробовал применять, AD9002. Скачайте файл с описанием и увидите там точно такую же картинку, как наш рис 5.
P.P.S. Вас не смущает, что можно сделать устройство, перемножающее многобитовые числа за один такт?

А вот еще "круче" картинка. Правда, таких уже нет. И не надо! smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.