Настройки разделения ресурсов для различных блоков

Разделение ресурсов является оптимизацией области, в которой HDL Coder™ идентифицирует несколько функционально эквивалентных ресурсов и заменяет их на один ресурс. Данные мультиплексируются временем по совместно используемому ресурсу, чтобы выполнить те же операции. Чтобы узнать больше, как разделение ресурсов работает, смотрите Разделение ресурсов.

Можно следовать этим инструкциям, чтобы изучить, как использовать оптимизацию разделения ресурсов эффективно с блоками, такими как Add и Product. Каждая инструкция имеет уровень серьезности, который указывает на уровень требований податливости. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.

Разделение ресурсов добавляет блоки

ID инструкции

3.1.1

Серьезность

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

Описание

Совместно использовать несколько блоков Add:

  • Выберите установку Share Adders.

  • Оставьте минимум совместного использования Сумматора bitwidth 0.

  • Определите, выполнить ли разделение ресурсов на существующей тактовой частоте или на более высокой тактовой частоте. Чтобы использовать более высокую тактовую частоту, задайте фактор Сверхдискретизации, больше, чем 1.

  • Задайте StreamingFactor для блоков Add с векторными вводами или выводами.

  • Задайте SharingFactor для блоков Add со скалярными вводами или выводами.

  • Убедитесь, что входные размеры слова Add блокируют соответствие.

    Например, этот рисунок иллюстрирует модель, содержащую три блока Add, помещенные в Subsystem с SharingFactor 3. Чтобы совместно использовать блоки Add, необходимо вставить блоки Data Type Conversion с набором Output data type к int16 так, чтобы входные размеры слова соответствовали.

Разделение ресурсов блоков усиления

ID инструкции

3.1.2

Серьезность

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

Описание

Когда вы совместно используете несколько блоков Gain в своем проекте, оптимизация вставляет логику сериализации и десериализации, чтобы совместно использовать ресурсы. Эта дополнительная логика может стать областью наверху, если вы не совместно используете большое количество ресурсов. Поэтому, если ваш проект не содержит большое количество блоков Gain, чтобы совместно использовать, рекомендуется, чтобы вы отключили оптимизацию разделения ресурсов. Совместно использовать несколько блоков Gain:

Совместно использовать несколько блоков Gain:

  • Определите, как реализовать блок Gain. HDL Coder не совместно использует блоки Gain ни в одном из этих случаев:

    • Набор параметров ConstMultiplierOptimization к csd или fcsd.

    • Параметр Gain является степенью двойки.

    В обоих этих случаях генератор кода использует операцию броска, чтобы заменить операции множителя на сдвиг и добавить или вычесть операции, который заставляет совместное использование быть неудачным. Кроме того, если параметром Gain является 0 или 1, затем разделение ресурсов не требует никакой дополнительной логики.

  • Задайте StreamingFactor для блоков Gain с векторными вводами или выводами.

  • Задайте SharingFactor для блоков Gain со скалярными вводами или выводами.

  • Определите, выполнить ли разделение ресурсов на существующей тактовой частоте или на более высокой тактовой частоте. Чтобы использовать более высокую тактовую частоту, задайте фактор Сверхдискретизации, больше, чем 1.

  • Используйте те же настройки атрибута синтеза, если вы задаете DSPStyle блокируйте свойство для блоков Gain. HDL Coder не совместно использует множители, которые имеют различные настройки атрибута синтеза.

Разделение ресурсов блоков продукта

ID инструкции

3.1.3

Серьезность

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

Описание

Совместно использовать несколько блоков Product:

  • Задайте 18 как порог разделения Множителя при предназначении для устройств Xilinx® и 25 как порог при предназначении для устройств Intel®. Эта установка создает больше возможностей разделения ресурсов для множителей с широкой битной шириной, которая уменьшает использование DSPS на FPGA.

  • Задайте порог продвижения Множителя, если вы хотите совместно использовать блоки Product, которые имеют различные размеры слова. Порог продвижения множителя является максимальным размером слова, которым HDL Coder продвигает множитель для совместного использования с другими множителями.

  • Уезжайте установка Share Multipliers включила и минимум совместного использования Множителя bitwidth к 0.

  • Задайте StreamingFactor для подсистем, которые содержат блоки Product с векторными вводами или выводами.

  • Задайте SharingFactor для подсистем, которые содержат блоки Product со скалярными вводами или выводами.

  • Используйте блок Gain вместо блока Product, когда одни из входных параметров с блоком Product будут константой. Используйте постоянное значение в качестве параметра Gain блока Gain. Если вы используете типы данных с плавающей точкой в Native Floating Point режим, HDL Coder преобразует блок Product в блок Gain автоматически во время генерации кода. Чтобы узнать больше, смотрите, Упрощают Постоянные Операции и Уменьшают Сложность Проекта в HDL Coder™.

  • Определите, выполнить ли разделение ресурсов на существующей тактовой частоте или на более высокой тактовой частоте. Чтобы использовать более высокую тактовую частоту, задайте фактор Сверхдискретизации, больше, чем 1.

  • Используйте те же настройки атрибута синтеза, если вы задаете DSPStyle блокируйте свойство для блоков Product. HDL Coder не совместно использует множители, которые имеют различные настройки атрибута синтеза.

Разделение ресурсов умножается - добавляют блоки

ID инструкции

3.1.4

Серьезность

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

Описание

Совместно использовать несколько блоков Multiply-Add:

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

Параметры конфигурации Simulink

Связанные примеры

Больше о