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

 
 
> Потоковая обработка адресных данных
void F()
сообщение Aug 16 2014, 14:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 16-08-14
Пользователь №: 82 563



Добрый день, уважаемые.
Необходимо сделать некую систему виртуальных адресов через смещение. (звучит странно, знаю) Вообщем, через ПЛИС проходит адресная 24бит шина и для нее нужно вычислить смещение, подобное: через каждые N адреса прибавлять K.
ADDRвых = ADDRвх + (ADDRвх/N)*K
Тут получается одно сложение, умножение, целочисленное деление; скорость потока данных ~80MHz. Как это можно реализовать на не шибко-быстрой ПЛИС типа Циклона-1 или MAX2? Возможно формулу можно как-то упростить, но я не вижу как.
Есть еще один вариант: хранить виртуальные адреса в памяти, и на-лету их подставлять, но переписывать эту кучу адресов слишком долго, а хранить уж подавно.
Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
iosifk
сообщение Aug 16 2014, 14:43
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(void F() @ Aug 16 2014, 18:34) *
Добрый день, уважаемые.
Необходимо сделать некую систему виртуальных адресов через смещение. (звучит странно, знаю) Вообщем, через ПЛИС проходит адресная 24бит шина и для нее нужно вычислить смещение, подобное: через каждые N адреса прибавлять K.
ADDRвых = ADDRвх + (ADDRвх/N)*K
Тут получается одно сложение, умножение, целочисленное деление; скорость потока данных ~80MHz. Как это можно реализовать на не шибко-быстрой ПЛИС типа Циклона-1 или MAX2? Возможно формулу можно как-то упростить, но я не вижу как.
Есть еще один вариант: хранить виртуальные адреса в памяти, и на-лету их подставлять, но переписывать эту кучу адресов слишком долго, а хранить уж подавно.
Заранее спасибо.

Написано "прибавлять K", а в формуле - стоит знак умножения...
А самое главное, что много вздохов, охов и ахов, а вот о том, идут ли адреса рандомно или берстами не сказано.
И так же не сказано, о латентности. Какова она может быть?
А так - делайте конвейер, и все...



--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
void F()
сообщение Aug 16 2014, 14:58
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 16-08-14
Пользователь №: 82 563



Цитата(iosifk @ Aug 16 2014, 14:43) *
Написано "прибавлять K", а в формуле - стоит знак умножения...
А самое главное, что много вздохов, охов и ахов, а вот о том, идут ли адреса рандомно или берстами не сказано.
И так же не сказано, о латентности. Какова она может быть?
А так - делайте конвейер, и все...

Прибавлять K после каждых N - это важно, поэтому умножение. Все адреса делятся на пакеты по Nшт и после каждого пакета нужно прибавить K. Пример:
K = 2; N = 4;
Ain: 0, 1, 2, 3, 4, 5, 6, 7
Aout: 0, 1, 2, 3, 6, 7, 8, 9

Адреса идут последовательно, иногда случайно. Латентность лучше бы ~4-8ns.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 20:12
Рейтинг@Mail.ru


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