|
To RAM or no to RAM - вот в чём вопрос! |
|
|
|
Oct 5 2010, 08:52
|

Участник

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

|
Привет, ребят. Стою перед дилемой просто. Нужна обработка матриц - перемножение, сложение элементов. У меня такие мысли. С первого взгляда, достаточно удобно описывать матрицу как RAM, особенно когда нужно перемножать элементы (на аппаратных умножителях). Но в таком случае за один CLK можно работать только с одним элементом массива (считывать из памяти). Это большое но, потому что хочется максимально распараллелить обработку матрицы. То есть хочется одновременного доступа ко всем элементам - но (и опять же но) комбинаторной логике много, наверно, получается - скорость падает. Есть ли компромисс? Использовать небольшие блоки памяти? Подскажите, уважаемые коллеги! И вообще верны ли мои рассуждения?  .
--------------------
Усложнять - просто, упрощать - сложно.
|
|
|
|
|
 |
Ответов
|
Oct 5 2010, 17:39
|

Участник

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

|
Цитата На константу или переменную? На переменную - тоже моя головная боль будущая. Думаю использовать тут Core Generator. Потому что самому писать реализацию деления... когда-нибудь в другой раз  . Ребят, скажите, пожалуйста, можно ли одновременно оба канала 2-port RAM использовать для чтения?
Сообщение отредактировал m0use - Oct 5 2010, 17:39
--------------------
Усложнять - просто, упрощать - сложно.
|
|
|
|
|
Oct 5 2010, 17:57
|

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

|
Цитата(m0use @ Oct 5 2010, 20:18)  На переменную - тоже моя головная боль будущая. Думаю использовать тут Core Generator. Потому что самому писать реализацию деления... когда-нибудь в другой раз  . На мой взгляд лучше реализация по предложенному мною 3 варианту. Т.е. через конвейерную обработку на проходе. Поясню более подробно (мое видение): Реализовывается задержка на требуемое кол-во строк и пикселей в строке (аналогичную как на рисунке во вложении, из-за этого и предложил уменьшить матрицу  ). Таким образом организовываем окно которое будет "скользить" по изображению. Далее реализовываем конвейерную обработку в темпе считывания изображения (оно ж последовательно поступает на ПЛИС) для значений пикселей в окне - как пример архитектуры реализации конвейера представлен на втором рисунке. PS На рисунках во вложении для примера представлена архитектура реализации медианного фильтра 3х3 для изображения. PS PS На втором рисунке горизонтальные линии - делят обработку на такты для конвейера. PS PS PS Но решение как лучше реализовывать, принимать Вам
Эскизы прикрепленных изображений
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
Сообщений в этой теме
m0use To RAM or no to RAM - вот в чём вопрос! Oct 5 2010, 08:52 Maverick Цитата(m0use @ Oct 5 2010, 11:52) Привет,... Oct 5 2010, 08:57 rv3dll(lex) ващето память имеет скорость больше чем остальная ... Oct 5 2010, 10:59 D13 Цитата(rv3dll(lex) @ Oct 5 2010, 17... Oct 5 2010, 11:28 m0use Цитатакакого размера матрицы? и элементы в матрице... Oct 5 2010, 11:33 Maverick Цитата(m0use @ Oct 5 2010, 14:33) Неплохо... Oct 5 2010, 14:02 Koluchiy Маленькие блоки RAM - это распределенная RAM.
Если... Oct 5 2010, 11:44 m0use ЦитатаМаленькие блоки RAM - это распределенная RAM... Oct 5 2010, 11:58 des00 Цитата(m0use @ Oct 5 2010, 06:58) Просто,... Oct 5 2010, 12:05 m0use Цитатаа ничего что латентность чтения у этих блоко... Oct 5 2010, 12:16 rv3dll(lex) вообще про какую плис речь?
для памяти нужен свой... Oct 5 2010, 12:57 m0use А менеждеры клоков умеют получать из одного клока ... Oct 5 2010, 13:08 m0use ЦитатаПочему бы не взять за основу матрицу 8х6? Ка... Oct 5 2010, 14:38 Maverick Цитата(m0use @ Oct 5 2010, 17:38)
для ко... Oct 5 2010, 14:46 vadimuzzz Цитата(m0use @ Oct 5 2010, 21:38) Теперь ... Oct 5 2010, 22:43  rv3dll(lex) Цитата(vadimuzzz @ Oct 6 2010, 02:43) ест... Oct 6 2010, 04:48   vadimuzzz Цитата(rv3dll(lex) @ Oct 6 2010, 11... Oct 6 2010, 05:42 Koluchiy Цитатакак по мне лучше распределенная память - на ... Oct 5 2010, 15:08 Maverick Цитата(Koluchiy @ Oct 5 2010, 18:08) И ре... Oct 5 2010, 16:56 m0use Цитатаподелиться алгоритмом обработки изображения
... Oct 5 2010, 16:14 m0use Офигеть! Maverick, спасибо, что поведал про та... Oct 5 2010, 20:02 Maverick Цитата(m0use @ Oct 5 2010, 23:02) Офигеть... Oct 6 2010, 06:26  CaPpuCcino Цитата(Maverick @ Oct 6 2010, 09:26) Перв... Oct 6 2010, 06:51   Maverick Цитата(CaPpuCcino @ Oct 6 2010, 09:51) а ... Oct 6 2010, 07:21 Koluchiy Цитатачто делать? человек всегда становится перед ... Oct 5 2010, 20:25 m0use Цитатаесть еще такой вариант: использовать RAM с ш... Oct 6 2010, 09:23 CaPpuCcino Цитата(m0use @ Oct 6 2010, 12:23) Многопо... Oct 6 2010, 09:34 vadimuzzz Цитата(m0use @ Oct 6 2010, 16:23) Многопо... Oct 6 2010, 09:49 Maverick Цитата(m0use @ Oct 6 2010, 12:23) У меня ... Oct 6 2010, 13:34 m0use ЦитатаПодумайте, может можно заменить операцию дел... Oct 6 2010, 09:35 m0use Цитатаможно дублировать контент (параллельная запи... Oct 6 2010, 09:51 m0use Цитатапоясните, плиз 2 пункт
Неясно выразился, во... Oct 7 2010, 14:48 CaPpuCcino Цитата(m0use @ Oct 7 2010, 17:48) Поэтому... Oct 7 2010, 17:51 m0use Ребят, всем спасибо за советы и помощь. Я бы хотел... Oct 7 2010, 21:30 CaPpuCcino Цитата(m0use @ Oct 8 2010, 00:30) Получае... Oct 8 2010, 03:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|