Разделение ресурсов подсистем и дюйм/с с плавающей точкой

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

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

Общие факторы для совместного использования подсистем

ID инструкции

3.1.5

Серьезность

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

Описание

Чтобы совместно использовать ресурсы для идентичных подсистем, такой, группируя Product, Add и блоки Delay, чтобы сопоставить с одним срезом DSP, подсистемы, которые будут совместно использованы, должны быть блоками Atomic Subsystem, блоками Virtual Subsystem или блоками MATLAB Function.

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

  • Совместное использование активированных подсистем не поддерживается. Для совместного использования ресурсов используйте атомарные или виртуальные подсистемы без, включают семантику.

  • Задайте SharingFactor, который больше или равен количеству подсистем, которые вы хотите совместно использовать.

    Например, если у вас есть 10 подсистемы, и вы устанавливаете SharingFactor на 5, HDL Coder не может реализовать разделение ресурсов к 2 экземпляры подсистемы. Чтобы совместно использовать подсистемы, разделите подсистемы, и затем совместно используйте экземпляры меньших подсистем.

  • Проверяйте SharingFactor, который вы задаете для различных подсистем. Оптимизация разделения ресурсов разгоняет совместно используемые ресурсы LCM (Наименьшее общее кратное) SharingFactor различных подсистем.

    Например, если вы задаете SharingFactor 5 для одного Subsystem и SharingFactor 7 для другого Subsystem оптимизация разделения ресурсов разгоняет совместно используемые ресурсы 35. В таких случаях рекомендуется, чтобы вы использовали тот же SharingFactor для обеих подсистем, таких как 5 или 7. Чтобы узнать больше об этом вычислении, смотрите Как работы Разделения ресурсов.

Используйте архитектуру MATLAB Datapath для совместного использования с блоками MATLAB function

ID инструкции

3.1.6

Серьезность

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

Описание

HDL Coder совместно использует блоки MATLAB Function, которые имеют:

  • Та же контрольная сумма Simulink®. Использование Simulink.Subsystem.getChecksum определить контрольную сумму.

  • Те же свойства блока HDL.

Убедитесь, что блоки не используют:

  • Персистентные переменные

  • Потоковая передача цикла

  • Выведите конвейеризацию

При помощи MATLAB Datapath архитектура, можно совместно использовать ресурсы в блоке MATLAB Function и через блок MATLAB Function с другими блоками в модели Simulink. Когда вы используете эту архитектуру, генератор кода обрабатывает блок MATLAB Function как регулярный блок Subsystem. Эта возможность позволяет вам более широко применить различную скорость и оптимизацию области с блоками MATLAB Function. Смотрите Оптимизацию HDL Через Контур блока MATLAB function Используя Архитектуру MATLAB Datapath.

Совместное использование подсистем

ID инструкции

3.1.7

Серьезность

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

Описание

HDL Coder может совместно использовать блоки Subsystem, которые имеют ту же контрольную сумму Simulink и те же свойства блока HDL.

Чтобы совместно использовать блоки Subsystem, элементы состояния, которые могут содержать блоки:

  • Delay

  • Unit Delay

  • Unit Delay Enabled Synchronous

  • Unit Delay Resettable Synchronous

  • Unit Delay Enabled Resettable Synchronous

Элементы состояния должны иметь набор параметров Initial condition к 0.

Совместное использование подсистем в активированных подсистемах с синхронной семантикой не поддерживается. Чтобы совместно использовать ресурсы, используйте включенные подсистемы с классической семантикой.

Вы не можете совместно использовать подсистемы, которые содержат следующие блоки или реализации блока:

  • Detect Change

  • Discrete Transfer Fcn

  • HDL FFT

  • HDL FIFO

  • Math Function (союз, эрмитов, транспонируют),

  • Блоки MATLAB Function, которые содержат персистентные переменные

  • Sqrt

  • Каскадная архитектура (MinMax, продукт, Сумма)

  • Архитектура CORDIC

  • Взаимная архитектура Ньютона

  • Отфильтруйте блоки включая Дискретный КИХ-Фильтр

  • Блоки Communications Toolbox™

  • Блоки DSP System Toolbox™, кроме Дискретного КИХ-Фильтра

  • Блоки Stateflow®

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

HDL Coder может совместно использовать блоки Subsystem, которые имеют ту же контрольную сумму Simulink и те же свойства блока HDL.

Если вы хотите совместно использовать блоки Subsystem, элементы состояния, которые могут содержать блоки:

  • Delay

  • Unit Delay

  • Unit Delay Enabled Synchronous

  • Unit Delay Resettable Synchronous

  • Unit Delay Enabled Resettable Synchronous

Элементы состояния должны иметь набор параметров Initial condition к 0.

Вы не можете совместно использовать подсистемы, которые содержат следующие блоки или реализации блока:

  • Detect Change

  • Discrete Transfer Fcn

  • HDL FFT

  • HDL FIFO

  • Math Function (союз, эрмитов, транспонируют),

  • Блоки MATLAB Function, которые содержат персистентные переменные

  • Sqrt

  • Каскадная архитектура (MinMax, продукт, Сумма)

  • Архитектура CORDIC

  • Взаимная архитектура Ньютона

  • Отфильтруйте блоки включая Дискретный КИХ-Фильтр

  • Блоки Communications Toolbox

  • Блоки DSP System Toolbox, кроме Дискретного КИХ-Фильтра

  • Блоки Stateflow

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

Разделение ресурсов дюйм/с с плавающей точкой

ID инструкции

3.1.8

Серьезность

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

Описание

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

  • Сумматоры с плавающей точкой, набор ShareAdders к на.

  • Множители с плавающей точкой, убедитесь ShareMultipliers установлен в на.

  • Другие ресурсы с плавающей точкой, набор ShareFloatingPointIP к на.

См. также Моделирование с Нативной Плавающей точкой.

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

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

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

Больше о