|
Тестовый проект, Загрузка FPGA на XX % |
|
|
|
 |
Ответов
(1 - 13)
|
May 6 2014, 09:23
|

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

|
Цитата(count_enable @ May 6 2014, 11:27)  В любом случае все интересующие параметры очень зависят от разводки. Пока тестовый проект будет иметь другую разводку, ценность его очень сомнительна. Поставив кучу кольцевых осциляторов в одном месте можно сжечь плисину, а если их размазать по кристаллу то он даже не почувствует. энергопотребление зависит от количества тригеров переключаемых в еденицу времени (в основном) + потребление портов I/O... от разводки мало чего зависит (мое мнение, но могу ошибаться) что можно сжечь плис от "проект, который бы "загружал" FPGA на 80-90%" - впервые слышу, да нагрев для "больших" плис возможен...
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
May 6 2014, 09:33
|

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

|
Цитата(alexadmin @ May 6 2014, 12:26)  Я согласен, что у такого метода есть свои недостатки. Но и важный плюс - проверка на практике. Можно тнуть пальцем и сказать, типа вот FPGA ест 20А и все работает (ну или пытается есть 20А, а ваш говеный источник...). Конечно, на готовом [завершенном] проекте было бы лучше, но где ж его взять... так возьмите сгенерируйте множество однотипных модулей (где есть множество тригеров переключаемых в еденицу времени (на каждом такте клока), например FFT), которые б занимали необходимое кол-во ресурсов - запрограмируйте и посмотрите потребелние и температуру. Да, будет погрешность в потребелении, т.к. в настоящем проeкте будут "правильно" использоваться блоки I/O Если есть контроллеры памяти или шины (например PCIe) задествуйте их - непрерывным чтением и записью данных (например значений счетчика). PS например у тексаса (кажется это есть и у линертехнолоджи) есть рекомендации выбора микросхем источников питания под конкретную плис...
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
May 6 2014, 09:46
|
Гуру
     
Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640

|
Цитата(Maverick @ May 6 2014, 13:23)  от разводки мало чего зависит (мое мнение, но могу ошибаться) разводка в ПЛИС это буфера, мультиплексоры/демультиплекоры и т.п. то есть транзисторы, которые переключаются - то есть от разводки должно зависеть, но как измерить - не знаю, можно, наверно, длинную цепочку неоптимизируемых(!) буфферов и в одном случае разрешить их разместить автомату, а в другом задать размещения в разных углах... если мне нужно оценить параметры ПЛИС - беру какой-нибудь масштабируемый проект - SHA, биткоины и т.п. и сравниваю результаты эстиматора с тем же кодом для известной ПЛИС
|
|
|
|
|
May 6 2014, 09:59
|
Знающий
   
Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965

|
Цитата(ViKo @ May 6 2014, 13:41)  Например, длинную линию задержки на триггерах сделать. На все триггеры!  А чтобы все входы-выходы использовать, сделать не одноразрядную задержку, а шину размером IO / 2. А логика, а DSP, а память? На мой взгляд стоит уж тогда брать какой-нибудь готовый блок типа AES (это LUTы + DFF), и FIR (это DSP и те же DFF) ну и что-то типа FIFO для памяти и размножать это в параллель. Это и будет тот велосипед вместо которого надеялся что-то готовое найти...
|
|
|
|
|
May 6 2014, 14:18
|
Частый гость
 
Группа: Свой
Сообщений: 78
Регистрация: 3-09-12
Пользователь №: 73 371

|
Тоже задавался этим вопросом. Для моей задачи этого кода хватило с лихвой, что бы нагреть и "убить" FPGA: после загрузки прошивка сразу же "падала", при уменьшении количества счетчиков FPGA стартовала, и нагревалась, как и требовалось мне. Сама FPGA в моем случае не сгорела, но будьте осторожны  Уверен, что есть варианты как еще больше нагрузить ПЛИСину, но дальше эту тему я не копал. Код // Код можно использовать только на свой страх и риск. // Последствий за то, что случится с вашей железякой я не несу :) localparam CNT_WIDTH = 32; localparam CNT_CNT = 400;
logic [CNT_CNT-1:0][CNT_WIDTH-1:0] cnt0;
genvar z;
generate for( z = 0; z < CNT_CNT; z++ ) begin : zzz if( z == 0 ) begin always_ff @( posedge clk ) cnt0[z] <= cnt0[z] + 1'd1; end else begin always_ff @( posedge clk ) // специально инвертим сумму, что бы было больше переходных состояний, так, каждый такт у нас будет то маленькое, то большое число // чем больше переходных состояний - тем больше потребление должно быть cnt0[z] <= ~(cnt0[z] + cnt0[z-1]); end end endgenerate
// ну и потом cnt0 объединить по ИЛИ/И и вывести на пин/статусные регистры. // + Эти счетчики нужно повесить на блоки памяти и случайно записывать - читать, код с памятью не сохранился, но он тривиален. // + Если у вас системный сlk маленький, то надо задрать его на максимум :)
Сообщение отредактировал johan - May 6 2014, 14:22
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|