Вычисляет обратное быстрое-фурье-преобразование и генерирует оптимизированный HDL-код
Поддержка/преобразования HDL DSP System Toolbox
Блок IFFT HDL Optimized предоставляет две архитектуры, которые реализуют алгоритм для приложений FPGA и ASIC. Можно выбрать архитектуру, которая оптимизирует пропускную способность или площадь.
Streaming Radix 2^2
- Используйте эту архитектуру для высокопроизводительных приложений. Эта архитектура поддерживает скалярные или векторные входные данные. Вы можете достичь пропускной способности выборка гига сэмплов в секунду (GSPS) с помощью векторного входа.
Burst Radix 2
- Используйте эту архитектуру для минимизации ресурса размещения, особенно с большеразмерными быстрыми преобразованиями Фурье (FFT). Ваша система должна быть в состоянии терпеть принятия пульсирующих данных. Эта архитектура поддерживает только скалярные входные данные.
Этот IFFT HDL Optimized принимает реальные или комплексные данные, обеспечивает аппаратные сигналы управления и опциональные выходные сигналы управления системой координат.
data
- Входные данныеВходные данные, заданные как скаляр или вектор-столбец вещественных или комплексные числа. Только Streaming Radix 2^2
архитектура поддерживает входной параметр вектора. Размер вектора должен быть степенью 2, в области значений от 1 до 64 и меньше или равен FFT length.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| single
| double
Поддержка комплексного числа: Да
valid
- Указывает на действительные входные данныеЭтот порт указывает, действительны ли входные данные. Когда входной valid true
(1
), блок захватывает значение на входе data порте. Когда входной valid false
(0
), блок игнорирует входные data выборок.
Типы данных: Boolean
reset
- Сброс управляющего сигналаКогда reset true
(1
), блок останавливает текущее вычисление и очищает все внутренние состояния. Блок запускает новую систему координат, когда reset false
(0
) и вход valid true
(1
).
Чтобы включить этот порт, выберите параметр Enable reset input port.
Типы данных: Boolean
data
- Выходные данные частотного каналаКогда вход является типом данных с фиксированной точкой и включено масштабирование, тип выходных данных аналогичен типу входных данных. Когда вход целого типа и масштабирование включено, выход представляет собой тип с фиксированной точкой с тем же размером слова, что и входное целое число. Порядок выхода по умолчанию преобразуется в бит. Если масштабирование отключено, выход размера слова увеличивается, чтобы избежать переполнения. Только Streaming Radix 2^2
архитектура поддерживает векторный вход и выход. Для получения дополнительной информации смотрите Divide butterfly outputs by two параметр.
Типы данных: fixed point
| double
| single
Поддержка комплексного числа: Да
valid
- Указывает на действительные выходные данные Этот порт указывает, что выходной data действителен. Когда valid true
(1
), блок возвращает действительные данные по порту выхода data. Когда valid false
(0
), значения на выход data порте недопустимы.
Типы данных: Boolean
ready
- Указывает, что блок готовЭтот порт указывает, что блок готов к новой входной выборке. Когда ready true
(1
), блок принимает входные данные на следующем временном шаге, и когда ready false
(0
), блок игнорирует входные данные на следующем временном шаге.
Порт появляется на блоке, когда вы устанавливаете параметр Architecture равным Burst Radix 2
.
Типы данных: Boolean
start
- Указывает первый допустимый цикл выходных данныхКогда вы активируете этот порт, блок устанавливает выход start равным true
(1
) во время первого действительного цикла системы координат выхода данных.
Чтобы включить этот порт, выберите параметр Enable start output port.
Типы данных: Boolean
end
- Указывает на последний допустимый цикл выходных данныхКогда вы активируете этот порт, блок устанавливает выход end равным true
(1
) во время последнего допустимого цикла системы координат выхода данных.
Чтобы включить этот порт, выберите параметр Enable end output port.
Типы данных: Boolean
FFT length
- Количество точек данных, используемых для одного расчета БПФ1024
(по умолчанию)Этот параметр задает количество точек данных, используемых для одного вычисления быстрого преобразования Фурье (IFFT). Для генерации HDL-кода длина БПФ должна быть степенью 2 между 23 и 216.
Architecture
- Тип архитектурыStreaming Radix 2^2
(по умолчанию) | Burst Radix 2
Этот параметр задает тип архитектуры.
Streaming Radix 2^2
- Выберите это значение, чтобы задать архитектуру с низкой задержкой. Этот тип архитектуры поддерживает пропускную способность GSPS при использовании векторного входа.
Burst Radix 2
- Выберите это значение, чтобы задать минимальную архитектуру ресурсов. Этот тип архитектуры не поддерживает векторный вход.
Для генерации HDL-кода длина БПФ должна быть степенью 2 между 23 и 216.
Для получения дополнительной информации об этих архитектурах см. «Алгоритмы».
Complex Multiplication
- Реализация HDLUse 4 multipliers and 2 adders
(по умолчанию) | Use 3 multipliers and 5 adders
Этот параметр задает тип комплексного множителя для реализации HDL. Каждое умножение реализуется либо с помощью Use 4 multipliers and 2 adders
или с Use 3 multipliers and 5 adders
. Скорость реализации зависит от инструмента синтеза и целевого устройства, которые вы используете.
Output in bit-reversed order
- Порядок выхода данныхЭтот параметр возвращает выходные элементы в обратном битовом порядке.
Когда вы выбираете этот параметр, выходные элементы преобразуются в бит. Чтобы вернуть выходные элементы в линейном порядке, очистите этот параметр.
Алгоритм ОБПФа вычисляет выход в обратном порядке ко входу. Если вы задаете выход в том же порядке, что и вход, алгоритм выполняет дополнительную операцию реверсирования. Для получения дополнительной информации смотрите Линейный и Битово-противоположный выходной порядок.
Input in bit-reversed order
- Ожидаемый порядок входных данныхКогда вы выбираете этот параметр, блок ожидает входные данные в обратном битовом порядке. По умолчанию флажок снят, и вход ожидается в линейном порядке.
Алгоритм ОБПФа вычисляет выход в обратном порядке ко входу. Если вы задаете выход в том же порядке, что и вход, алгоритм выполняет дополнительную операцию реверсирования. Для получения дополнительной информации смотрите Линейный и Битово-противоположный выходной порядок.
Divide butterfly outputs by two
- масштабирование БПФКогда вы выбираете этот параметр, блок реализует общий коэффициент N 1/ шкал путем деления выхода каждого умножения бабочки на два. Эта регулировка сохраняет выход ОБПФа в той же амплитуде, область значений и его вход. Если вы отключаете масштабирование, блок избегает переполнения, увеличивая размер слова на 1 бит после каждого умножения бабочки. Увеличение битов одинаково для обеих архитектур.
Rounding Method
- Режим округления для внутренних вычислений фиксированной точкиFloor
(по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Zero
Этот параметр позволяет вам выбрать тип режима округления для внутренних вычислений с фиксированной точкой. Для получения дополнительной информации о режимах округления см. Метод округления. Когда вход является любым целым числом или типом данных с фиксированной точкой, алгоритм ОБПФ использует арифметику с фиксированной точкой для внутренних вычислений. Эта опция не применяется, когда вход single
или double
тип. Округление применяется к операциям умножения и масштабирования коэффициента twiddle.
Enable reset input port
- Дополнительный сигнал сбросаЭтот параметр включает входной порт сброса. Когда вы выбираете этот параметр, входной reset порт появляется на значке блока.
Enable start output port
- Дополнительный сигнал управления, указывающий на начало данныхЭтот параметр включает порт, который указывает на начало выхода данных. Когда вы выбираете этот параметр, выходной start порт появляется на значке блока.
Enable end output port
- Дополнительный сигнал управления, указывающий конец данныхЭтот параметр включает порт, который указывает конец выхода данных. Когда вы выбираете этот параметр, выходной end порт появляется на значке блока.
Потоковая архитектура Radix 2 ^ 2 реализует архитектуру с низкой задержкой. Это экономит ресурсы по сравнению с потоковой реализацией Radix 2 путем факторинга и группировки уравнения БПФ. Архитектура имеет этапы log4 (N). Каждый каскад содержит две бабочки с одной задержкой (SDF) с контроллерами памяти. Когда вы используете векторный вход, каждый каскад работает на меньшем количестве входных выборок, поэтому некоторые каскады сокращаются до простой бабочки, без SDF.
Первый этап SDF - обычная бабочка. Второй этап умножает выходы первого этапа на –j. Чтобы избежать оборудование множителя, блок меняет действительные и мнимые части входов и снова меняет мнимые части полученных выходов. Каждый этап округляет результат умножения множителя twiddle до входа размера слова. Коэффициенты twiddle имеют два целочисленных бита, а остальная часть бит используется для дробных бит. Коэффициенты twiddle имеют ту же битовую ширину, что и входные данные, WL. Коэффициенты twiddle имеют два целочисленных бита и WL -2 дробных бита.
Если вы активируете масштабирование, алгоритм делит результат каждой стадии бабочки на 2. Масштабирование на каждом этапе избегает переполнения, сохраняет размер слова так же, как и вход, и приводит к общему коэффициенту шкалы 1/ N. Если масштабирование отключено, алгоритм избегает переполнения, увеличивая размер слова на 1 бит на каждом этапе. Схема показывает бабочек и внутренние размеры слова каждого этапа, не включая память.
Архитектура Burst Radix 2 реализует БПФ с помощью одного комплексного множителя бабочки. Алгоритм не может запуститься, пока не сохранен весь входной кадр, и он не может принять следующую систему координат, пока расчеты не будут завершены. Порт выхода ready указывает, когда алгоритм готов к новым данным. Схема показывает архитектуру пакета с реестрами трубопроводов.
Алгоритм обрабатывает входные данные только, когда входной valid порт равен 1. Выходные данные действительны только, когда выходной valid порт равен 1.
Когда необязательный входной reset порт равен 1, алгоритм останавливает текущее вычисление и очищает все внутренние состояния. Алгоритм начинает новые вычисления reset когда порту 0, и входной valid порт запускает новую систему координат.
Эта схема показывает вход и выход значения портов valid для смежных скалярных входных данных, потоковой архитектуры Radix 2 ^ 2, длины 1024 БПФ и размера вектора 16.
Схема также показывает необязательные значения start и end портов, которые указывают на контуры системы координат. Если вы активируете start порт, значение порта start импульсирует для одного цикла с первым действительным выходом системы координат. Если вы активируете end порт, значение порта start импульсирует для одного цикла с последним допустимым выходом системы координат.
Если вы применяете непрерывные входные кадры, выход также будет непрерывным после начальной задержки.
Входной valid порт может быть несмежным. Данные, сопровождаемые входы valid портом, обрабатываются по мере его поступления, и полученные данные сохраняются до тех пор, пока не будет заполняема система координат. Затем алгоритм возвращает смежные выходные выборки в системе координат N (FFT length) циклов. Эта схема показывает несмежный вход и смежный выход для БПФ длины 512 и размера вектора 16.
Когда вы используете архитектуру пакета, вы не можете предоставить следующую систему координат входных данных, пока не станет доступно пространство памяти. Порт ready указывает, когда алгоритм может принять новые входные данные.
Задержка зависит от FFT length и входа размера вектора. После обновления модели значок блока отображает задержку. Отображаемая задержка - это количество циклов между первым действительным входом и первым действительным выходом, при условии, что вход смежен. Чтобы получить эту задержку программно, смотрите Автоматическое совпадение задержек для Задержки Оптимизированного Блока FFT HDL.
При использовании архитектуры пакета с смежным входом, если ваш проект ждет, когда ready выведет 0
перед отменой утверждения входного valid на вход приходит один дополнительный цикл данных. Эта выборка данных является первой выборкой следующей системы координат. Алгоритм может сохранить одну выборку во время обработки текущей системы координат. Из-за этого усовершенствования одной выборки наблюдаемая задержка более поздних систем координат (от входных valid до выходных valid) на один цикл короче, чем сообщенная задержка. Задержка измеряется с первого цикла, когда вход valid равен 1, до первого цикла, когда выход valid равен 1. Количество циклов между ready портом 0 и выходом портом valid 1 всегда latency - FFTLength.
Этот ресурс и данные о эффективности являются результатом синтеза сгенерированного HDL-кода, нацеленного на Xilinx® Virtex®-6 (XC6VLX75T-1FF484) ПЛИС. Примеры в таблицах имеют следующее строение:
1024 Длина БПФ (по умолчанию)
Комплексное умножение с помощью 4 умножителей, 2 сумматоров
Выход включён
Вход естественного порядка, Bit-reversed выхода
16-битные комплексные входные данные
Синхроимпульс включает минимизированный (параметр HDL Coder™)
Эффективность синтезированного HDL-кода варьируется с вашей целью и опциями синтеза. Для образца при переупорядочении для вывода естественного порядка используется больше ОЗУ, чем выход с обращенным битами по умолчанию, а при действительном входе - меньше ОЗУ, чем при комплексном входе.
Для скалярной входной конфигурации Radix 2 ^ 2, конструкция достигает тактовой частоты 326 МГц. Задержка составляет 1116 циклов. В проекте используются эти ресурсы.
Ресурс | Используемое число |
---|---|
LUT | 4597 |
FFS | 5353 |
Xilinx LogiCORE® DSP48 | 12 |
Блокируйте ОЗУ (16K) | 6 |
Когда вы векторизируете ту же реализацию Radix 2 ^ 2, чтобы обработать два 16-битных входа выборки параллельно, проект достигает тактовой частоты 316 МГц. Задержка составляет 600 циклов. В проекте используются эти ресурсы.
Ресурс | Используемое число |
---|---|
LUT | 7653 |
FFS | 9322 |
Файлы Xilinx LogiCORE DSP48 | 24 |
Блокируйте ОЗУ (16K) | 8 |
Блок поддерживает скалярные входные данные только при реализации архитектуры burst Radix 2. Проект пакета достигает тактовой частоты 309 МГц. Задержка составляет 5811 циклов. В проекте используются эти ресурсы.
Ресурс | Используемое число |
---|---|
LUT | 971 |
FFS | 1254 |
Файлы Xilinx LogiCORE DSP48 | 3 |
Блокируйте ОЗУ (16K) | 6 |
Этот блок поддерживает генерацию кода C/C + + для Simulink® режимы Accelerator и Rapid Accelerator и для генерации компонентов DPI.
HDL Coder предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
Если вы используете блок IFFT HDL Optimized с блоком State Control (HDL Coder) внутри Enabled Subsystem (Simulink), опциональный порт сброса не поддерживается. Если вы включите порт сброса на блоке IFFT HDL Optimized в такой подсистеме, модель будет ошибаться на схеме обновления.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.