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

 
 
23 страниц V  « < 15 16 17 18 19 > »   
Reply to this topicStart new topic
> Реализация БПФ на ПЛИС, Тудности, встречаемые при реализации
ZED
сообщение Nov 12 2009, 04:18
Сообщение #241


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 17-04-07
Из: Москва
Пользователь №: 27 102



Вот ОЗУ.
Прикрепленные файлы
Прикрепленный файл  RAM.rar ( 123.58 килобайт ) Кол-во скачиваний: 64
 
Go to the top of the page
 
+Quote Post
Sefo
сообщение Nov 12 2009, 08:12
Сообщение #242


Местный
***

Группа: Свой
Сообщений: 429
Регистрация: 11-08-05
Из: Санкт-Петербург
Пользователь №: 7 537



Цитата(ZED @ Nov 12 2009, 07:18) *
Вот ОЗУ.


Халтурите... однако smile.gif То, что в прицепе вашего сообщения - лишь кирпич (даже пол кирпича) из которого нужно построить наше ОЗУ для БПФ. Нам ведь нужно за 1 раз прочитать/записать 4 комплексных точки. А Ваше ОЗУ может хранить только половину одной единственной комплексной точки.
Go to the top of the page
 
+Quote Post
ZED
сообщение Nov 14 2009, 09:06
Сообщение #243


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 17-04-07
Из: Москва
Пользователь №: 27 102



А я думал, что у нас будет отдельное ОЗУ для реальной части и отдельное для мнимой. 4 ОЗУ - типа банки. Итого просто 8 ОЗУ.
Go to the top of the page
 
+Quote Post
Sefo
сообщение Nov 14 2009, 14:40
Сообщение #244


Местный
***

Группа: Свой
Сообщений: 429
Регистрация: 11-08-05
Из: Санкт-Петербург
Пользователь №: 7 537



Цитата(ZED @ Nov 14 2009, 12:06) *
А я думал, что у нас будет отдельное ОЗУ для реальной части и отдельное для мнимой. 4 ОЗУ - типа банки. Итого просто 8 ОЗУ.


Я не даром начал проект с разработки блок схемы устройства и схемы алгоритма - это очень важная часть разработки. Прежде чем кодировать надо понять что именно мы хотим сделать и как именно мы это будем делать. Откройте блок-схему нашего устройства. там есть деление на модули. Именно этого деления на модули мы и придерживаемся при кодировании.

Кстати, мы вот с вами не позаботились о том, чтобы разработать интерфейсы между модулями и в схеме управления Вы, к примеру, забыли про WRITE_EN_A и WRITE_EN_B, без которых памяти не обойтись - ведь на каждом этапе писать нужно только в один из двух модулей памяти. Про схему управления я еще напишу. Я решил, что лучше будет дать Вам пример реализации и на этом примере объяснить, какие в вашем коде есть ошибки и недостатки реализации. Но т.к. времени у меня сейчас мало, то происходит это все не быстро.

Вернемся к памяти. На блок схеме нарисовано 2 одинаковых модуля памяти. Согласно нашему алгоритму и схеме управления на модуль памяти приходит 4 адреса чтения, 1 адрес записи, разрешения записи, 4 комплексные точки и выходит 4 комплексные точки. Вот именно так и должен выглядеть наш модуль памяти. Внутри этот модуль может состоять из чего угодно - можете поставит 8 блоков памяти (по два на банк) и хранить мнимую и вещественную части отдельно. Можете поставить 4 блока памяти (по одному на банк) и хранить комплексное число в одной ячейке.

Так что придерживайтесь блок-схемы - мы ее не даром рисовали.
Go to the top of the page
 
+Quote Post
ZED
сообщение Nov 17 2009, 17:51
Сообщение #245


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 17-04-07
Из: Москва
Пользователь №: 27 102



Вот тут два варианта: один простой, а второй с применением package.
Прикрепленные файлы
Прикрепленный файл  RAM.rar ( 277.58 килобайт ) Кол-во скачиваний: 51
Прикрепленный файл  RAM_with_package.rar ( 283.95 килобайт ) Кол-во скачиваний: 61
 
Go to the top of the page
 
+Quote Post
Sefo
сообщение Nov 27 2009, 14:06
Сообщение #246


Местный
***

Группа: Свой
Сообщений: 429
Регистрация: 11-08-05
Из: Санкт-Петербург
Пользователь №: 7 537



Цитата(ZED @ Nov 17 2009, 20:51) *
Вот тут два варианта: один простой, а второй с применением package.


Замечательно!

Только на вариант без package не нужно было тратить время.

Вы, я смотрю, попросили Квартус положить каждый блок памяти в M-RAM, но это слишком жирно для таких скромных (по меркам M-RAM) объемов данных. К тому же блоков M-RAM в стратиксе очень мало - на все блоки памяти БПФ не хватит.

У меня, к сожалению, до 6 декабря не будет времени на БПФ. Поэтому Вы пока соберите все наши отдельные блоки в модуль БПФ. Придерживайтесь блок-схемы и не забудьте про package. Еще поставьте ModelSim (даже если Вы с ним не умеете работать - вот заодно и научитесь) т.к. в Квартусе моделировать и отлаживать крайне не удобно. Если будут вопросы, то пишите - краткие ответы я дам и до 6 декабря.
Go to the top of the page
 
+Quote Post
ZED
сообщение Dec 7 2009, 13:31
Сообщение #247


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 17-04-07
Из: Москва
Пользователь №: 27 102



Сегодня не успеваю, завтра думаю пришлю! Извините за задержку.
Go to the top of the page
 
+Quote Post
flipflop
сообщение Dec 7 2009, 23:21
Сообщение #248


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 27-12-08
Из: Петербург
Пользователь №: 42 787



Ребят, а вы делаете БПФ по Кули-Тьюки? Просто для действительных чисел есть более простые алгоритмы. К примеру, можно посчитать БПХ, а потом за один такт перевести его в БПФ (по-моему формула О'Нила) : никаких комплексных умножителей, в худшем случае для бабочки БПХ нужно два умножения действительных чисел + 4 операции сложения.
Go to the top of the page
 
+Quote Post
ZED
сообщение Dec 8 2009, 18:46
Сообщение #249


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 17-04-07
Из: Москва
Пользователь №: 27 102



Вот, прикрепляю собранный проект, только я не подсоединил ROM память коэффициентов, т.к. она не написана.
Кстати и вопрос как мы ее будем реализовыватьwhen case?

Цитата
Ребят, а вы делаете БПФ по Кули-Тьюки?

Да именно по нему.
Цитата
Просто для действительных чисел есть более простые алгоритмы. К примеру, можно посчитать БПХ, а потом за один такт перевести его в БПФ (по-моему формула О'Нила) : никаких комплексных умножителей, в худшем случае для бабочки БПХ нужно два умножения действительных чисел + 4 операции сложения.

БПХ это по-моему быстрое преобразование Хартли. Если ссылочку на литературу, где написано по подробнее об этом преобразовании, желательно понятным языком и о его связи с БПФ? С удовольствием бы почитал. Еще бы с удовольствием прочитал бы про быстрое Вейвлет преобразование, как оно аппаратно реализуется.

FFT_2048
Go to the top of the page
 
+Quote Post
Александр77
сообщение Dec 8 2009, 19:07
Сообщение #250


Знающий
****

Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111



Цитата(flipflop @ Dec 8 2009, 02:21) *
Ребят, а вы делаете БПФ по Кули-Тьюки? Просто для действительных чисел есть более простые алгоритмы. К примеру, можно посчитать БПХ, а потом за один такт перевести его в БПФ (по-моему формула О'Нила) : никаких комплексных умножителей, в худшем случае для бабочки БПХ нужно два умножения действительных чисел + 4 операции сложения.

Мне кажется что коррекция полета неуместна. Где-то в начале Мастер писал что это учебный проект. Так что постигаем. Все остальные алгоритмы - пусть подождут.
Go to the top of the page
 
+Quote Post
flipflop
сообщение Dec 8 2009, 19:43
Сообщение #251


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 27-12-08
Из: Петербург
Пользователь №: 42 787



Цитата(ZED @ Dec 8 2009, 21:46) *
БПХ это по-моему быстрое преобразование Хартли. Если ссылочку на литературу, где написано по подробнее об этом преобразовании, желательно понятным языком и о его связи с БПФ? С удовольствием бы почитал. Еще бы с удовольствием прочитал бы про быстрое Вейвлет преобразование, как оно аппаратно реализуется.

Нашел:
http://www.embedded.com/2000/0009/0009feat3.htm
Там есть и описание реализации и связь с БПФ, правда формулы в плохом качестве, но я все понял.

Цитата
не кажется что коррекция полета неуместна. Где-то в начале Мастер писал что это учебный проект. Так что постигаем. Все остальные алгоритмы - пусть подождут.

Ну я и не предлагаю, тем более столько уже сделано. Просто хотел заметить, что на практике используются другие алгоритмы.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Dec 9 2009, 10:01
Сообщение #252


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(ZED @ Dec 8 2009, 21:46) *
БПХ это по-моему быстрое преобразование Хартли. Если ссылочку на литературу, где написано по подробнее об этом преобразовании, желательно понятным языком и о его связи с БПФ? С удовольствием бы почитал. Еще бы с удовольствием прочитал бы про быстрое Вейвлет преобразование, как оно аппаратно реализуется.


где взял не помню, даю что есть
Прикрепленные файлы
Прикрепленный файл  FFT_Wave.rar ( 677.12 килобайт ) Кол-во скачиваний: 101
 


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Sefo
сообщение Dec 9 2009, 10:31
Сообщение #253


Местный
***

Группа: Свой
Сообщений: 429
Регистрация: 11-08-05
Из: Санкт-Петербург
Пользователь №: 7 537



Цитата(ZED @ Dec 8 2009, 21:46) *
Вот, прикрепляю собранный проект, только я не подсоединил ROM память коэффициентов, т.к. она не написана.
Кстати и вопрос как мы ее будем реализовыватьwhen case?


Реализовать ее стоит на обычных RAM блоках (работающих в режиме ROM). На форуме есть достаточное количество примеров такого описания на HDL. Я бы, правда, сгенерировал бы ее Квартусовским визардом.

Какая у Вас версия ModelSim и умеете ли Вы с ним работать?
Go to the top of the page
 
+Quote Post
ZED
сообщение Dec 10 2009, 19:30
Сообщение #254


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 17-04-07
Из: Москва
Пользователь №: 27 102



ModelSim 6.5 SE, да немного умею.
Go to the top of the page
 
+Quote Post
Sefo
сообщение Dec 13 2009, 20:15
Сообщение #255


Местный
***

Группа: Свой
Сообщений: 429
Регистрация: 11-08-05
Из: Санкт-Петербург
Пользователь №: 7 537



Цитата(ZED @ Dec 8 2009, 21:46) *
Вот, прикрепляю собранный проект...


Увы, серьезный просчет прямо на верхнем уровне sad.gif. Согласно нашей схеме во время вычисления БПФ на каждый банк памяти подается одни и тот же адрес и достаточно одного на всех WE. Но при загрузке данных в память БПФ перед вычислением все совсем не так. Во-первых в общем случае Вы никогда заранее не знаете порядок прихода данных и, поэтому, для применимости модуля в разных проектах необходимо предоставить внешнему модулю полное управление памятью. Во-вторых, Вы собирались обрабатывать данные с АЦП - таким образом на вход БПФ данные пойдут по порядку. Согласно схеме БПФ точки 1 ... 511 "укладываются" в 0-ой банк, 512 ... 1023 в 1-вый и т.д. Но у Вас так не получится сделать т.к. сейчас Вы не можете в один банк записать, а в другой нет. А Вам нужно сначала заполнить 0-вой банк не трогая остальные и только потом переходить к 1-ому.

Исправляйте...

Как дела с ROM для коэффициентов?
Go to the top of the page
 
+Quote Post

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

 


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


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