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

 
 
> Цифровой фильтр на ПЛИС
Zamir
сообщение Apr 2 2013, 08:12
Сообщение #1


Участник
*

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



Здравствуйте все!
Такой вопрос. Есть отладочная плата для плис циклон3 и примочка к нему-плата с АЦП и ЦАП (Снимок5). Хочу разобраться с цифровыми фильтрами. В матлабе создали фильтр IIR. настроил как показано на Снимке2. Из этого файла генерим VHDL файл. Компилируем его в квартусе. Далее на вход АЦП подаем синусоидальный сигнал с частотой 600КГц. Оцифрованный сигнал подаем на вход фильтра. Выход фильтра соединяем на вход ЦАП.(Снимок1). На выходе ЦАП получаем что то непонятное... (снимок4). При увеличении частоты амплитуда сигнала на выходе ЦАП не уменьшается т.е. фильтр не работает. Что делаю не так?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение


Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 19)
eugen_pcad_ru
сообщение Apr 2 2013, 08:20
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Как много рисунков!:)
Как вариант:
1 может не учитываете знаковое/беззнаковое представление чисел?
2 Фильтр целочисленный? Ошибки округления исключены?

P.S.: Может для начала попробовать реализовать FIR?


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Apr 2 2013, 08:36
Сообщение #3


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (eugen_pcad_ru @ Apr 2 2013, 12:20) *
P.S.: Может для начала попробовать реализовать FIR?

..для начала надо замкнуть выход АЦП и вход ЦАП в плис и убедиться что на выходе то что измеряем.
т.е. 600 КГц синус .

з.ы.
Мне одному кажется что на вашем генераторе какое-то странное представление заданой частоты?
.. мне вот кажется что там 600 Мгц.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 2 2013, 08:41
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



bb-offtopic.gif
Удивительно, что на осциллографе ручка Time/div заляпана так же страшно, как и на моем MSO6102A, а другие, как и на моем - чистые! Феномен.
Go to the top of the page
 
+Quote Post
Zamir
сообщение Apr 2 2013, 08:43
Сообщение #5


Участник
*

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



Цитата(eugen_pcad_ru @ Apr 2 2013, 12:20) *
Как много рисунков!:)
Как вариант:
1 может не учитываете знаковое/беззнаковое представление чисел?
2 Фильтр целочисленный? Ошибки округления исключены?

P.S.: Может для начала попробовать реализовать FIR?


Рисунков не жалко ))
Дело в том что я не очень хорошо разбираюсь в цифровой обработке сигналов. Хочу разобраться. На примерах легче разбираться и поэтому хочу какой нибудь цифровой фильтр реализовать. А где учитываются знаковое/беззнаковое представление чисел? В матлабе? Где можно настроить целочисленность фильтра и оибки округления? тоже в матлабе? Я и FIR пытался реализовать. с ней то же самое.... каша на выходе ЦАП...

Цитата(Lmx2315 @ Apr 2 2013, 12:36) *
..для начала надо замкнуть выход АЦП и вход ЦАП в плис и убедиться что на выходе то что измеряем.
т.е. 600 КГц синус .

з.ы.
Мне одному кажется что на вашем генераторе какое-то странное представление заданой частоты?
.. мне вот кажется что там 600 Мгц.


Это все я сделал. Замыкал АЦП на ЦАП. Все работает. Все красиво. Вам просто кажется. Там действительно 600КГц.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 2 2013, 08:54
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



На осциллографе пишет частоту 200 kHz. Если она так трясется, может, PLL в FPGA не работает?
Go to the top of the page
 
+Quote Post
Zamir
сообщение Apr 2 2013, 08:57
Сообщение #7


Участник
*

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



Цитата(ViKo @ Apr 2 2013, 12:54) *
На осциллографе пишет частоту 200 kHz. Если она так трясется, может, PLL в FPGA не работает?

На осциллографе показания частоты меняются из за того что сигнал дрожит. если включить усреднение на осциллографе то частоту он покажет 600 КГц. PLL тоже работает. Я все проверял без фильтра.
Go to the top of the page
 
+Quote Post
litv
сообщение Apr 2 2013, 09:01
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



VHDL надо не только скомпилировать в ПЛИС .
Проект на VHDL надо еще и промоделировать . Подать разные синусы , убедиться что подавление заработало.
А не сразу к АЦП и ЦАП ....
Go to the top of the page
 
+Quote Post
Zamir
сообщение Apr 2 2013, 09:06
Сообщение #9


Участник
*

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



Цитата(litv @ Apr 2 2013, 13:01) *
VHDL надо не только скомпилировать в ПЛИС .
Проект на VHDL надо еще и промоделировать . Подать разные синусы , убедиться что подавление заработало.
А не сразу к АЦП и ЦАП ....

Так это все ведь происходит в матлаб. Матлаб создает VHDL файл для фильтра с указанными настройками. То есть этот VHDL файл фильтра должен работать точно так как показал матлаб. Если в действительности полученный фильтр ведет себя не так как показывает матлаб, тогда зачем вообще фильтр генерить в матлаб? Или я не прав?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Apr 2 2013, 09:08
Сообщение #10


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (Zamir @ Apr 2 2013, 12:12) *
В матлабе создали фильтр IIR. настроил как показано на Снимке2. Из этого файла генерим VHDL файл. Компилируем его в квартусе.

..а вот в этом месте поподробнее, с какими параметрами синтезируете фильтр в матлабе и с какими синтезирует VHDL?
Вы можете сам фильтр выложить?

Если внутри IIR обрезать разрядность, то он может возбудиться.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Zamir
сообщение Apr 2 2013, 09:18
Сообщение #11


Участник
*

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



Цитата(Lmx2315 @ Apr 2 2013, 13:08) *
..а вот в этом месте поподробнее, с какими параметрами синтезируете фильтр в матлабе и с какими синтезирует VHDL?
Вы можете сам фильтр выложить?

Если внутри IIR обрезать разрядность, то он может возбудиться.

вот файл VHDL фильтра. в тхт скопировал
Прикрепленные файлы
Прикрепленный файл  IIR.txt ( 25.33 килобайт ) Кол-во скачиваний: 114
 
Go to the top of the page
 
+Quote Post
litv
сообщение Apr 2 2013, 09:52
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



Если бы для разработки ЦФ нужно было нажать только кнопку в Матлабе.....

Нужно ВСЁ.
Не видел еще человека который проектировал ПЛИС и не умел моделировать VHDL.

У Вас блин ошибки могут быть в тактовых импульсах.... Вы их видели ???, или только кнопку нажали, причем нажали в матлабе
а требуете от плис. По каким фронтам защелкивается данные АЦП или ЦАП, в доп коде они или беззнаковом????

Уметь самому писать и моделировать VHDL.
Выбирать разрядность с фиксированной точкой.
Смотреть сигналы внутри ПЛИС с signal tap и....

Работа с АЦП и ЦАП - море нюансов .
Начните с моделирования , оно проще.



Go to the top of the page
 
+Quote Post
Zamir
сообщение Apr 2 2013, 10:25
Сообщение #13


Участник
*

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



Цитата(litv @ Apr 2 2013, 13:52) *
Если бы для разработки ЦФ нужно было нажать только кнопку в Матлабе.....

Нужно ВСЁ.
Не видел еще человека который проектировал ПЛИС и не умел моделировать VHDL.

У Вас блин ошибки могут быть в тактовых импульсах.... Вы их видели ???, или только кнопку нажали, причем нажали в матлабе
а требуете от плис. По каким фронтам защелкивается данные АЦП или ЦАП, в доп коде они или беззнаковом????

Уметь самому писать и моделировать VHDL.
Выбирать разрядность с фиксированной точкой.
Смотреть сигналы внутри ПЛИС с signal tap и....

Работа с АЦП и ЦАП - море нюансов .
Начните с моделирования , оно проще.


моделирование оно может быть и проще... но если результаты моделирования не соответствуют действительности, то на фига вообще такое моделирование?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Apr 2 2013, 10:42
Сообщение #14


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (Zamir @ Apr 2 2013, 14:25) *
моделирование оно может быть и проще... но если результаты моделирования не соответствуют действительности, то на фига вообще такое моделирование?

..речь шла о моделировании в среде приближенной к ПЛИС - моделсим или ActiveHDl, к примеру.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 2 2013, 11:10
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Zamir @ Apr 2 2013, 13:06) *
Так это все ведь происходит в матлаб. Матлаб создает VHDL файл для фильтра с указанными настройками. То есть этот VHDL файл фильтра должен работать точно так как показал матлаб. Если в действительности полученный фильтр ведет себя не так как показывает матлаб, тогда зачем вообще фильтр генерить в матлаб? Или я не прав?


Вот, это тот случай, когда монета падает на ребро... Но случается это очень редко... Потому что обычно монета просто зависает в воздухе и вообще не хочет падать... Да. А если серьезно, то я знаю этих мужиков, которые Вам здесь отвечают, уже мнго лет знаю... Они Вам просто голову морочают всякими симуляциями, отладками по этапам, констрейнами и установками компилятора... Все это от лукавого! Должен все делать Матлаб!!! Но все они знают, что там есть специальная галочка, которую нужно убрать. Называется "защита от чайника". Она специально сделана для того, чтобы защитить разработчиков от чайников, которые не хотят носом землю рыть и которые считают, что Матлаб сам все должен сделать. Беда только в том, что мужики эти Вам не созниются, и придется Вам эту галочку самому искать... И я не могу о ней Вам рассказать, потому как это против моих правил. Ибо подставил меня на работе один такой же шустрый. Вот, с тех пор я зарок дал никому об этой галочке не говорить....
А без этого все равно ничего не получится... И придется либо землю носом рыть, либо бросить, либо стать начальником...
Вот такие дела...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
decom
сообщение Apr 2 2013, 11:11
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 150
Регистрация: 9-12-12
Из: Саранск
Пользователь №: 74 770



Попробуйте немного изменить параметры фильтра и еще раз сгенерить код в Матлаб.
Возможно Вам удастся найти такую комбинацию параметров которая нормально запрограммирует ПЛИС.

Сообщение отредактировал decom - Apr 2 2013, 11:12
Go to the top of the page
 
+Quote Post
eugen_pcad_ru
сообщение Apr 2 2013, 13:38
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Matlab видел только на семинаре, извинитеsm.gif
Но там есть пара кнопок: типа перевода алгоритма в целочисленный код. Только чтобы там все заработало, надо предварительно погонять на моделях матлаба и убедиться, что переполнения в этом случае не возникает.
Да, вот Вам совет: отключите АЦП, сделайте синусоиду внутри ПЛИС и подайте на ЦАП. Избавившись от одной неизвестной величины, проще настраивать дальше. Убедитесь что сигнал на выходе синус. В общем поработайте пока тольно с ЦАП.
Удачи!

P.S.: Думаю что ошибка всё-таки в разных представлениях данных. Посмотрите в каком коде работают ЦАП и АЦП: что соответствует кодам: все нули, все единицы и т.п.


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Apr 2 2013, 16:02
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



Попробуйте подать на вход сигнал с очень маленькой частотой. Посмотрите как выглядит выходной сигнал. Попробуйте уменьшить амплитуду. Посмотрите что будет.
Go to the top of the page
 
+Quote Post
Raven
сообщение Apr 2 2013, 17:07
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Все, что опытные товарищи здесь посоветовали, конечно, правильно. Но начинающему и пытающемуся разобраться с нуля от этого пользы мало. Вот если бы пройти эти шаги под руководством - тогда, может, толк и будет.

Э-э-х, надо долги отдавать sm.gif Если Вы не против, и если еще энтузиазм не остыл - давайте разбираться вместе. Пол-часа времени в день могу обещать.

Если согласны, для начала выложите проект Quartus'a как он у Вас есть, целиком (само собой, без "тяжелых" результатов синтеза: .db папки, .pof-, .sof-файлов и т.п.). Посмотрим, может уже на этом этапе что-то интересное найдется.
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Apr 2 2013, 19:11
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(iosifk @ Apr 2 2013, 15:10) *
.. Все это от лукавого! Должен все делать Матлаб!!! Но все они знают, что там есть специальная галочка, которую нужно убрать...

+100500
Помнится когда я CIC фильтр в Матлабе генерил в VHDL - там тоже волшебная галочка была, только её поставить надо было, чтобы всё работало.
И чего-то я не припомню, чтобы Матлаб сам констреинты задавал. Может новая версия какая-то вышла?



З.Ы. Смущает меня, что всё как-то очень просто у топикстартера. Два блочка в Альтеровском Кактусе кинул на схематик. Тут же к ним физические ноги приписал и нажал на кнопку синтезировать.
Ему бы с Ксайлинксом поработать чуток - там не забалуешьsm.gif.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:13
Рейтинг@Mail.ru


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