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

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

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

Совместное использование ресурсов Add Blocks

Идентификатор руководства

3.1.1

Серьезность

Рекомендуется

Описание

Для совместного использования нескольких блоков Add:

  • Выберите параметр «Совместное использование добавок».

  • Оставьте минимальную битовую ширину Adder sharing для 0.

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

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

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

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

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

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

Идентификатор руководства

3.1.2

Серьезность

Рекомендуется

Описание

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

Для совместного использования нескольких блоков Gain:

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

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

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

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

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

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

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

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

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

Идентификатор руководства

3.1.3

Серьезность

Рекомендуется

Описание

Для совместного использования нескольких блоков Product:

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

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

  • Оставьте включенным параметр Share Multipliers и параметр Multiplier sharing minimum bitwidth 0.

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

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

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

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

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

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

Идентификатор руководства

3.1.4

Серьезность

Рекомендуется

Описание

Для совместного использования нескольких блоков Multiply-Add:

См. также

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

Похожие примеры

Подробнее о