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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> FIR фильтр на VHDL с помощью fdatool, проблемы с быстродействием
mr.alexeevas
сообщение Jun 25 2013, 09:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-04-13
Из: Санкт-Петербург
Пользователь №: 76 668



Добрый день!

Столкнулся с такой проблемой: реализую полосовой фильтр на частоту 1 МГц, использую окно Блекмана, на 512 коэффициентов. ПЛИС Altera Cyclone IV E EP4CE115F29C7N. Загвоздка в том, что нужно сделать фильтр с частотой сэмплирования в 40 МГц, но чтобы он работал на тактовой частоте в 240 МГц (для экономии ресурсов, т.е. умножителей). В fdatool все настроил и при генерации VHDL кода, указываю, чтобы структура была каскадная. Все генерируется, но вот работать на частоте тактирования в 240 МГц отказывается, максимум на 120 МГц выходит. Аналогичный фильтр, но в FIR Compiler генерируется, разводится и работает, но у меня нет лицензии на него.

Помогите решить данную проблему, может в коде что-то подправить или в fdatool есть нюансы.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 25 2013, 09:56
Сообщение #2


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(mr.alexeevas @ Jun 25 2013, 11:36) *
Добрый день!

Столкнулся с такой проблемой: реализую полосовой фильтр на частоту 1 МГц, использую окно Блекмана, на 512 коэффициентов. ПЛИС Altera Cyclone IV E EP4CE115F29C7N. Загвоздка в том, что нужно сделать фильтр с частотой сэмплирования в 40 МГц, но чтобы он работал на тактовой частоте в 240 МГц (для экономии ресурсов, т.е. умножителей). В fdatool все настроил и при генерации VHDL кода, указываю, чтобы структура была каскадная. Все генерируется, но вот работать на частоте тактирования в 240 МГц отказывается, максимум на 120 МГц выходит. Аналогичный фильтр, но в FIR Compiler генерируется, разводится и работает, но у меня нет лицензии на него.

Помогите решить данную проблему, может в коде что-то подправить или в fdatool есть нюансы.

Pipelining в перемножителях включен?
А почему так не хотите?
http://electronix.ru/forum/index.php?showt...t&p=1031347
Go to the top of the page
 
+Quote Post
mr.alexeevas
сообщение Jun 25 2013, 11:07
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-04-13
Из: Санкт-Петербург
Пользователь №: 76 668



Цитата(_Anatoliy @ Jun 25 2013, 13:56) *
Pipelining в перемножителях включен?
А почему так не хотите?
http://electronix.ru/forum/index.php?showt...t&p=1031347



Pipelining включен.
А вот ссылка не открывается.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 25 2013, 14:08
Сообщение #4


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(mr.alexeevas @ Jun 25 2013, 13:07) *
Pipelining включен.

Это не тот Pipelining,если включали его при генерации hdl-кода.Нужно перемножители ручками подключать и в них уже включать Pipelining(причём не меньше 3). Я так до 240 МГц разгонял фильтр на третьем циклоне.
Вообще то отучайтесь использовать матлабовский код выше 120 МГц.
Попробуйте ещё раз ссылку.Правда тот проект на 240 МГц тоже не пойдёт,нужно дорабатывать как сказано выше.
Go to the top of the page
 
+Quote Post
mr.alexeevas
сообщение Jun 26 2013, 04:51
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-04-13
Из: Санкт-Петербург
Пользователь №: 76 668



Цитата(_Anatoliy @ Jun 25 2013, 18:08) *
Попробуйте ещё раз ссылку.


Скиньте пожалуйста ссылку еще раз, она некорректно создана.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 26 2013, 07:07
Сообщение #6


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(mr.alexeevas @ Jun 26 2013, 05:51) *
Скиньте пожалуйста ссылку еще раз, она некорректно создана.

Странно,у меня открывается.
раздел Важные темы,тема "Схемотехнические трюки для ПЛИСоводов",лист №9,посты 132 и 133.
Go to the top of the page
 
+Quote Post
mr.alexeevas
сообщение Jun 26 2013, 10:41
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-04-13
Из: Санкт-Петербург
Пользователь №: 76 668



Цитата(_Anatoliy @ Jun 26 2013, 11:07) *
Странно,у меня открывается.
раздел Важные темы,тема "Схемотехнические трюки для ПЛИСоводов",лист №9,посты 132 и 133.


Спасибо, пойду проверю этот фильтр.
Go to the top of the page
 
+Quote Post
mr.alexeevas
сообщение Jun 27 2013, 12:39
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-04-13
Из: Санкт-Петербург
Пользователь №: 76 668



Цитата(_Anatoliy @ Jun 25 2013, 18:08) *
Это не тот Pipelining,если включали его при генерации hdl-кода.Нужно перемножители ручками подключать и в них уже включать Pipelining(причём не меньше 3). Я так до 240 МГц разгонял фильтр на третьем циклоне.


Я руками подключил умножители, поэксперементировал с Pipelining, поставил еще регистров, но максимум чего добился это 170 МГц, можете подсказать, чтобы еще такого в матлабовском коде можно подправить?

Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 28 2013, 05:54
Сообщение #9


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(mr.alexeevas @ Jun 27 2013, 13:39) *
Я руками подключил умножители, поэксперементировал с Pipelining, поставил еще регистров, но максимум чего добился это 170 МГц, можете подсказать, чтобы еще такого в матлабовском коде можно подправить?

В таких случаях совет стандартный : анализировать отчёт тайм-квеста,искать пути которые валятся,принимать меры.Насколько я помню матлаб реализует дерево сумматоров - оно Вам нужно?
Вот отчёт тайм-квеста на тот вариант, который я выкладывал(для Циклона-3).
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
mr.alexeevas
сообщение Jun 28 2013, 06:16
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-04-13
Из: Санкт-Петербург
Пользователь №: 76 668



Цитата(_Anatoliy @ Jun 28 2013, 09:54) *
В таких случаях совет стандартный : анализировать отчёт тайм-квеста,искать пути которые валятся,принимать меры.Насколько я помню матлаб реализует дерево сумматоров - оно Вам нужно?
Вот отчёт тайм-квеста на тот вариант, который я выкладывал(для Циклона-3).


Да, тот код оригинальный и реализация получается быстродействующая, но дело в том, что необходимо сделать фильтр с тактовой 240 МГц, а вот данные должны приниматься и выдаваться с частотой в 40 МГц.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 28 2013, 06:51
Сообщение #11


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(mr.alexeevas @ Jun 28 2013, 07:16) *
Да, тот код оригинальный и реализация получается быстродействующая, но дело в том, что необходимо сделать фильтр с тактовой 240 МГц, а вот данные должны приниматься и выдаваться с частотой в 40 МГц.

Ну так добавьте сигнал enable. В чём проблема?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 28 2013, 09:26
Сообщение #12


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Вам не нужно добиваться быстродействия фильтра 240МГц,40МГц достаточно.Сигнал enable должен быть активным один такт на каждые шесть тактов клока. А чтобы таймквест правильно посчитал слэки ему нужно указать что фильтр работает со скважностью 6. Это делается командой set_multicycle_path.
Go to the top of the page
 
+Quote Post
mr.alexeevas
сообщение Jun 28 2013, 10:09
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-04-13
Из: Санкт-Петербург
Пользователь №: 76 668



Цитата(_Anatoliy @ Jun 28 2013, 13:26) *
Вам не нужно добиваться быстродействия фильтра 240МГц,40МГц достаточно.Сигнал enable должен быть активным один такт на каждые шесть тактов клока. А чтобы таймквест правильно посчитал слэки ему нужно указать что фильтр работает со скважностью 6. Это делается командой set_multicycle_path.


Быстродействие в 240 МГц нужно для экономии умножителей, т.к. их в моем фильтре 512, и получается, что если быстродействие 240, а данные на 40, то можно использовать в 6 раз меньше коэффициентов.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 28 2013, 16:25
Сообщение #14


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(mr.alexeevas @ Jun 28 2013, 12:09) *
Быстродействие в 240 МГц нужно для экономии умножителей, т.к. их в моем фильтре 512, и получается, что если быстродействие 240, а данные на 40, то можно использовать в 6 раз меньше коэффициентов.

Ясно.Только не коэффициентов а умножителей.Так Вам не понятно как такой фильтр реализовать?У Вас же есть матлабовский hdl-файл,разберитесь как он работает,принцип перенесите на мой быстродействующий фильтр.
Go to the top of the page
 
+Quote Post
mr.alexeevas
сообщение Jul 1 2013, 04:35
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-04-13
Из: Санкт-Петербург
Пользователь №: 76 668



Цитата(_Anatoliy @ Jun 28 2013, 20:25) *
Ясно.Только не коэффициентов а умножителей.Так Вам не понятно как такой фильтр реализовать?У Вас же есть матлабовский hdl-файл,разберитесь как он работает,принцип перенесите на мой быстродействующий фильтр.


Да, умножителей)
Думаю так и сделаю, но пока не получается подключить аппаратный умножитель, т.к. умножение происходит внутри цикла в вашем фильтре. Я новичок в этом деле, всего пару месяцев работаю с ПЛИС на VHDL.
Go to the top of the page
 
+Quote Post

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

 


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


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