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

 
 
> Не получается реализовать КИХ фильтр на VHDL
Georg.A
сообщение Jun 25 2013, 13:57
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 4-10-10
Пользователь №: 59 910



Доброго времени суток всем!
Пытаюсь сделать простой КИХ фильтр на ПЛИС, да все никак не выходит каменный цветок.
Для начала с помощью fdatool`a создал фильтр с необходимой АЧХ. Конкретно полосовой фильтр Баттерворта 4-го порядка. Сгенерил структуру (прикреплена).
Отквантизировал коэффициенты для 18 разрядной знаковой сетки.
Отвел два разряда для целой части и 15 для дробной. Масштабирующий коэффициент взял соответственно 2^15 = 32768.
было:
a2 -1,807830810546870
a3 0,999114990234375
gain 0,000640869140625

стало:
a2 59239
a3 32739
gain 21
VHDL код прикреплен в файле.
При прошивке в плис на выходе фильтра какая-то каша, хотя должна по идее быть гармоника.
Кто знает подскажите пожалуйста, может что-то не так делаю?

Сообщение отредактировал Georg.A - Jun 25 2013, 13:58
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  bandpassfilter1.vhd ( 2.65 килобайт ) Кол-во скачиваний: 15
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Georg.A
сообщение Jun 26 2013, 05:51
Сообщение #2





Группа: Участник
Сообщений: 11
Регистрация: 4-10-10
Пользователь №: 59 910



andrew_b в симуляторе пробовал проверить, но отлаживать фильтр глядя на цифровые коды мне показалось нереальным (может я не прав?). Пользуюсь Isim от Xilinx, не нашел как в нем отображать сигналы в аналоговом виде, ни в документации, ни в самоой проге. Где-то встречалось, что в каких-то сторонних симуляторах есть такая опция. Может Вы знаете в каких и посоветуете?
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jun 26 2013, 07:31
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Georg.A @ Jun 26 2013, 09:51) *
andrew_b в симуляторе пробовал проверить, но отлаживать фильтр глядя на цифровые коды мне показалось нереальным (может я не прав?).
А как вы вообще собираетесь отлаживать цифровые устройства? Если не работает в симуляторе, то в железе тем более не заработает.
У вас есть модель (написанная в Matlab или даже на C/C++) и ваш VHDL-код. Они должны работать абсолютно одинаково, бит в бит.
Генерируете некоторый входной поток, пропускаете его через модель, получаете эталонный выход. Это у вас получается два эталонных файла.
Далее этот же входной поток из файла подаёте в симуляторе на вход вашего VHDL-кода. Выход записываете в файл и сравниваете с эталонным выходом. Совпадает -- отлично. Есть хоть какая-то разница -- ищете ошибку.
Также хорошо иметь кроме выхода еще несколько точек внутри фильтра для более точного контроля.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Jun 26 2013, 09:03
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(andrew_b @ Jun 26 2013, 14:31) *
А как вы вообще собираетесь отлаживать цифровые устройства? Если не работает в симуляторе, то в железе тем более не заработает.
У вас есть модель (написанная в Matlab или даже на C/C++) и ваш VHDL-код. Они должны работать абсолютно одинаково, бит в бит.
Генерируете некоторый входной поток, пропускаете его через модель, получаете эталонный выход. Это у вас получается два эталонных файла.
Далее этот же входной поток из файла подаёте в симуляторе на вход вашего VHDL-кода. Выход записываете в файл и сравниваете с эталонным выходом. Совпадает -- отлично. Есть хоть какая-то разница -- ищете ошибку.
Также хорошо иметь кроме выхода еще несколько точек внутри фильтра для более точного контроля.

Есть способ немного другой - использовать косимуляцию (квеста + симулинк). Собираем фильтр в квесте, подключаем как отдельный блок в симулинк, на вход подаём тестовое воздействие (например, белый шум). Выход заводми на спектроанализатор. Если фильтр работает неправильно - это сразу будет видно на спектре. Способ неоднократно описан в литературе.
З.Ы. Да, забыл сказать, на этом пути есть много непонятностей, придётся почитать доки и форумы, стандартный подход (википедия + fdatool) тут недостаточен.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 06:21
Рейтинг@Mail.ru


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