|
Реализация БПФ на ПЛИС, Тудности, встречаемые при реализации |
|
|
|
Jan 18 2009, 19:19
|
Местный
  
Группа: Свой
Сообщений: 264
Регистрация: 17-04-07
Из: Москва
Пользователь №: 27 102

|
Доброго времени суток! Нужно реализовать алгоритм БПФ с прореживанием по частоте на ПЛИС, но при реализации возникают трудности, вот некоторые из них: - Поворачивающие множители являются числами по модулю меньше либо равно единицы: |W|<=1. Я так понял, чтобы перейти к целым числам требуется умножать их на (2^N) и то, что после запятой отсекать (N - разрядность). Нужно ли то же самое делать с входными данными (x1 и x2) или не обязательно?
- Нужно реализовать операции умножения и сложения со знаковыми числами, тут у меня такая задумка: преобразовать в integer соответствующего диапазона: от -(2^N)/2 до (2^N)/2 - 1, произвести нужные арифметические операции и преобразовать обратно std_logic_vector, код прилагается:
CODE library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all;
entity butterfly is generic (b_size: natural := 14); port ( x1, x2, w: in std_logic_vector(b_size - 1 downto 0); y1, y2: out std_logic_vector(b_size - 1 downto 0) ); end entity butterfly;
architecture behavioral of butterfly is signal x1_int, x2_int, w_int: integer range -8192 to 8191; signal y1_int: integer range -8192 to 8191; signal y2_int: integer range -134217728 to 134217727; -- Т.к. производится умножение на поворачивающий множитель begin process (CLK) is begin -- Преобразовываю в тип integer: x1_int <= conv_integer(x1); x2_int <= conv_integer(x2); w_int <= conv_integer(w); y1_int <= conv_integer(y1); y2_int <= conv_integer(y2);
-- Вычисляю бабочку и преобразовываю обратно в std_logic_vector (b_size - 1 downto 0): y1 <= conv_std_logic_vector(x1_int + x2_int, b_size); y2 <= conv_std_logic_vector((x1_int - x2_int) * w_int, b_size); end process; end architecture behavioral; Вопрос будет ли так корректно сделать или все делается совершенно по-другому? Буду рад любым вашим замечаниям, предложениям, советам и ссылкам. Заранее спасибо! P.S. На форуме я искал и не нашел ответа на свои вопросы, тем более я уверен далее появятся новые, думаю лучше, чтоб это все было в одной теме...
|
|
|
|
Сообщений в этой теме
ZED Реализация БПФ на ПЛИС Jan 18 2009, 19:19 Sefo Цитата(ZED @ Sep 6 2009, 14:36) MODULE(8 ... Sep 6 2009, 15:28 Sefo Продолжим разбираться с чтением. Посмотрим на адре... Sep 7 2009, 19:26 ZED Хорошо, немного не понял пока тогда назначения сче... Sep 8 2009, 12:12 Sefo У нас выходы банков памяти подсоеденены к бабочке ... Sep 10 2009, 13:34 Sefo Чтобы разобраться какими должны быть биты 'X... Sep 11 2009, 22:16 ZED Я не очень понял, что за биты 'X', предпол... Sep 13 2009, 17:07 Sefo Цитата(ZED @ Sep 13 2009, 21:07) Я не оче... Sep 13 2009, 20:25 Sefo Цитата(ZED @ Sep 13 2009, 21:07)
Как у ... Sep 15 2009, 10:58 ZED Вот мои наработки, я там вывел некоторые сигналы д... Sep 18 2009, 12:48 Sefo Давайте разберем Ваш код. На будущее попрошу Вас п... Sep 19 2009, 18:59 ZED Поправил.
Цитатано при реализации все сделали наоб... Sep 20 2009, 12:06 Sefo Цитата(ZED @ Sep 20 2009, 16:06) Чтобы ос... Sep 20 2009, 18:44 ZED Поправил реализацию генератора адресов на чтение, ... Sep 21 2009, 14:49 Sefo Цитата(ZED @ Sep 21 2009, 18:49) Мне каза... Sep 21 2009, 19:34 Alexey86 огромной спасибо Sefo за обучение...
давно такое и... Sep 23 2009, 10:53 ZED Вот, доделал генератор с учетом маски, только там ... Sep 24 2009, 16:18 Sefo Цитата(ZED @ Sep 24 2009, 20:18) Файл при... Sep 24 2009, 20:25 ZED Прикрепляю исправленный генератор адресов на чтени... Sep 29 2009, 03:45 Sefo Очень хорошо. Теперь нужно все эти разрозненные бл... Oct 1 2009, 21:10 ZED Вот пока мои наработки, еще забыл добавить адресац... Oct 5 2009, 17:06 Sefo Цитата(ZED @ Oct 5 2009, 21:06) Вот пока ... Oct 6 2009, 20:23 ZED Вот, немного переделал, правда еще не сделал паузы... Oct 8 2009, 04:46 Sefo Цитата(ZED @ Oct 8 2009, 08:46) Вот, немн... Oct 8 2009, 14:26 ZED ЦитатаЛюбопытно, а с чего это Вы вдруг в основном ... Oct 9 2009, 05:31 Sefo Цитата(ZED @ Oct 9 2009, 09:31) Просто пр... Oct 9 2009, 08:40 ZED Да, давайте, а то я уже путаться начинаю. Oct 10 2009, 07:28 Sefo А как насчет статейки про wait until? Любопытно вс... Oct 12 2009, 09:20 ZED Суворова Е.А. Шейнин Ю.Е. Проектирование цифровых... Oct 13 2009, 05:18 Sefo Извиняюсь за долгое молчание. Совсем не было време... Oct 21 2009, 23:05 ZED Я так понял, что сигналы для записи в память мы бу... Oct 22 2009, 14:53 Sefo Цитата(ZED @ Oct 22 2009, 18:53) Я так по... Oct 23 2009, 14:38 ZED Простите с ответом немного потяну, работы много на... Oct 28 2009, 11:43 ZED ЦитатаВопрос-подсказка: до скольки должен считать ... Oct 30 2009, 07:32 Sefo Цитата(ZED @ Oct 30 2009, 10:32) Счетчик ... Nov 1 2009, 21:43 ZED Вот моя очередная попытка, жду Ваших замечаний... Nov 2 2009, 19:08 Sefo Внимательно разбираться в коде и диаграмме времени... Nov 3 2009, 21:58 ZED Еще один вариант Nov 5 2009, 17:43 Sefo Так гораздо лучше.
Продолжим анализ кода. Вы, суд... Nov 6 2009, 22:38 ZED Вот подправленный вариант. Nov 9 2009, 18:37 Sefo Пока я анализирую более детально что получилось с ... Nov 10 2009, 08:23 ZED Вот ОЗУ. Nov 12 2009, 04:18 Sefo Цитата(ZED @ Nov 12 2009, 07:18) Вот ОЗУ.... Nov 12 2009, 08:12 ZED А я думал, что у нас будет отдельное ОЗУ для реаль... Nov 14 2009, 09:06 Sefo Цитата(ZED @ Nov 14 2009, 12:06) А я дума... Nov 14 2009, 14:40 ZED Вот тут два варианта: один простой, а второй с при... Nov 17 2009, 17:51 Sefo Цитата(ZED @ Nov 17 2009, 20:51) Вот тут ... Nov 27 2009, 14:06 ZED Сегодня не успеваю, завтра думаю пришлю! Извин... Dec 7 2009, 13:31 flipflop Ребят, а вы делаете БПФ по Кули-Тьюки? Просто для ... Dec 7 2009, 23:21 Александр77 Цитата(flipflop @ Dec 8 2009, 02:21) Ребя... Dec 8 2009, 19:07 ZED Вот, прикрепляю собранный проект, только я не подс... Dec 8 2009, 18:46 flipflop Цитата(ZED @ Dec 8 2009, 21:46) БПХ это п... Dec 8 2009, 19:43 Maverick Цитата(ZED @ Dec 8 2009, 21:46) БПХ это п... Dec 9 2009, 10:01 Sefo Цитата(ZED @ Dec 8 2009, 21:46) Вот, прик... Dec 9 2009, 10:31 ZED ModelSim 6.5 SE, да немного умею. Dec 10 2009, 19:30 Sefo Цитата(ZED @ Dec 8 2009, 21:46) Вот, прик... Dec 13 2009, 20:15 ZED flipflop и Maverick спасибо за информацию, интерес... Dec 14 2009, 06:34 Sefo Цитата(ZED @ Dec 14 2009, 09:34) Я так по... Dec 14 2009, 09:34 ZED Я переделал, файл прикрепляю. Коэффициенты не подс... Dec 15 2009, 09:55 Sefo Цитата(ZED @ Dec 15 2009, 12:55) 2. Код К... Dec 16 2009, 16:03 Sefo Посмотрел я ваш код внимательно и вот какие ошибки... Jan 7 2010, 10:51 ZED При компиляции Warning:
КодWarning (10036... Jan 11 2010, 06:45 Sefo Цитата(ZED @ Jan 11 2010, 09:45) При комп... Jan 11 2010, 09:39 ZED 1) Если можно напишите по подробнее про сигнал ENA... Jan 12 2010, 13:34 Sefo Цитата(ZED @ Jan 12 2010, 16:34) 2) BIC э... Jan 14 2010, 21:47 Sefo Цитата(ZED @ Jan 12 2010, 16:34) 1) Если ... Jan 24 2010, 21:14 ZED Вот, выдалась свободная минутка, прикрепляю собран... Feb 6 2010, 11:23 Sefo Цитата(ZED @ Feb 6 2010, 14:23) Вот, выда... Feb 7 2010, 17:52 ZED Да, совсем забыл, вот поправил: http://webfile.ru/... Feb 8 2010, 17:37 Reddy Что-то затихло это Великое Дело?
Кстати вопрос... Feb 28 2010, 22:31 jb83 Цитата(Reddy @ Mar 1 2010, 01:31) Кстати ... Mar 24 2010, 09:00 ZED ЦитатаКстати вопрос, а почему такие формулы вычисл... Mar 8 2010, 20:33 Sefo Цитата(Reddy @ Mar 1 2010, 01:31) Что-то ... Mar 23 2010, 09:20 ZED Да у меня тоже со временем до конца марта туго... Mar 23 2010, 18:08 Sefo Цитата(jb83 @ Mar 24 2010, 12:00) Кстати,... Mar 26 2010, 08:41 ViKo Ричард Лайонс - Цифровая обработка сигналов Mar 26 2010, 09:04 jb83 Спасибо, поищу Mar 26 2010, 11:08 Maverick Какой результат, этой титанической работы?
Предл... Sep 22 2010, 06:37 Sefo Цитата(Maverick @ Sep 22 2010, 10:37) Как... Sep 25 2010, 20:11 ZED Я тоже, правда еще понадобится время вспомнить, но... Sep 26 2010, 18:17 Sefo Продолжим, по-тихоньку. Сейчас написано много кода... Oct 23 2010, 16:16 Sefo Модули памяти я предпочел переименовать т.к. у нас... Oct 26 2010, 18:30 ZED В архиве единственная непустая папка RTL, где хран... Nov 11 2010, 13:00 Jhonny. Здравствуйте. Спасибо за очень полезную тему. У ме... Nov 28 2010, 08:44 ZED Динамически тут будет сделать трудно, ибо для кажд... Nov 29 2010, 06:37 Jhonny. К сожалению, нулями дополнить нельзя. БПФ нужно дл... Nov 29 2010, 07:47 Sefo Цитата(Jhonny. @ Nov 28 2010, 11:44) Необ... Nov 29 2010, 10:50 ZED ЦитатаНаличие разнородных бабочек, безусловно, усл... Nov 29 2010, 13:42 Sefo Цитата(ZED @ Nov 29 2010, 16:42) Вычислен... Nov 29 2010, 20:58 Jhonny. Спасибо за ответы.
То, что принцип соединения баб... Nov 30 2010, 10:28 Sefo Цитата(Jhonny. @ Nov 30 2010, 13:28) Спас... Nov 30 2010, 16:57 Sefo Вот "причесанный" код нашего БПФ (... Jan 4 2011, 21:48 ZED Вот коэффициенты ROM_x.mif плюс файл Matlab для их... Jan 11 2011, 04:14 Sefo Цитата(ZED @ Jan 11 2011, 07:14) Вот коэф... Jan 20 2011, 20:29 ZED А ну да, коэффициенты у нас лежат в диапазоне от -... Jan 24 2011, 12:09 Jhonny. Попытался оптимизировать бабочку, убрав повторяющи... Jan 29 2011, 10:54 chirik Добрый день!
Я разбираюсь с БПФ и не могу пон... Aug 3 2011, 14:52 ZED ЦитатаДобрый день!
Я разбираюсь с БПФ и не мо... Aug 4 2011, 05:14 chirik Почитав еще литературы стало яснее, что как правил... Aug 4 2011, 12:42 Костян Почему для W используется разрядность всего 12 бит... Sep 28 2011, 13:26 almost Цитата(Костян @ Sep 28 2011, 17:26) Почем... Sep 29 2011, 08:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|