|
Не хватает аппаратных умножителей, подскажите новичку |
|
|
|
Jun 23 2008, 16:47
|
Группа: Новичок
Сообщений: 6
Регистрация: 17-02-08
Из: Минск, Беларусь
Пользователь №: 35 136

|
Добрый день,
подскажите пожалуйста новичку в ПЛИСах, как решить следующую проблему. Использую SpartanIIIe, проектирую восьмикратный интерполятор аудиосигнала (три последовательно подключённых FIR фильтра (сдандартная корка FIR Compiler), каждый повышает samplerate вдвое). Проект умещается в ресурсы плисины, но на этапе place-and-route возникает ошибка, что не хватает аппаратных умножителей, поскольку уже используется столько-то block ram. Как я понял, управляющие сигналы для MUL и BRAM в структуре Spartan3e пересекаются, что исключает их одновременное использование. Пробовал уменьшать количество MUL/BRAM, но избавиться от ошибки не удалось без существенного ухудшения характеристик интерполятора. Можно ли это как-то обойти? Может существуют в свободном доступе более оптимальные корки FIR фильтров? Или скорее всего придётся перейти на более жирную плис?
Параметры проектируемого интерполятора: Stopband attenuation: -120dB Passband ripple: 0.00001dB Passband: 0-0.4536fs Stopband: 0.5-1fs Interpolation rate: 8 Stages: 3 Clock: 33MHz Input samplerate: 44.1kHz Input data width: 16 Output data width: 20
|
|
|
|
|
 |
Ответов
|
Jun 26 2008, 10:00
|
Знающий
   
Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481

|
Цитата(petrov @ Jun 26 2008, 13:11)  Даже если на такой низкой частоте 33 МГц работать можно выполнить одним умножителем 33МГц/44кГц = 748 умножений. Вы правы, чтобы повысить частоту дискретизации аудиосигнала хватит одно умножителя. Но вот для того чтобы это сделать, нужно в предмете разбираться, понимать, уметь проектировать. Боюсь что это уже должен быть не новичек. А на корке слепить - лекго. Вот только одно не понятно, а че, сразу-то интерполятор на 8 на корках не генериться? Цитата(DmitryR @ Jun 26 2008, 12:33)  Вы прежде чем камнями кидаться посмотрите внимательно, каких там порядков фильтры и сколько их. Посмотрели. И условия посмотрели. Вон они какие Stopband attenuation: -120dB??? А оно надо? А вот это Passband ripple: 0.00001dB??? Оно надо. И как это все реализовать, если Input data width: 16 И если задуматься над этими цифрами, то окажется что не надо такой порядок интерполятора использовать.
|
|
|
|
|
Jun 26 2008, 10:06
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Михаил_K @ Jun 26 2008, 14:00)  Вы правы, чтобы повысить частоту дискретизации аудиосигнала хватит одно умножителя. Но вот для того чтобы это сделать, нужно в предмете разбираться, понимать, уметь проектировать. Боюсь что это уже должен быть не новичек. А на корке слепить - лекго. Вот только одно не понятно, а че, сразу-то интерполятор на 8 на корках не генериться? Посмотрели. И условия посмотрели. Вон они какие
Stopband attenuation: -120dB??? А оно надо? А вот это Passband ripple: 0.00001dB??? Оно надо. И как это все реализовать, если Input data width: 16
И если задуматься над этими цифрами, то окажется что не надо такой порядок интерполятора использовать. Сейчас в FDAtool прикинул, порядок FIR фильтра для интерполяции в 8 раз - 650, делаем полифазную структуру ибо нефиг на нули умножать, и обсчитываем всё одним умножителем на 33 МГц. ИМХО скорее надо в таких вещах разбираться, эффект больше чем от бездумного использования корок.
|
|
|
|
|
Jun 26 2008, 10:22
|
Знающий
   
Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481

|
Цитата(petrov @ Jun 26 2008, 14:06)  Сейчас в FDAtool прикинул, порядок FIR фильтра для интерполяции в 8 раз - 650, делаем полифазную структуру ибо нефиг на нули умножать, и обсчитываем всё одним умножителем на 33 МГц. ИМХО скорее надо в таких вещах разбираться, эффект больше чем от бездумного использования корок. 650/8 = 81,25, т.е. делаем 82. 82 * 44100 = 3616200. Чутка по больше частоту нужно, но не очень. А разбираться нужно несомненно. Кстати, у меня порядок получился 313. А вот когда ето все заквантовать до 16 разярдов.....
|
|
|
|
Сообщений в этой теме
degifted Не хватает аппаратных умножителей Jun 23 2008, 16:47 Doka >> Можно ли это как-то обойти?
можно.. нап... Jun 23 2008, 17:15 degifted Цитата(Doka @ Jun 23 2008, 20:15) >... Jun 23 2008, 17:42  maxfox2k Цитата(degifted @ Jun 23 2008, 20:42) хм.... Jun 26 2008, 05:01   DmitryR Цитата(maxfox2k @ Jun 26 2008, 09:01) да,... Jun 26 2008, 06:55      petrov Цитата(Михаил_K @ Jun 26 2008, 14:22) 650... Jun 26 2008, 10:39       Михаил_K Цитата(petrov @ Jun 26 2008, 14:39) 3,6МГ... Jun 26 2008, 10:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|