|
Реализация БПФ на ПЛИС, Тудности, встречаемые при реализации |
|
|
|
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 @ Mar 25 2009, 21:20) только д... Mar 26 2009, 12:17 ZED Честно говоря я не совсем понял, в дополнительном ... Mar 28 2009, 08:51 Джеймс ЦитатаSefo
Как Вы думаете, какое 12-ти разрядное ... Mar 28 2009, 11:32 Sefo Цитата(Джеймс @ Mar 28 2009, 14:32) Сорри... Mar 28 2009, 12:15 ZED Я учусь в МЭИ на радиотехника, с вычислилкой тугов... Mar 28 2009, 20:02 Sefo Прошу прощения, но вынужден взять таймаут до вторн... Mar 29 2009, 22:08 ZED Я прочитал статью, ну да знак представляется самым... Mar 30 2009, 16:25 Sefo Не могу понять, что именно меня сбило с толку, но ... Mar 30 2009, 21:24 ZED Я не совсем понял, что значит описать математическ... Mar 31 2009, 14:34 Sefo Например выход y0_re бабочки = (x0_re + x1_re + x... Mar 31 2009, 16:01 ZED Видим о это будет как-то так:
result_re <= (... Apr 1 2009, 16:03 Sefo Непонятно откуда взялось 4096 - последней версии у... Apr 1 2009, 21:20 ZED result_re <= (y_re_sig*w_re_sig + y_im_sig*w_im... Apr 2 2009, 15:33 Sefo А вот теперь непонятно, откуда Вы взяли 2048 в фор... Apr 2 2009, 17:26 ZED ЦитатаЯ-то думал, что Вы в симуляции умножителя 60... Apr 3 2009, 04:00 Sefo Есть 2 варианта. Либо, как и в бабочке увеличить р... Apr 4 2009, 17:38 ZED Я склоняюсь ко 2 варианту. с точки зрения БПФ мы п... Apr 4 2009, 17:42 Sefo Если говорить очень кратко, то в силу того, что зн... Apr 5 2009, 15:27 ZED Да, все понятно, спасибо! Apr 5 2009, 16:28 Sefo Тогда продолжим.
Во-первых, подправьте код умножи... Apr 5 2009, 22:14 ZED ЦитатаВо-первых, подправьте код умножителей под ди... Apr 7 2009, 14:03 Sefo Цитата(ZED @ Apr 7 2009, 18:03) Вот тут я... Apr 7 2009, 22:10 ZED ЦитатаЧисто комбинаторный блок это вполне нормальн... Apr 8 2009, 16:12 ZED На счет if generate я погорячился, даже сказал бы... Apr 9 2009, 03:50 Sefo Цитата(ZED @ Apr 8 2009, 20:12) Да, но ба... Apr 9 2009, 09:20 ZED Цитатаprocess никогда и ни при каких обстоятельств... Apr 9 2009, 15:06 ZED Я переправил, просто исправил позже, чем вы ответи... Apr 9 2009, 15:46 Sefo Ok. А как обстоят дела с введением record? Apr 9 2009, 15:50 ZED В процессе, сейчас хочу все соединить поскорее, а ... Apr 9 2009, 17:03 ZED Прошу прощения забыл регистры, на выходе для отсче... Apr 10 2009, 03:58 Sefo наконец-то выдалось немного свободного времени - п... Apr 12 2009, 02:20 ZED Цитата1) Зачем, всетаки, приставка but к портам ба... Apr 13 2009, 17:12 ZED Никак не пойму, что нужно с записью сделать, как о... Apr 14 2009, 13:08 Sefo Цитата(ZED @ Apr 13 2009, 21:12) Resize н... Apr 16 2009, 22:37 petrov Цитата(Sefo @ Apr 17 2009, 02:37) К сожал... Jul 8 2009, 11:26 ZED Ну, если предположить, что каждая память состоит и... Apr 19 2009, 10:28 Sefo Такая коррекция адреса – бессмысленный расход логи... Apr 19 2009, 19:19 ZED ЦитатаЛучше сразу в управляющей логике формировать... Apr 20 2009, 15:13 Sefo Цитата(ZED @ Apr 20 2009, 19:13) Тогда во... Apr 21 2009, 15:41 Sefo Цитата(Sefo @ Apr 21 2009, 19:41) Теперь,... Apr 24 2009, 15:21 ZED Цитата(Sefo @ Apr 24 2009, 18:21) Что-то ... Apr 25 2009, 09:30 Sefo Да. Дело в мультиплексировании. Как именно напишу ... Apr 25 2009, 13:39 Reddy А прикольное Руко-водство! Давно такое искал. ... Apr 30 2009, 15:56 Maverick Цитата(Reddy @ Apr 30 2009, 18:56) А прик... May 4 2009, 07:56 ZED Вот с recordом, только он не как шины распознает, ... Apr 30 2009, 18:37 Sefo Цитата(Reddy @ Apr 30 2009, 19:56) А прик... May 1 2009, 13:53 Reddy Можно тогда тоже поучаствовать? - У меня вопрос... May 4 2009, 07:02 ZED ЦитатаZED - не в обиду будет сказано, хороший учен... May 4 2009, 15:31 Sefo Цитата(Reddy @ May 4 2009, 11:02) Можно т... May 4 2009, 20:53 ZED Поправил, ох уж этот Ctl+C Ctl+V May 7 2009, 15:08 Sefo Вы не тот файл выложили - там нет ни одного отличи... May 7 2009, 20:25 ZED Блин, точно=) Вот... May 8 2009, 03:56 Sefo Увы, в сумме стало хуже. Поправляя ошибки Вы порав... May 8 2009, 20:43 ZED Вот моя очередная попытка! May 10 2009, 09:18 Sefo Замечательно! Так бы сразу!
Проблемы 6-го... May 10 2009, 23:03 ZED Ну, если в двух словах, с помощью счетчика с перем... May 13 2009, 03:15 Sefo Про счетчики с переменным модулем счета все понятн... May 13 2009, 11:10 ZED ЦитатаПро назначение мультиплексоров не совсем пон... May 16 2009, 13:52 Sefo Цитата(ZED @ May 16 2009, 17:52) Ну так c... May 18 2009, 15:04 ZED Вот новый вариант, так сказать вторая попытка, бол... May 21 2009, 16:34 Sefo Цитата(ZED @ May 21 2009, 20:34) Вот новы... May 25 2009, 21:20 Sefo Цитата(kas @ Jun 3 2009, 07:03) (-32 + 2)... Jun 3 2009, 17:53 kas Цитата(Sefo @ Jun 4 2009, 01:53) Да. Отбр... Jun 4 2009, 06:53 Sefo Цитата(kas @ Jun 4 2009, 10:53) я не совс... Jun 4 2009, 07:50 kas Цитата(Sefo @ Jun 4 2009, 15:50) Нет, оши... Jun 4 2009, 09:52 Sefo Что-то я Вас не понимаю...
Цитата(kas @ Jun ... Jun 4 2009, 10:58 kas Цитата(Sefo @ Jun 4 2009, 18:58) Что-то я... Jun 4 2009, 11:38 Sefo Понятно, к чему Вы клоните . Вы не очень удачно вы... Jun 4 2009, 18:45 ZED Простите пока временно не могу продолжать работу -... Jun 8 2009, 10:31 Sefo Цитата(ZED @ Jun 8 2009, 14:31) Простите ... Jun 9 2009, 05:56 Reddy Извиняюсь за вопрос! Я честно говоря так и не ... Jun 14 2009, 10:44 Sefo Цитата(Reddy @ Jun 14 2009, 14:44) Извиня... Jun 15 2009, 08:29 Reddy Цитата(Sefo @ Jun 15 2009, 12:29) С фикси... Jun 15 2009, 13:43 Sefo Цитата(Reddy @ Jun 15 2009, 17:43) А не м... Jun 16 2009, 19:02 Reddy В смысле вместо стандартного ДПФ
используем как б... Jun 17 2009, 15:06 Sefo Цитата(ZED @ Jun 8 2009, 14:31) Простите ... Jun 27 2009, 22:47 ZED ЦитатаКак прошла защита?
Продолжим освоение БПФ?
... Jun 29 2009, 16:48 ZED Я думаю, что на 5 этапе банки вращать не следует, ... Jul 2 2009, 06:34 ZED Блин удалилось сообщение, в общем для чтения и зап... Jul 6 2009, 07:22 Sefo Цитата(ZED @ Jul 2 2009, 10:34) Я думаю, ... Jul 7 2009, 09:06 Sefo Цитата(petrov @ Jul 8 2009, 15:26) Кванто... Jul 9 2009, 11:09 petrov Цитата(Sefo @ Jul 9 2009, 15:09) Ну а теп... Jul 9 2009, 12:46 Sefo Цитата(petrov @ Jul 9 2009, 16:46) Так эт... Jul 10 2009, 08:21 petrov Цитата(Sefo @ Jul 10 2009, 12:21) Ну и чт... Jul 10 2009, 08:38 Sefo Цитата(petrov @ Jul 10 2009, 12:38) Снача... Jul 10 2009, 11:06 petrov Цитата(Sefo @ Jul 10 2009, 15:06) Это утв... Jul 10 2009, 11:45 Sefo Цитата(petrov @ Jul 10 2009, 15:45) Вот в... Jul 16 2009, 17:11 ZED С интернетом были проблемы, а с работы файлы почем... Jul 16 2009, 17:20 Sefo Цитата(ZED @ Jul 16 2009, 21:20) С интерн... Jul 16 2009, 17:42 ZED Вот, поправил! Jul 19 2009, 07:36 Sefo Цитата(ZED @ Jul 19 2009, 11:36) Вот, поп... Aug 8 2009, 08:20 ZED Хорошо, спасибо! Aug 8 2009, 08:38 ZED Я тут на досуге несколько поколдовал над генератор... Aug 22 2009, 08:39 Sefo Еще раз извиняюсь за столь длительный перерыв.
На... Aug 30 2009, 20:51 Krolm Добрый день! тоже хочется вклиниться, но из-за... Aug 31 2009, 10:40 ZED Не знаю, я не сталкивался с Альтеровским БПФ, если... Aug 31 2009, 12:38 ZED Да, там действительно нет коэффициента W1028? хотя... Sep 3 2009, 08:51 Sefo Цитата(ZED @ Sep 3 2009, 12:51) хотя кста... Sep 3 2009, 22:10 ZED ЦитатаВаш gen_addr посмотрел, но мы сделаем другую... Sep 6 2009, 10:36
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|