реклама на сайте
подробности

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


Участник
*

Группа: Участник
Сообщений: 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? То есть если данные будут хранится в памяти, а по мере необходимости вычислений они оттуда будут выдёргиваться.

Если да, то был бы благодарен за ссылки на примеры использование памяти или статьи. Безусловно, гуглить обязательно буду, но вдруг, у кого уже под рукой хороший готовый материал. Просто пока для меня это чёрный ящик, надо в него заглянуть с фонариком smile.gif.

Заранее спасибо, коллеги!


--------------------
Усложнять - просто, упрощать - сложно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
m0use
сообщение Sep 15 2010, 21:55
Сообщение #2


Участник
*

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



Несколько раз перечитывал, что вы мне ответили, чтобы понять smile.gif.

Цитата
выполняете кучу преобразований за один такт очень крутой комбинаторной функцией может серьёзно снижать общ. произв. системы


Хотел бы уточнить в чём заключается снижение производительности? В том, что в комбинаторной функции в каждый момент времени выполняется только одна ветка? Или в чём? Просто я думал, что работа ПЛИС на уровне железа и состоит из работы множества простых операций вне зависимости от уровня кода. Выходит, Вы говорите, что на уровне кода необходимо дробить операции?

Цитата
лучше выложите исходник - быстрее получите качественную консульт.


Я ещё попробую использовать память, если не поможет, то обращусь за такой помощью. Просто представляю, какой это труд в чужом коде разбираться, да ещё ошибки искать.

Цитата
узкий поток данных на вход-выход


Тоже прекрасно понимаю, что это узкое место в системе, но не знаю, что с этим делать. Смысл проекта в том, что с компьютера по какому-нибудь интерфейсу (пока это RS232, потом планируется Ethernet) передаётся изображение (матрица порядка 640x480). Это изображение обрабатывается на ПЛИСе и выдаёт результат. Да, передача матрицы - процесс, который ощутим в общем времени работы, но куда от него деться?

Цитата
Более подробно читаем тут...


Спасибо.

И. Ещё раз ВСЕМ спасибо.


--------------------
Усложнять - просто, упрощать - сложно.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Sep 15 2010, 22:48
Сообщение #3


тоже уже Гуру
******

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



Цитата(m0use @ Sep 16 2010, 00:55) *
Выходит, Вы говорите, что на уровне кода необходимо дробить операции?

алгоритм в структурном исполнение состоит из (в общем случае) их путей прохождения данных. пути состоят из промежуточных хранилищ(например регистров) и комбинаторной блоков комбинаторной логики, которые осуществляют эффективное преобразование потока данных (еслественно, что пути данных не обязательно линейны и однонаправленны, они могут иметь обратные связи, пересекаться и расходиться при помощи коммутирующих элементов, хотя коммутирующие элементы тоже суть комбинаторика/фактически мультиплексоры - это пересечение потока данных и условного потока управления/)
при установившемся и постоянном потоке данных в синхронном цифровом дизайне производительность системы тем выше, чем выше тактовая частота тактируемых в пути данных регистров (зы: для чисто управляющих систем это немножко не так, точнее тоже так, но там приоритеты другие - важна скорость отклика) частота тактирования может быть тем выше, чем меньше время распространения сигнала от одного регистра до соседнего, следовательно макс. частота опред. наибольшей задержкой распр. данных между регистрами. т.о. нужно стремится, чтобы кмбинаторная логика была равномерно размазана между слоями регистров.
более того, если комбинаторная функция зависит не только от предыдущего состояния системы(просто пример - сравнение с накопленной за несколько шагов суммой), но и от более ранней истории состояний, сложность комбинаторики возрастает нелинейно (зависимость от кол-ва операндов и кол-ва состояний). поэтому разумно произвести эквивалентное преобразование, которое разобьёт вычисление на несколько шагов с сохранением промежуточных результатов вычисления (так и появляются автоматы состояний - хотя почти любой считающий автомат можно разложить на параллельную комбинаторику, сложность этой комбинаторики будет настолько сложной, что электроны умрут от старости, пока будут бежать от одной ступени конвейера до другой, поэтому целесообразней создать автомат, который бу работать последовательно, но с малым вр. исп. операции).
ну вот примерно так. надеюсь не слишком сложно объяснил, чтобы что-то полезное из этого сообщ. для себя извлечь
ЗЫ: картинку des333 подобрал на редкость неудачную - смотреть и вникать на её нижнюю часть строго воспрещается, т.к. она описывает технику вычисления волной (где тактирующий сигнал распространяется вместе с потоком данных)

если что-то не понятно из объяснения - спрашивайте, попробую переформулировать в более понятной манере
удач

Цитата(m0use @ Sep 16 2010, 00:55) *
Я ещё попробую использовать память, если не поможет, то обращусь за такой помощью. Просто представляю, какой это труд в чужом коде разбираться, да ещё ошибки искать.

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


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
des333
сообщение Sep 15 2010, 22:52
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(CaPpuCcino @ Sep 16 2010, 02:48) *
ЗЫ: картинку des333 подобрал на редкость неудачную - смотреть и вникать на её нижнюю часть строго воспрещается, т.к. она описывает технику вычисления волной (где тактирующий сигнал распространяется вместе с потоком данных)

Согласен. Просто рисовать было неохота, а в гугле другие картинки  на скорую руку не нашлись.
Подумал, что для новичок вникать в асинхронную суть второго варианта не станет, и что сойдет картинка. Но, наверное, рисковать не стоит, уберу ка я лучше картинку.  smile.gif

Цитата(CaPpuCcino @ Sep 16 2010, 02:48) *
да вы не беспокойтесь - никто через чур напрягаться здесь не будет. если будет слишком плохо накодировано - пошлют в библиотеку учиться

biggrin.gif


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - des333   Цитата(m0use @ Sep 16 2010, 01:55) Хотел ...   Sep 15 2010, 22:04
|- - 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
- - m0use   Спасибо, войны дизайна . Вы мне глаза приоткрывает...   Sep 21 2010, 19:46
|- - CaPpuCcino   Цитата(m0use @ Sep 21 2010, 22:46) мне не...   Sep 21 2010, 21:46
- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 17:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.02025 секунд с 7
ELECTRONIX ©2004-2016