Совместное использование ресурсов подсистем и IP-адресов с плавающей точкой

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

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

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

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

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

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

3.1.6

Серьезность

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

Описание

HDL Coder делится MATLAB Function блоками, которые имеют:

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

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

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

  • Постоянные переменные

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

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

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

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

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

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 (conj, hermitian, транспонирование)

  • 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 (conj, hermitian, транспонирование)

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

  • Sqrt

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

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

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

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

  • Блоки Communications Toolbox

  • Блоки DSP System Toolbox, кроме дискретного конечная импульсная характеристика

  • Блоки Stateflow

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

Совместное использование ресурсов IP-адресов с плавающей точкой

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

3.1.8

Серьезность

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

Описание

Чтобы поделиться несколькими:

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

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

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

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

См. также

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

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

Подробнее о