Перейти к содержанию
    

Вот ОЗУ.

 

Халтурите... однако :) То, что в прицепе вашего сообщения - лишь кирпич (даже пол кирпича) из которого нужно построить наше ОЗУ для БПФ. Нам ведь нужно за 1 раз прочитать/записать 4 комплексных точки. А Ваше ОЗУ может хранить только половину одной единственной комплексной точки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я думал, что у нас будет отдельное ОЗУ для реальной части и отдельное для мнимой. 4 ОЗУ - типа банки. Итого просто 8 ОЗУ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я думал, что у нас будет отдельное ОЗУ для реальной части и отдельное для мнимой. 4 ОЗУ - типа банки. Итого просто 8 ОЗУ.

 

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

 

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

 

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

 

Так что придерживайтесь блок-схемы - мы ее не даром рисовали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот тут два варианта: один простой, а второй с применением package.

RAM.rar

RAM_with_package.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот тут два варианта: один простой, а второй с применением package.

 

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

 

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

 

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

 

У меня, к сожалению, до 6 декабря не будет времени на БПФ. Поэтому Вы пока соберите все наши отдельные блоки в модуль БПФ. Придерживайтесь блок-схемы и не забудьте про package. Еще поставьте ModelSim (даже если Вы с ним не умеете работать - вот заодно и научитесь) т.к. в Квартусе моделировать и отлаживать крайне не удобно. Если будут вопросы, то пишите - краткие ответы я дам и до 6 декабря.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Кстати и вопрос как мы ее будем реализовыватьwhen case?

 

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

Да именно по нему.

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

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

 

FFT_2048

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Нашел:

http://www.embedded.com/2000/0009/0009feat3.htm

Там есть и описание реализации и связь с БПФ, правда формулы в плохом качестве, но я все понял.

 

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

Ну я и не предлагаю, тем более столько уже сделано. Просто хотел заметить, что на практике используются другие алгоритмы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

где взял не помню, даю что есть

FFT_Wave.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Кстати и вопрос как мы ее будем реализовыватьwhen case?

 

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

 

Какая у Вас версия ModelSim и умеете ли Вы с ним работать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот, прикрепляю собранный проект...

 

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

 

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

 

Как дела с ROM для коэффициентов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...