Перейти к содержанию

Максимальная загрузка плис help

Добрый день!
Не так давно начал учиться работать с FPGA.
Для работы нужно сделать прошивку чтобы максимально все задействовать (FPGA spartan 6 XC6SLX45 CSG324C), подскажите пожалуйста как такое можно попроще и эффективнее реализовать. wacko.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(iverson @ Jan 23 2018, 16:35) <{POST_SNAPBACK}>
Для работы нужно сделать прошивку чтобы максимально все задействовать (FPGA spartan 6 XC6SLX45 CSG324C), подскажите пожалуйста как такое можно попроще и эффективнее реализовать. wacko.gif

Что значит "задействовать"?
По числу выводов? По потребляемой мощности? По внутренним ресурсам? Напишите подробнее..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Задействовать по внутренним ресурсам.
Можно ли сделать на столько огромный сдвиговый регистр или счетчик?
Нужно задать какую либо последовательность (к примеру 101010..) прогнать через всю ПЛИС и на выходе убедиться что последовательность не нарушилась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(iverson @ Jan 23 2018, 16:35) <{POST_SNAPBACK}>
Для работы нужно сделать прошивку чтобы максимально все задействовать (FPGA spartan 6 XC6SLX45 CSG324C)
А какая в этом стоит цель? Оценить энергопотребление или какая-то другая?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(iverson @ Jan 23 2018, 17:57) <{POST_SNAPBACK}>
Задействовать по внутренним ресурсам.
Можно ли сделать на столько огромный сдвиговый регистр или счетчик?
Нужно задать какую либо последовательность (к примеру 101010..) прогнать через всю ПЛИС и на выходе убедиться что последовательность не нарушилась.

Смысла в этом почти никакого нет.
Ну сделаете регистр. Как будете "проверять"? Осциллом на выходном пине? Так один сбой из 20 никак не увидите. А при этом память, DSP блоки и пр. не будут задействованы. Да и интерконнекты тоже далеко не все...
А какой глобальный смысл? Проверить, что "работает"? Или "препод так сказал"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(iosifk @ Jan 24 2018, 10:52) <{POST_SNAPBACK}>
Смысла в этом почти никакого нет.
Ну сделаете регистр. Как будете "проверять"? Осциллом на выходном пине? Так один сбой из 20 никак не увидите. А при этом память, DSP блоки и пр. не будут задействованы. Да и интерконнекты тоже далеко не все...
А какой глобальный смысл? Проверить, что "работает"? Или "препод так сказал"?

Мне такое задание тоже давали на начальном этапе, чтобы мощность потребляемую посмотреть (как мне тогда казалось). А нас самом деле оказалось, что цель была разобраться в архитектуре конкретной ПЛИС и, каким образом эта мощность вообще рассчитывается и от чего зависит.
Цитата
Задействовать по внутренним ресурсам.

Какие именно внутренние ресурсы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(iosifk @ Jan 24 2018, 10:52) <{POST_SNAPBACK}>
А какой глобальный смысл? Проверить, что "работает"? Или "препод так сказал"?

Полагаю, это очередная реинкарнация подзаборного Студента (он же - Флюктуация вакуума, и тд). Он тут недавно сильно возбудился от параллельности FPGA.

Так что никакого глобального смысла в вопросе нет, а есть желание потроллить как можно больше народу. Вот и выискивает темы, способные как следует "зажечь" публику..

biggrin.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(blackfin @ Jan 24 2018, 11:10) <{POST_SNAPBACK}>
Так что никакого глобального смысла в вопросе нет, а есть желание потроллить как можно больше народу. Вот и выискивает темы, способные как следует "зажечь" публику..

Да не, для "розжига" можно намного актуальнее тему найти.

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В очередной раз пиарю свою поделку для этой задачи: https://opencores.org/project,highload
Можно занять весь объем (+-5%) логики, регистров, памяти и dsp. Трансиверы уж как-нибудь сами wink.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(blackfin @ Jan 24 2018, 11:10) <{POST_SNAPBACK}>
Полагаю, это очередная реинкарнация подзаборного Студента (он же - Флюктуация вакуума, и тд).

Непохож, скорее обычный студень. sm.gif Кстати выискивание троллей, троллей возбуждает и считается за заслугу. Так что во имя качества ресурса и общего улучшения SNR лучше не вспоминать о нём вовсе. Больной человек и не лечится, жаль что помочь ему некому.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(alexadmin @ Jan 24 2018, 11:59) <{POST_SNAPBACK}>
В очередной раз пиарю свою поделку для этой задачи..

Ну можно же с помощью generate синтезировать 100500 любых мелких IP блоков и соединить их последовательно.. Эффект будет тот же..

Например, можно взять много мелких FFT и соединив их последовательно задействовать все умножители, всю память и всю логику в ПЛИС. "Или нет?"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(blackfin @ Jan 24 2018, 12:13) <{POST_SNAPBACK}>
Ну можно же с помощью generate синтезировать 100500 любых мелких IP блоков и соединить их последовательно.. Эффект будет тот же..

Например, можно взять много мелких FFT и соединив их последовательно задействовать все умножители, всю память и всю логику в ПЛИС. "Или нет?"


В теории да.
Сложность в том, чтобы обеспечить баланс между всеми элементами. FFT, скорее всего, сожрет все DSP сильно раньше чем логику/триггеры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вот простой тест на эту тему
reg [100500:0] x;
always@(posedge clock)
begin
x[0] <= !x[0]
x[1] <= x[0];
x[2] <= x[1];
x[3] <= x[2];
x[4] <= x[3];
i>=5
x[i] <= x[i-1]^x[i-2]^x[i-3]^x[i-4]^x[i-5];

end

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

Умножителям, наверное, желательно подобрать паттерны позлее, чтобы была больше потребляемая мощность. Ну я бы так сделал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1) На reg [100500:0] x; скорее всего навернется еще синтезатор, надо разбивать на части.
2) Наблюдал падение питания ядра на 20-30% от номинала без "слетания" прошивки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация