Технический форум по робототехнике.
toshas » 09 сен 2007, 12:33
Добрый день!
с ПЛИСами не работал, поэтому спрашиваю реально ли сделать на них следующее:
массив из N 16битных чисел и константа D0
for( ; ; ) {
1. каждое число в массиве сдвигается на соседнее место M[i]->M[i+1], M[N] при этом теряется, M[0] освобождается
2. записать извне (spi или паралл.) новое число на место M[0]
3. взять среднее от k чисел M[0],....,M[k] (M1) и M[N-k],.....,M[N] (M2)
4. вычислить (M2-M1)/(N-k)=D
5. сравнить D и D0
}
какова максимально возможная скорость реализации этого алгоритма ?
на сколько большими могут быть заданы числа N и k (хотелось бы N>1.000.000 k>1000)?
спасибо!
avr123.nm.ru » 09 сен 2007, 12:47
Конечно возможно. Про скорость не занаю.
-= Александр =- » 09 сен 2007, 16:36
С шагами 3 и 4 будет много гемора, зато все остальное возможно на порядок быстрее чем в контроллере.
Скачайте MaxPlus2 с сайта Altera.com и попробуйте - он скажет сколько времени это будет выполняться.
toshas » 09 сен 2007, 17:58
спасибо, попробую, не очень тривиальная программа на первый взгляд (
EIN_ENGEL » 13 сен 2007, 22:49
для этого лучше взять АРМ или ДСП.
реализовывать на ПЛИС не выгодно, если количество значений, от которых нужно брать среднее более-менее фиксировано и можно обойтись без деления, то максимально достижимая частота вычислителя на топовой плисе - 550 МГц. Все операции будут выполнены за один такт. Иначе придётся делить, а это порядка тридцати тактов.
toshas » 14 сен 2007, 09:07
а что будет для арм ?
в принципе нужно штучное устройство, поэтому экономическая выгодя не столь важна.
EIN_ENGEL » 14 сен 2007, 15:24
топовая плис стоит от 1000$ ))))
Можно взять быстрый АРМ, мегагерц на 600, он считать будет медленнее плисы, но и стоить будет на 2-3 порядка меньше. Или ДСП. ДСП есть довольно быстрые. Посмотри аналог девайс или тексас инструментс.