exponenta event banner

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

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

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

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

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

3.1.5

Серьезность

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

Описание

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

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

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

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

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

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

    Например, если указан SharingFactor из 5 для одной подсистемы и SharingFactor, 7 для другой подсистемы оптимизация совместного использования ресурсов приводит к перегрузке общих ресурсов на 35. В таких случаях рекомендуется использовать один и тот же SharingFactor для обеих подсистем, например, 5 или 7. Дополнительные сведения об этом расчете см. в разделе Принципы совместного использования ресурсов.

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

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

3.1.6

Серьезность

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

Описание

Кодер HDL совместно использует функциональные блоки MATLAB, которые имеют:

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

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

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

  • Конвейерная обработка выходных данных

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

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

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

3.1.7

Серьезность

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

Описание

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

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

  • Задержка

  • Единичная задержка

  • Единичная задержка включена синхронно

  • Единичная задержка, сбрасываемая синхронно

  • Единичная задержка Включена Сбрасываемая Синхронная

Для элементов состояния параметр Initial condition должен иметь значение 0.

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

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

  • Обнаружить изменения

  • Дискретный перенос Fcn

  • БПФ ЛПВП

  • HDL FIFO

  • Математическая Функция (союз, эрмитов, перемещают),

  • Функциональные блоки MATLAB, содержащие постоянные переменные

  • Sqrt

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

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

  • Обратная архитектура Ньютона

  • Блоки фильтров, включая дискретный фильтр FIR

  • Блоки Toolbox™ связи

  • Блоки Toolbox™ системы DSP, за исключением дискретного фильтра FIR

  • Блоки Stateflow ®

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

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

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

  • Задержка

  • Единичная задержка

  • Единичная задержка включена синхронно

  • Единичная задержка, сбрасываемая синхронно

  • Единичная задержка Включена Сбрасываемая Синхронная

Для элементов состояния параметр Initial condition должен иметь значение 0.

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

  • Обнаружить изменения

  • Дискретный перенос Fcn

  • БПФ ЛПВП

  • HDL FIFO

  • Математическая Функция (союз, эрмитов, перемещают),

  • Функциональные блоки MATLAB, содержащие постоянные переменные

  • Sqrt

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

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

  • Обратная архитектура Ньютона

  • Блоки фильтров, включая дискретный фильтр FIR

  • Блоки коммуникационного инструментария

  • Блоки панели системных инструментов DSP, за исключением дискретного фильтра FIR

  • Блоки потока состояния

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

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

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

3.1.8

Серьезность

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

Описание

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

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

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

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

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

См. также

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

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

Подробнее