Моделирование эффективного умножения и операций деления для предназначения FPGA

Эти инструкции иллюстрируют рекомендуемые настройки при использовании Divide и блоков Product в вашей модели для улучшенной области и синхронизирующий на целевом FPGA. Каждая инструкция имеет уровень серьезности, который указывает на уровень требований податливости. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.

Разработка множителей и сумматоров для эффективного отображения с блоками DSP на FPGA

ID инструкции

2.7.1

Серьезность

Строго рекомендуемый

Описание

Алгоритмы цифровой обработки сигналов (DSP) используют несколько множителей и аккумуляторов. Устройства FPGA, обеспеченные поставщиками, такими как Xilinx® и Intel®, содержат выделенные срезы DSP. Они небольшой размер, высокая скорость, срезы DSP содержат несколько множителей и аккумуляторов, которые делают устройства FPGA подходящими лучше всего для приложений DSP.

Архитектура срезов DSP значительно различается через различных поставщиков FPGA и через различные семейства устройств, обеспеченных тем же поставщиком. Чтобы сопоставить вашу модель Simulink®, содержащую сумматоры, множители и задержки со срезами DSP, адаптируют вашу модель к секционной архитектуре DSP путем учета:

  • Расположение триггеров, сумматоров и множителей в срезе DSP.

  • Округление и настройки насыщения.

  • Битные ширины сумматоров и множителей. Для эффективного отображения используйте битные ширины в своей модели, которые меньше чем или равны битным ширинам модуля DSP.

Когда битные ширины в вашей модели становятся больше, чем битные ширины DSP, ваш проект не соответствует на один DSP. В этом случае несколько DSPS или дополнительная логика требуются.

Можно сопоставить эти блоки в модели с блоками DSP на FPGA:

  • Добавьте и суммируйте

  • Задержка

  • Продукт

  • Умножьтесь - Добавляют

  • Умножьтесь - Накапливаются

Этот рисунок иллюстрирует архитектуру DSP Xilinx. Серии FPGAs Xilinx 7 выделили срезы DSP, которые используют эту архитектуру. Архитектура DSP состоит из входных регистров, предварительного сумматора, 25x18 множитель, промежуточные регистры, постсумматор и выходной регистр.

Для получения дополнительной информации см. Обзор Среза DSP48E1 в документации Xilinx.

Этот рисунок иллюстрирует архитектуру DSP Intel. Эта архитектура DSP для устройств Stratix® V является переменной архитектурой DSP точности. Блоки DSP могут иметь битные ширины 9, 18, 27, и 36 битов, и 18x25 комплексное умножение для БПФ.

Для получения дополнительной информации смотрите Архитектуру Блока DSP в документации Intel.

Чтобы изучить, как можно спроектировать алгоритм, чтобы сопоставить с этим модулем DSP, откройте модель hdlcoder_multiplier_adder_dsp.slx

open_system('hdlcoder_multiplier_adder_dsp')
set_param('hdlcoder_multiplier_adder_dsp', 'SimulationCommand', 'Update')

Модель состоит из двух подсистем dsp_subsys1 и dsp_subsys2, которые реализуют операцию C + (A+D) *B. Можно также реализовать эту операцию при помощи, Умножаются - Добавляют или Умножаются - Накапливают блоки, как проиллюстрировано подсистемами DSP_MultAdd и DSP_MultAcc.

dsp_subsys1 реализует операцию C + (A+D) *B при помощи битных ширин, которые равняются DSP на серии FPGA Xilinx 7. Если вы открываете HDL Workflow Advisor и развертываете эту Подсистему на Virtex® 7 FPGA Xilinx, целый проект соответствует точно на один срез DSP.

dsp_subsys2 реализует ту же операцию при помощи битных ширин, которые больше, чем DSP на FPGA Xilinx. Если вы развертываете эту Подсистему на FPGA Xilinx Virtex 7, вы видите, что целые подгонки проекта на один срез DSP и используют дополнительную логику среза.

Используйте ShiftAdd Архитектура блока Divide для фиксированных точек

ID инструкции

2.7.2

Серьезность

Рекомендуемый

Описание

Когда вы используете типы данных с фиксированной точкой в качестве входных параметров с блоком Divide, задаете Архитектуру HDL блока как ShiftAdd и затем набор свойство UsePipelines блока HDL к on. В этой архитектуре блок вычисляет результат при помощи нескольких, переключают и добавляют операции. Операции являются конвейерными, чтобы достигнуть более высоких частот часов на целевом устройстве FPGA.

Когда вы используете типы данных с плавающей точкой в качестве входных параметров с блоком Divide, оставляете Архитектуру HDL значению по умолчанию Linear и набор Библиотека IP С плавающей точкой к Native Floating Point.

Смотрите также

Функции

Блоки

Похожие темы