Разделение ресурсов является оптимизацией области, в которой HDL Coder™ идентифицирует несколько функционально эквивалентных ресурсов и заменяет их на один ресурс. Данные мультиплексируются временем по совместно используемому ресурсу, чтобы выполнить те же операции. Чтобы узнать больше, как разделение ресурсов работает, смотрите Разделение ресурсов.
Можно следовать этим инструкциям, чтобы изучить, как использовать оптимизацию разделения ресурсов эффективно с блоками теми, которые Добавляют и продукт. Каждая инструкция имеет уровень серьезности, который указывает на уровень требований соответствия. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.
3.1.1
Рекомендуемый
Чтобы совместно использовать несколько Добавляют блоки:
Выберите установку Share Adders.
Оставьте минимум совместного использования Сумматора bitwidth 0
.
Определите, выполнить ли разделение ресурсов на существующей тактовой частоте или на более высокой тактовой частоте. Чтобы использовать более высокую тактовую частоту, задайте фактор Сверхдискретизации, больше, чем 1
.
Укажите, что StreamingFactor для Добавляют блоки с векторными вводами или выводами.
Укажите, что SharingFactor для Добавляют блоки со скалярными вводами или выводами.
3.1.2
Рекомендуемый
Когда вы совместно используете несколько блоков Усиления в своем проекте, оптимизация вставляет логику сериализации и десериализации, чтобы совместно использовать ресурсы. Эта дополнительная логика может стать областью наверху, если вы не совместно используете большое количество ресурсов. Поэтому, если ваш проект не содержит большое количество блоков Усиления, чтобы совместно использовать, рекомендуется, чтобы вы отключили оптимизацию разделения ресурсов. Совместно использовать несколько блоков Усиления:
Совместно использовать несколько блоков Усиления:
Определите, как реализовать блок Gain. HDL Coder не совместно использует блоки Усиления ни в одном из этих случаев:
Набор параметра ConstMultiplierOptimization к csd
или fcsd
.
Параметр Gain является степенью двойки.
В обоих этих случаях генератор кода использует операцию броска, чтобы заменить операции множителя на сдвиг и добавить или вычесть операции, который заставляет совместное использование быть неудачным. Кроме того, если параметром Gain является 0
или 1
, то разделение ресурсов не требует никакой дополнительной логики.
Задайте StreamingFactor для блоков Усиления с векторными вводами или выводами.
Задайте SharingFactor для блоков Усиления со скалярными вводами или выводами.
Определите, выполнить ли разделение ресурсов на существующей тактовой частоте или на более высокой тактовой частоте. Чтобы использовать более высокую тактовую частоту, задайте фактор Сверхдискретизации, больше, чем 1
.
Используйте те же настройки атрибута синтеза, если вы задаете свойство блока DSPStyle
для блоков Усиления. HDL Coder не совместно использует множители, которые имеют различные настройки атрибута синтеза.
3.1.3
Рекомендуемый
Совместно использовать несколько блоков продукта:
Задайте 18
как порог разделения Множителя при предназначении для устройств Xilinx® и 25
как порог при предназначении для устройств Intel®. Эта установка создает больше возможностей разделения ресурсов для множителей с широкой битной шириной, которая уменьшает использование DSPS на FPGA.
Задайте порог продвижения Множителя, если вы хотите совместно использовать блоки продукта, которые имеют различные размеры слова. Порог продвижения множителя является максимальным размером слова, которым HDL Coder продвигает множитель для совместного использования с другими множителями.
Уезжайте установка Share Multipliers включила и минимум совместного использования Множителя bitwidth к 0
.
Задайте StreamingFactor для подсистем, которые содержат блоки продукта с векторными вводами или выводами.
Задайте SharingFactor для подсистем, которые содержат блоки продукта со скалярными вводами или выводами.
Используйте блок Gain вместо блока продукта, когда одни из входных параметров к блоку продукта будут константой. Используйте постоянное значение в качестве параметра Gain блока Gain. Если вы используете типы данных с плавающей точкой в режиме Native Floating Point
, HDL Coder преобразовывает блок продукта в блок Gain автоматически во время генерации кода. Чтобы узнать больше, смотрите, Упрощают Постоянные Операции и Уменьшают Сложность Проекта в HDL Coder.
Определите, выполнить ли разделение ресурсов на существующей тактовой частоте или на более высокой тактовой частоте. Чтобы использовать более высокую тактовую частоту, задайте фактор Сверхдискретизации, больше, чем 1
.
Используйте те же настройки атрибута синтеза, если вы задаете свойство блока DSPStyle
для блоков продукта. HDL Coder не совместно использует множители, которые имеют различные настройки атрибута синтеза.
3.1.4
Рекомендуемый
Чтобы совместно использовать несколько Умножаются - Добавляют блоки:
Уезжайте Доля Умножаются - Добавляют, что установка блоков включила и минимум совместного использования блока Multiply - Add bitwidth набор к 0
.
Определите, выполнить ли разделение ресурсов на существующей тактовой частоте или на более высокой тактовой частоте. Чтобы использовать более высокую тактовую частоту, задайте фактор Сверхдискретизации, больше, чем 1
.
Задайте SharingFactor.