|
Потоковая обработка адресных данных |
|
|
|
Aug 16 2014, 14:34
|
Участник

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

|
Добрый день, уважаемые. Необходимо сделать некую систему виртуальных адресов через смещение. (звучит странно, знаю) Вообщем, через ПЛИС проходит адресная 24бит шина и для нее нужно вычислить смещение, подобное: через каждые N адреса прибавлять K. ADDRвых = ADDRвх + (ADDRвх/N)*K Тут получается одно сложение, умножение, целочисленное деление; скорость потока данных ~80MHz. Как это можно реализовать на не шибко-быстрой ПЛИС типа Циклона-1 или MAX2? Возможно формулу можно как-то упростить, но я не вижу как. Есть еще один вариант: хранить виртуальные адреса в памяти, и на-лету их подставлять, но переписывать эту кучу адресов слишком долго, а хранить уж подавно. Заранее спасибо.
|
|
|
|
|
 |
Ответов
|
Aug 16 2014, 14:43
|
Гуру
     
Группа: Модераторы
Сообщений: 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
|
|
|
|
|
Aug 16 2014, 14:58
|
Участник

Группа: Участник
Сообщений: 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.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|