|
Использование встроенной памяти ПЛИС. |
|
|
|
Sep 13 2010, 21:33
|

Участник

Группа: Участник
Сообщений: 29
Регистрация: 6-08-10
Пользователь №: 58 790

|
Доброго всем времени суток! Вопрос такой. Пишу код, который работает с матрицами, в том числе обрабатывает их в циклах. Получилось так, что текущая версия кода при размере матрицы, далёком от практических потребностей код требует значительных ресурсов (насколько я понял из отчёта, близких к предельным для этой ПЛИСы): Logic Utilization: Number of Slice Flip Flops: 1,231 out of 9,312 13% Number of 4 input LUTs: 8,329 out of 9,312 89% Logic Distribution: Number of occupied Slices: 4,654 out of 4,656 99% Total Number of 4 input LUTs: 8,741 out of 9,312 93% Number of bonded IOBs: 19 out of 232 8% Number of BUFGMUXs: 1 out of 24 4% Number of MULT18X18SIOs: 20 out of 20 100% Скажите, ребят, если я буду использовать память (пока я себе это представляю как модуль памяти из IP Core Generator), то снизит ли это количество используемых LUT? То есть если данные будут хранится в памяти, а по мере необходимости вычислений они оттуда будут выдёргиваться. Если да, то был бы благодарен за ссылки на примеры использование памяти или статьи. Безусловно, гуглить обязательно буду, но вдруг, у кого уже под рукой хороший готовый материал. Просто пока для меня это чёрный ящик, надо в него заглянуть с фонариком  . Заранее спасибо, коллеги!
--------------------
Усложнять - просто, упрощать - сложно.
|
|
|
|
|
 |
Ответов
|
Sep 21 2010, 19:46
|

Участник

Группа: Участник
Сообщений: 29
Регистрация: 6-08-10
Пользователь №: 58 790

|
Спасибо, войны дизайна  . Вы мне глаза приоткрываете на HDL! У меня, конечно, вопросов только больше становится, но что-то начинаю понимать  . С частотой тактирования не разобрался пока. Вот рисунок выше. Я правильно понял, что скорость возрастает за счёт того, что во втором случае (pipeling) комбинаторной логики станет меньше? А не просто от того факта, что регистр появился. Просто, к примеру фраза: Цитата Там где очень много логики между регистрами - там самая низкая частота. мне непонятна. Насколько я себе представляю, в простейшем случае все логические блоки сидят на одном CLK. Или CLK - это не один "проводник", на нём задержки присутствуют? Цитата The Design Warrior's Guide to FPGAs Спасибо за книгу. Пока кажется очень обстоятельной.
--------------------
Усложнять - просто, упрощать - сложно.
|
|
|
|
|
Sep 21 2010, 21:46
|

тоже уже Гуру
     
Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973

|
Цитата(m0use @ Sep 21 2010, 22:46)  мне непонятна. Насколько я себе представляю, в простейшем случае все логические блоки сидят на одном CLK. всё верно (для простейшего случая) - чем сложнее логическая функция, тем длиннее и тернистее путь для прохождения всех сигналов по всем возможным внутренним путям. поэтому частота тактирования выбирается ~по максимальному времени распространения сигнала, иначе регистр стоящий на конце этого пути защёлкнет свою челюсть до того как до него добежит фронт сигнала. вот смотрите: допустим у вас вся система построена на 2х входовых элементах И и ИЛИ (+ регистры). где-нибудь в пути между двумя соседними регистрами вам необходимо выполнить преобразование ((A & B ) | (C & D)) & (F & E), и есть где-нибудь в пути между другими соседними регистрами функция (X & Y). каждый логический вентиль даёт задержку сигнала 1 нс. в первом случае у вас минимальная задержка прохождения сигнала будет 2 нс, а максимальная 3 нс (посчитайте количество скобок в выражении и попробуйте нарисовать эту пирамидальную структуру с задержками на каждом вентиле. чтобы понять, что можно говорить и о минимальной задержке, представьте, что некоторые переменные могут и не меняться, т.е. сигнал на этих путях стабилен - фронта распространения нет). во втором случае время задержки 1 нс (если принять, что хоть один сигнал из X,Y меняться всё-таки должен). все регистры системы тактируются одновременно (!условно! одновременно, т.к. сигнал тактирования тоже должен бегать по проводам, а длинна этих проводов до каждого из регистров может быть разная, но этим можно пока пренебречь). если мы будем тактировать систему с учётом минимально возможной задержкой (1нс на X&Y), то первая функция просто не будет успевать пропустить через себя изменяемые значения собственных переменных и всё у нас будет через одно место, поэтому приходится тактировать схему с частотой как минимум соответств. самой большей задержке системы. теперь, если угодно вопрос на засыпку: а можно ли схему выполняющую те же самые логические преобразования изменить так, чтобы заставить тактироваться всё-таки с периодом в 1нс? (при тех же самых условиях о 2х входовых элементах с 1нс задержкой фронта) ЗЫ: в архитектурах ПЛИС в данный момент логика реализуется не на базе 2х входовых булевых вентелях, но общий принцип остаётся тем же Цитата(m0use @ Sep 21 2010, 22:46)  Я правильно понял, что скорость возрастает за счёт того, что во втором случае (pipeling) комбинаторной логики станет меньше? А не просто от того факта, что регистр появился. ну вот только вы не до конца проговариваете предложение: "... комбинаторной логики станет меньше между двумя соседними регистрами в пути" (потому, что общее количество комбинаторики может как увеличиться так и убавиться в зависимости от реализации или эквивалентной трансформации вычислительного метода). важно, чтобы количество комбинаторной логики на пути прохождения любого сигнала между двумя любыми соседними регистрами было примерно одинаково.
--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
|
|
|
|
Сообщений в этой теме
m0use Использование встроенной памяти ПЛИС. Sep 13 2010, 21:33 Shtirlits Я бы ответы искал User Guide на конкретную микрос... Sep 13 2010, 22:28 CaPpuCcino скажите сразу, что за кристалл, чтоб лишний раз не... Sep 13 2010, 23:01 Krys Цитата(CaPpuCcino @ Sep 14 2010, 06:01) З... Oct 12 2010, 07:07 m0use Спасибо за советы и Ваше время!
Кристалл - Sp... Sep 14 2010, 21:21 CaPpuCcino Цитата(m0use @ Sep 15 2010, 00:21) Я не о... Sep 14 2010, 23:02 ADA007 Цитата(m0use @ Sep 14 2010, 00:33) Скажит... Sep 15 2010, 05:34 andrew_b Цитата(ADA007 @ Sep 15 2010, 09:34) Так к... Sep 15 2010, 08:03 m0use Несколько раз перечитывал, что вы мне ответили, чт... Sep 15 2010, 21:55 des333 Цитата(m0use @ Sep 16 2010, 01:55) Хотел ... Sep 15 2010, 22:04 CaPpuCcino Цитата(m0use @ Sep 16 2010, 00:55) Выходи... Sep 15 2010, 22:48  des333 Цитата(CaPpuCcino @ Sep 16 2010, 02:48) З... Sep 15 2010, 22:52   CaPpuCcino Цитата(des333 @ Sep 16 2010, 01:52) Подум... Sep 15 2010, 23:06 vadimuzzz у Максфилда (The Design Warrior's Guide to FPG... Sep 16 2010, 00:32 Shtirlits какие есть средства для "эквивалентной трансф... Sep 21 2010, 23:05 des333 Цитата(Shtirlits @ Sep 22 2010, 03:05) ка... Sep 21 2010, 23:08  CaPpuCcino Цитата(des333 @ Sep 22 2010, 02:08) Бумаг... Sep 22 2010, 00:06 m0use Цитататеперь, если угодно вопрос на засыпку: а мож... Sep 22 2010, 11:34 m0use Посмотрел код. Может, в этой триаде - бумага+кара... Sep 22 2010, 14:53 CaPpuCcino а вы моделировали функционально? результат получае... Sep 22 2010, 15:02 m0use Не, и так понятно, Вы доступно объясняете. Спасибо... Sep 22 2010, 15:15 CaPpuCcino а какая оценка тактовой даётся синтезатором?
и поч... Sep 22 2010, 15:27  des333 Цитата(CaPpuCcino @ Sep 22 2010, 19:27) в... Sep 22 2010, 15:53 m0use Цитатаа какая оценка тактовой даётся синтезатором?... Sep 22 2010, 16:20 CaPpuCcino Цитата(m0use @ Sep 22 2010, 19:20) Самое ... Sep 22 2010, 16:52 m0use Понятно. А есть ли возможность конвеерно выполнять... Sep 22 2010, 17:02 CaPpuCcino Цитата(m0use @ Sep 22 2010, 20:02) Понятн... Sep 22 2010, 17:20 m0use Идею понял, только уточнить хочу. Если у меня в al... Sep 22 2010, 17:34 des333 Цитата(m0use @ Sep 22 2010, 21:34) Идею п... Sep 22 2010, 17:50 CaPpuCcino Цитата(m0use @ Sep 22 2010, 20:34) Если у... Sep 22 2010, 17:52
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|