Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сделать из FPGA термометр
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Shtirlits
Добрый день, коллеги.

Итак, имеем некую FPGA, хочется подстраховаться на случай перегрева.
Лучше, чтобы об этом подумал разработчик платы, но можно ли что-то сделать, когда все ужо запаяно и менять можно только прошивку?

Известно, что при изменении температуры свойства FPGA будут меняться.
Можно ли использовать этот эффект?
Например, сделать генератор на LUT-ах или других имеющихся элементах и мерять частоту.
rezident
Непонятна суть проблемы. Почему может возникнуть перегрев? Изначально неправильно тепловые режимы схемы были расчитаны или предполагается, что пользователь может в недопустимый тепловой режим ее загнать? Вообще при наличии какого-либо внешнего термодатчика и компаратора проблема решаема - сигма-дельта АЦП в FPGA реализуется несложно.
SM
те микросхемы, которые физически можно перегреть (которые по даташиту могут требовать активного охлаждения), имеют в себе термодатчик.
vitus_strom
A cto za FPGA v nekotoryh iz nih uze est' diod dlja izmerenija T
artem79
Цитата(Shtirlits @ Aug 4 2009, 21:21) *
Например, сделать генератор на LUT-ах или других имеющихся элементах и мерять частоту.

Идея конечно интересная. Но даже если и будет изменение частоты, то чем мерить собираетесь? Этой же FPGA?
Mahagam
Цитата(artem79 @ Aug 5 2009, 10:36) *
Идея конечно интересная. Но даже если и будет изменение частоты, то чем мерить собираетесь? Этой же FPGA?

а как же ещё? почти всегда на входах FPGA есть стабильная частота от кварца. относительно неё и можно измерять.

вот только частота не только от температуры будет зависет, от просадок напряжения тоже.
SM
Цитата(Mahagam @ Aug 5 2009, 11:50) *
от просадок напряжения тоже.

Ну во первых питание можно и стабилизированное подать smile.gif А если все совсем так плохо, то и мерять его. Однако, все же, те чипы, что без встроенного датчика T, хрена с два перегреешь, если не разгонять выше допустимой частоты и не выходить за пределы допустимых рабочих температур окр. среды.
artem79
Цитата(Mahagam @ Aug 5 2009, 11:50) *
а как же ещё? почти всегда на входах FPGA есть стабильная частота от кварца. относительно неё и можно измерять.


Если будет изменение частоты в блоке генератора, то и в блок измерения то же будут неблюдаться уходы. И хорошо если они разбегуться в разные стороны - увеличение диапазона измерения. А если будет компенсирование, то гораздо хуже. Возмлжно и мерить нечего будет.

Цитата
почти всегда на входах FPGA есть стабильная частота от кварца. относительно неё и можно измерять.


Тогда уж надо вести разговор относительно текущего проекта. А какая в нём частота? И соответственно какую дельта сможем ей измерить.
SM
Цитата(artem79 @ Aug 5 2009, 12:30) *
Тогда уж надо вести разговор относительно текущего проекта. А какая в нём частота? И соответственно какую дельта сможем ей измерить.

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

Главное и основное "но" это зависимость частоты, и, главное, зависимости частоты от температуры от технологических разбросов. Т.е. таких умельцев ждет калибровка хотя бы в четырех-пяти точках для каждого экземпляра ПЛИС.
Sergey'F
Это перестраховка или действительно перегревается? Может быть, лучше просто подобрать и поставить радиатор на клейком двустороннем скотче? В каталогах типа RS они есть. Стоит недорого.

IMHO, все эти идеи с генераторами ничем хорошим не закончатся. Приклейте радиатор и нормально организуйте вентиляцию/теплоотвод в корпусе.
Shtirlits
Спасибо за комментарии. Перефразирую условия задачи, боюсь не уникальной:
Плата готова, разработчики платы не поставили никаких средств контроля температуры.
Однако, имеющейся системы охлаждения было до сих пор достаточно.
Теперь речь идет о разработке другой прошивки, которая будет работать на бОльшей частоте,
хотя и не будет выходить за документированные пределы.
То есть, скорее всего все будет хорошо. Но осадочек есть.
Лепить радиаторы и стабилизировать питание в этой ситуации никто не соберется,
пока не случится сбой.

А что если сделать так:
Основная часть схемы крутит (Фурье какие-нибудь) на предельной частоте, во имя производительности она разводится без запаса, лишь бы STA не ругался. Схема для контроля разводится с запасом, с каким не жалко. Еще понадобится какой-то пробник, на который бы смотрела схема контроля. Пробник может быть как раз генератором на LUT-ах.
Смотрите, при анализе таймингов мы оперируем абсолютными единицами времени. В тактовом генераторе у нас стабильная частота, тоже абсолютная. А все остальные процессы в FPGA относительные, зависимые от температуры, напряжения, свойств экземпляра.
С помощью STA или руками по документации можно прикинуть предельное время прохождения сигнала через цепочку LUT-ов при условиях, которые использовались при контроле основной части. Я бы исходил изпредположения, что в FPGA все элементы примерно одинаковые. Если испытуемая часть схемы замедлилась, то и с основной могут начаться проблемы.

Калибровать не нужно на мой взгляд. Нужен только кварцевый генератор.
SM
Цитата(Shtirlits @ Aug 5 2009, 15:25) *
Калибровать не нужно на мой взгляд. Нужен только кварцевый генератор.

Нужно. Один экземпляр может замедлиться при сверхзапредельной температуре, близкой к повреждению кристалла лишь незначительно, второй же замедлится при подходе к границе разрешенного диапазона (но еще далеко от разрушения) уже значительно. Более того, в результате градиента в техпроцесе один угол большого чипа может замедлиться совсем не так, как другой.

ЗЫ. А если ничего не выходит за документированные режимы, включая условия охлаждения микросхемы, то даже и думать на эту тему не надо.
Михаил_K
Цитата(vitus_strom @ Aug 5 2009, 10:47) *
A cto za FPGA v nekotoryh iz nih uze est' diod dlja izmerenija T

Например Spartan3ADSP не имеет такого диода. Мать их так этих хилых. maniac.gif
SM
Цитата(Михаил_K @ Aug 5 2009, 18:35) *
Например Spartan3ADSP не имеет такого диода. Мать их так этих хилых. maniac.gif

И что, при этом при каких-то допустимых условиях без активного охлаждения может перегреваться?
Sergey'F
Цитата(Михаил_K @ Aug 5 2009, 18:35) *
Например Spartan3ADSP не имеет такого диода. Мать их так этих хилых. maniac.gif

А что в этом плохого? У Altera тоже диод есть только в Stratix III и IV, в Циклонах и первых двух Стратиксах его нет.
SM
Цитата(Sergey'F @ Aug 5 2009, 20:28) *
и первых двух Стратиксах его нет.

В первом точно есть. Ноги "tempdiodep" и "tempdioden"
Sergey'F
Цитата(SM @ Aug 5 2009, 20:35) *
В первом точно есть. Ноги "tempdiodep" и "tempdioden"

Да, соврал. Есть во всех Стратиксах.

Но, по сути, это скорее диагностика. Вот он перегрелся - и что делать? Если неправильно спроектирован теплоотвод, то диод уже не поможет. А перегреть можно любую микросхему просто по условиям эксплуатации, например, если рядом на плате стоит что-то горячее, или заказчик требует работоспособность до 100С, а максимальная температура кристалла - до 125, то будет, о чем задуматься в плане теплоотвода.
SM
Цитата(Sergey'F @ Aug 5 2009, 20:41) *
Но, по сути, это скорее диагностика. Вот он перегрелся - и что делать?

Срубить клок, пока не остынет. Например.
rezident
Цитата(Sergey'F @ Aug 5 2009, 22:41) *
Вот он перегрелся - и что делать?
А что делают с процессором в вашем компьютере, если радиатор отпал или кулер застопорился? Thermal Throttling
ArMouReR
Если кол-во экземпляров не слишком большое - может просто навесить на сопрлях какой то термодиод.
Подклчить к тест поинтам или к какому то разьему ?

Вариант с Ring Oscilatorом хорошо работает на ASIC. А в FPGA будет очень вычислить тайминг с хорошей точностью.
Shtirlits
Цитата(ArMouReR @ Aug 6 2009, 00:30) *
Если кол-во экземпляров не слишком большое - может просто навесить на сопрлях какой то термодиод.

Шпаргалками пользоваться не будем.
Я добавлю еще одно условие, чтобы уже не было никаких поползновений - работа удаленная, персонал около платы не имеет квалификации и полномочий что-то припаивать.
У разработчика прошивки выбор либо что-то предусмотреть, либо надеяться, что вентиляторы будут работать исправно и воздух окажется достаточно холодным.
ArMouReR
А кварц на входе есть, как я понимаю ? Причем дополнительный, а не тот который подключен к PLL для основной схемы ?
Shtirlits
Цитата(ArMouReR @ Aug 6 2009, 01:36) *
А кварц на входе есть, как я понимаю ? Причем дополнительный, а не тот который подключен к PLL для основной схемы ?

В моем конкретном случае кварц один и он подключен к PLL.
Но я не понимаю, зачем нужен еще один?
ArMouReR
Просто если я правильно помню посадить логику на вход с кварца паралельно с PLL нельзя.
Компайлер будет ругаться.

Ну а к теме вопроса: посторой большой Ring Oscilator и попробуй посчитать его период счетчиком который сидит на кварце.
Потом плату в печь и посмори будет ли разница...

По идее чем длинее будет Ring Oscilator тем выше будет точность...
murmel1
Цитата(ArMouReR @ Aug 6 2009, 16:38) *
Просто если я правильно помню посадить логику на вход с кварца паралельно с PLL нельзя.
Компайлер будет ругаться.

В стратиксе можно
SM
Цитата(ArMouReR @ Aug 6 2009, 16:38) *
Просто если я правильно помню посадить логику на вход с кварца паралельно с PLL нельзя.


А зачем? Если можно на выход PLL? Ее джиттер в данной задаче полностью по барабану, а частота стабильна в той же мере, что и входная.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.