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

 
 
> Реализация БПФ на ПЛИС, Тудности, встречаемые при реализации
ZED
сообщение Jan 18 2009, 19:19
Сообщение #1


Местный
***

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



Доброго времени суток!

Нужно реализовать алгоритм БПФ с прореживанием по частоте на ПЛИС, но при реализации возникают трудности, вот некоторые из них:
  1. Поворачивающие множители являются числами по модулю меньше либо равно единицы: |W|<=1. Я так понял, чтобы перейти к целым числам требуется умножать их на (2^N) и то, что после запятой отсекать (N - разрядность). Нужно ли то же самое делать с входными данными (x1 и x2) или не обязательно?
  2. Нужно реализовать операции умножения и сложения со знаковыми числами, тут у меня такая задумка: преобразовать в 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. На форуме я искал и не нашел ответа на свои вопросы, тем более я уверен далее появятся новые, думаю лучше, чтоб это все было в одной теме...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ZED   Реализация БПФ на ПЛИС   Jan 18 2009, 19:19
- - soldat_shveyk   1. Чтобы поворачивающий множитель W, меньший едини...   Jan 18 2009, 20:55
- - Builder   Цитата(ZED @ Jan 18 2009, 23:19) Вопрос б...   Jan 18 2009, 20:57
- - ZED   ЦитатаСам не знаю как лучше, но все-же, а если пос...   Jan 18 2009, 21:26
- - soldat_shveyk   Я малость ошибся правильно будет так: round(W*(2^...   Jan 19 2009, 10:32
- - ZED   ЦитатаЯ малость ошибся правильно будет так: round(...   Jan 19 2009, 16:28
- - soldat_shveyk   Не силен в Verilog. Помочь не могу. А не пробовали...   Jan 20 2009, 07:41
- - ZED   ЦитатаНе силен в Verilog. Помочь не могу. А не про...   Jan 20 2009, 15:42
- - soldat_shveyk   ALTERA FFT Compiler - все основное там есть. Для м...   Jan 20 2009, 19:38
- - ZED   ЦитатаЕсли не подойдут Вам оригинальные варианты, ...   Jan 20 2009, 20:28
- - soldat_shveyk   Для ознакомительной работы в режиме OpenCore можно...   Jan 21 2009, 10:33
- - ZED   Вопрос по vhdl остается открытым, но похоже кроме ...   Jan 21 2009, 18:04
- - soldat_shveyk   Откопал у себя исходники всех альтеровских БПФ-ов,...   Jan 22 2009, 08:07
- - ZED   Буду очень признателен: zed1986@yandex.ru Спасибо...   Jan 22 2009, 19:36
- - ZED   Возникла еще одна проблема, реализую БПФ по схеме ...   Jan 30 2009, 05:06
- - BuTeK   поделитесь рабочей коркой БПФ на почту cvik@tut.by   Jan 30 2009, 05:35
- - ZED   Цитатаподелитесь рабочей коркой БПФ на почту cvik@...   Jan 31 2009, 09:16
- - анатолий   Проще всего сначала представить данные в формате I...   Feb 2 2009, 14:02
- - ZED   Спасибо, Анатолий, я так и делал, возник вопрос ка...   Feb 10 2009, 17:38
- - ZED   В общем нужно масштабировать данные после операций...   Feb 12 2009, 20:14
- - Sefo   Как ваши дела с БПФ? Если вопрос еще актуальный и ...   Feb 18 2009, 01:27
- - BuTeK   Конечно актуально! Поделитесь информацией... О...   Feb 18 2009, 05:45
- - ZED   Вопрос еще актуальный, буду очень признателен. Осо...   Feb 18 2009, 09:26
- - Sefo   Сначала давайте определимся что мы хотим и выберем...   Feb 18 2009, 15:38
- - ZED   Не совсем понял про разделение бабочки и поворачив...   Feb 18 2009, 16:34
- - Sefo   Про разделение бабочки и поворачивающих множителей...   Feb 18 2009, 16:56
- - ZED   Хорошо, жду с нетерпением, завтра я буду вечером и...   Feb 18 2009, 17:04
- - Sefo   На рисунке показана базовая операция для БПФ с про...   Feb 19 2009, 13:29
- - ZED   Честно говоря, конечно лучше бы 4-х Т.Б. Но как с ...   Feb 19 2009, 15:21
- - Sefo   Итак, делаем более быстрый вариант с 4-х и 2-х Т.Б...   Feb 19 2009, 22:36
- - ZED   Пока никакого интерфейса я не проектировал, считал...   Feb 20 2009, 17:38
- - Sefo   Я не спроста предложил Вам пройти путь создания БП...   Feb 20 2009, 19:26
- - ZED   Вот пожалуйста, мои инсинуации: http://ifolder.ru/...   Feb 20 2009, 20:50
- - Sefo   Первые комментарии такие. Это не блок схема, а схе...   Feb 21 2009, 09:07
- - ZED   ЦитатаНепонятно назначение блока на входе памяти д...   Feb 21 2009, 10:01
- - Sefo   Но что подается на Q2 когда D подается на Q1?   Feb 21 2009, 10:25
- - ZED   На Q2 подается Z, когда D подается на Q1   Feb 21 2009, 10:42
- - Sefo   Это ножки ПЛИС можно физически перевести в третье ...   Feb 21 2009, 14:31
- - ZED   ЦитатаЭто ножки ПЛИС можно физически перевести в т...   Feb 21 2009, 16:06
- - Sefo   Поскольку мы выбрали схему пин-понг, то двухпортов...   Feb 22 2009, 10:05
- - ZED   Не, это не учебный, ну я думаю там отсчеты будут п...   Feb 22 2009, 10:44
- - Sefo   Все внешние интерфейсы всегда определяются тем, к ...   Feb 22 2009, 12:36
- - ZED   Не, у меня первый вариант, я так понимаю, что блок...   Feb 23 2009, 10:40
- - Sefo   Только не ClockEnable, а Write_Enable. Он так же д...   Feb 24 2009, 12:52
- - Sefo   Куда же Вы пропали?   Feb 27 2009, 05:11
- - ZED   Прошу прощения, у меня просто возникли очень сложн...   Feb 28 2009, 15:35
- - ZED   Вот исправленный БПФ-алгоритм и недоделанная схема...   Mar 2 2009, 20:14
- - Sefo   Стоп, стоп! С блок-схемой притормозите - к сож...   Mar 3 2009, 07:00
- - Sefo   Вот блок-схема БПФ. Вам нужно дорисовать к ней инт...   Mar 4 2009, 11:49
- - ZED   А вот, что подразумевалось под блок-схемой=)) Спас...   Mar 4 2009, 17:05
- - Sefo   Цитата(ZED @ Mar 4 2009, 20:05) ...строго...   Mar 4 2009, 23:41
- - ZED   Исправил. ЦитатаВас смущает в том, чтобы подавать ...   Mar 6 2009, 15:20
- - Sefo   Теперь про блок-схему. Если бы там нужно было то...   Mar 6 2009, 15:42
|- - sazh   Цитата(Sefo @ Mar 6 2009, 18:42) Теперь п...   Mar 6 2009, 16:04
- - Sefo   RE: Реализация БПФ на ПЛИС   Mar 6 2009, 16:55
- - ZED   ЦитатаВ общем, постарайтесь продумать, как его под...   Mar 6 2009, 19:12
- - ZED   Там нужно еще библиотеку добавить: Кодuse IEEE.std...   Mar 6 2009, 20:54
- - Sefo   После просмотра и синтеза вашего кода в Квартусе у...   Mar 7 2009, 14:10
- - ZED   ЦитатаЗачем Вы поставили регистры на входе? Да, де...   Mar 7 2009, 14:22
- - Sefo   В том то и дело, что Квартус плохо разобрался как ...   Mar 7 2009, 14:36
- - Sefo   Попробовали написать код без integer?   Mar 7 2009, 15:49
- - ZED   Попробовал, но не могу проверить (Quartus сломался...   Mar 8 2009, 10:12
- - Sefo   Кроме того, что код оказался не компилируем, разли...   Mar 8 2009, 18:52
- - ZED   Пока на ум пришло только это: Кодlibrary IEEE; us...   Mar 8 2009, 20:21
- - Sefo   "if" не может быть использован вне проце...   Mar 8 2009, 20:50
- - ZED   Цитата"if" не может быть использован вне...   Mar 8 2009, 21:50
- - Sefo   Когда у Вас будет возможность просинтезировать код...   Mar 8 2009, 23:21
- - ZED   Квартус синтезирует 2 сумматора, на вход одного из...   Mar 9 2009, 10:43
- - Sefo   Вот это-то и плохо. У нас обычное суммирование с п...   Mar 9 2009, 12:24
- - ZED   Если только самому как-то описывать полный суммато...   Mar 9 2009, 13:22
- - Sefo   Извиняюсь за длительную паузу. Прием очень простой...   Mar 11 2009, 23:11
- - ZED   Прошу прощения, что долго не отвечал, просто по уч...   Mar 16 2009, 04:22
- - Sefo   Ну как, разрулили?   Mar 18 2009, 09:08
- - ZED   Да, спасибо, разрулил более менее, надеюсь еще как...   Mar 18 2009, 17:18
- - Sefo   1) Локально, это имеется ввиду внутри бабочки. В с...   Mar 18 2009, 18:26
- - Azatot   Господа,так ведь же есть уже готовые БПФ ядра и у ...   Mar 18 2009, 19:02
- - Sefo   В данном случае преследуются учебные цели. Понятно...   Mar 18 2009, 19:44
- - ZED   Ну я так и имел ввиду: Кодsignal A : std_logi...   Mar 19 2009, 19:09
- - Sefo   Теперь мне не очень понятно, поняли ли Вы меня пра...   Mar 19 2009, 20:00
- - ZED   Чего-то не симулируется, квартус лагает, вот проек...   Mar 21 2009, 17:03
- - Sefo   Что значит не симулируется? Под проектом я понимаю...   Mar 21 2009, 19:13
- - ZED   ЦитатаЧто значит не симулируется? Временная диагра...   Mar 21 2009, 20:12
|- - sazh   Цитата(ZED @ Mar 21 2009, 23:12) Временна...   Mar 22 2009, 10:20
- - Sefo   Вы просто не тот файл смотрите. Результаты симуляц...   Mar 22 2009, 08:35
- - ZED   Вот, что у меня получилось:   Mar 22 2009, 10:48
- - Sefo   Цитата(sazh @ Mar 22 2009, 13:20) Если я ...   Mar 22 2009, 11:41
- - ZED   Да, но результат суммирования теперь увеличился на...   Mar 22 2009, 12:49
- - Sefo   Все-таки, Вы не поняли. Округление мы уже произв...   Mar 22 2009, 13:30
- - ZED   В Москве. Просто вы писали: ЦитатаВ случае (A+B+C+...   Mar 22 2009, 14:14
- - Sefo   Видимо, словами "круг замкнулся" я Вас з...   Mar 22 2009, 15:45
- - ZED   Все вроде понял, т.е. мы сразу после АЦП добавляем...   Mar 22 2009, 16:03
- - Sefo   Да. Ура! Ттеперь можно перейти к умножител...   Mar 22 2009, 16:22
- - ZED   1.0 это 2047 -1.0 это -2047 Чтобы не увеличивать...   Mar 22 2009, 16:43
- - Sefo   Давайте пока так начнем. Впроцессе реализации сами...   Mar 23 2009, 07:53
- - ZED   Вот комплексный перемножитель, не знаю правильно л...   Mar 24 2009, 15:32
- - Sefo   Хорошо. Код внимательно посмотрю завтра - навскидк...   Mar 24 2009, 19:37
- - Sefo   Цитата(ZED @ Mar 24 2009, 18:32) вроде ум...   Mar 25 2009, 11:56
- - ZED   ЦитатаЧему равна разрядность произведения двух зна...   Mar 25 2009, 17:23
- - Sefo   Цитата(ZED @ Mar 25 2009, 20:23) n+k Не ...   Mar 25 2009, 18:12
- - ZED   По-моему что для знаковых, что для беззнаковых пр...   Mar 25 2009, 18:20
4 страниц V   1 2 3 > » 


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

 


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


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