В этом примере показано, как анализировать многожильное поведение при выполнении области потока данных в Simulink.
Модель в этом примере использует блоки Цифрового повышающего преобразователя (DUC) и Цифрового понижающего преобразователя (DDC), чтобы создать передатчик Сервиса радио семейства (FRS) и приемник. Блок DUC преобразует комплексный цифровой сгенерированный модулированный сигнал в действительный сигнал полосы пропускания. Блок DDC преобразует оцифрованный действительный сигнал назад в основополосный комплексный сигнал.
Открытый familyRadioServiceMulticoreAnalysisExample
модель.
model_name = 'familyRadioServiceMulticoreAnalysisExample'; open_system(model_name); close_system([model_name '/UpConverted Signal Spectrum Analyzer'], 0); close_system([model_name '/Baseband Spectrum Analyzer'], 0);
В Simulink®, чтобы задать поток данных как область выполнения для подсистемы, используют Property Inspector, чтобы установить Доменный параметр на Dataflow
. Чтобы просмотреть Property Inspector для подсистемы, выберите подсистему, затем выберите View > Property Inspector
. Выберите область выполнения Set, затем нажмите Domain и выберите Dataflow
. Можно также использовать блок Subsystem Потока данных от библиотеки Dataflow DSP System Toolbox, чтобы получить подсистему, которая предварительно сконфигурирована с областью выполнения потока данных.
set_param([model_name,'/Dataflow Subsystem'],'SetDomainSpec','on'); set_param([model_name,'/Dataflow Subsystem'],'DomainSpecType','Dataflow'); set_param([model_name,'/Dataflow Subsystem'],'Latency','0'); set_param([model_name,'/Dataflow Subsystem'],'AutoFrameSizeCalculation','off');
После определения области выполнения потока данных вкладка Multicore открывается на панели инструментов Simulink.
На вкладке Multicore нажмите Cost Estimation. Из списка выберите SIL/PIL Profiling.
Нажмите Profile.
Однажды профильные концы, величина затрат отображается в Редакторе Стоимости. Здесь, среднее время выполнения (стоившее) за каждый блок, отображено в микросекундах. Относительная загрузка каждого блока относительно самого дорогого блока в подсистеме потока данных обозначается с панелями различной длины.
Например, блок DDC является самым дорогим блоком в таблице и имеет стоимость 119905
микросекунды. Нажмите на имя блока в столбце Блока, чтобы подсветить соответствующий блок в блок-схеме.
Нажмите Run Analysis.
После анализа модели открывается Легенда Выделения Потока. Легенда Выделения Потока показывает один поток, потому что зависимость по данным между блоками в модели препятствует тому, чтобы блоки были выполнены одновременно. Предложения Для Увеличения панели Параллелизма, которая появляется в нижней части холста, показывают, как увеличить параллелизм и получить более высокую пропускную способность путем конвейеризации информационно-зависимых блоков.
Подсистема Потока данных задает значение задержки 0
. Предложенной задержкой для системы является 3
.
Проверяйте флажок Accept, чтобы использовать рекомендуемую задержку для Подсистемы Потока данных в последующем анализе. Это значение может также быть введено непосредственно в Property Inspector для параметра Задержки. Simulink показывает значение параметров Задержки с помощью тегов в выходных портах подсистемы потока данных.
Нажмите Run Analysis снова. Легенда Выделения Потока показывает два потока, указывающие, что блоки в подсистеме потока данных могут быть выполнены в двух параллельных потоках.
Чтобы просмотреть вставленные конвейерные задержки, в разделе Review Results панели инструментов, нажимают конвейерные задержки Show.
Вставленные конвейерные задержки показывают в холсте с помощью тегов.
Панель ускорения указывает на максимальное теоретическое ускорение 1.9706
для модели в результате разделения, выполняемого во время анализа.
Чтобы выполнить исследование космоса проекта, можно вручную изменить стоимость блоков. Первые два блока являются относительно более дорогими, чем другие блоки в подсистеме, которая должна значительно влиять, как блоки сопоставлены с потоками. Разделите полную сумму стоимости для первых двух блоков три, затем вручную присвойте тот номер первым трем блокам путем снимания флажков в Автоматическом столбце и редактирования значений в столбце Стоимости.
Нажмите Run Analysis, чтобы повторно выполнить анализ, затем принять обеспеченное предложение задержки. Новый результат показывает, что подсистема теперь разделена в четыре потока с соответствующим теоретическим значением ускорения 2.9621
.