Доброго времени суток. По работе возникла следующая проблема. Дали реализованный на TMS алгоритм с целью переноса его на ПЛИС XILINX XC5VSX50T. Суть в следующем: обрабатываются блоки по 32768 отсчетов; каждый такой блок подвергается некому подобию циклической свертки с ПСП на такое же кол-во отсчетов. Почему подобию? Потому, что выполняется суммирование произведений не всех 32к отсчетов, а каждых 64, затем суммы складываются. Как мне объяснили, это необходимо для борьбы с набегом фазы. Реализация сдвигового регистра с отводами на такое кол-во отсчетов требует большого объема затрачиваемых ресурсов, поэтому сам циклический сдвиг реализован на блочной памяти. Частоты позволяют повторное использование одних и тех же блоков, поэтому в каждой ячейке памяти хранится одно 512-битное слово. На первой итерации последовательно считываются все 64 таких слова и затем обрабатываются по правилу описанному выше. Кроме того, в специальный регистр заносится предыдущее считанное слово. Т.о. на следующей итерации, которая подразумевает уже циклический сдвиг всей 32к-битной последовательности на 1 бит, выбираются 512-1 бит текущего слова и 1 бит хранящегося в регистре. Для получения нужного блока из 512 бит требуется разместить "крест-накрест". В итоге на эту операцию уходит такое кол-во LUTs, что их просто не хватает. Если кто-то сталкивался с чем-то подобным или знает, как этого можно избежать, пожалуйста, отпишитесь. Заранее извиняюсь за возможно сбивчивое или неточное описание.
Сообщение отредактировал des00 - Oct 20 2013, 11:44
|