Определенный Simulink® объекты могут получить любой тип покрытия модели. Другие объекты Simulink могут получать только определенные типы покрытия, как показано в следующей таблице. Щелкните ссылку в первом столбце, чтобы получить более подробную информацию о покрытии для конкретных объектов модели.
Все объекты Simulink могут получить покрытие выполнение, кроме блоков, которые не инструментализированы в покрытии модели:
Слияние блоков
Блоки Scope
Блоки вывода
Блоки Inport
Блоки ширины
Отображать блоки
Для Stateflow® состояния, события и временные логические решения состояния, покрытие модели обеспечивает Decision Coverage. Для переходов Stateflow покрытие модели обеспечивает решение, условие и покрытие MCDC. Покрытие модели обеспечивает условие и покрытие MCDC для логических выражений в операторах назначения в состояниях и переходах. Для получения дополнительной информации см. «Покрытие модели для диаграмм Stateflow».
Объект модели | Решение | Состояние | MCDC | Интерполяционная таблица | Simulink Design Verifier™ | Насыщение при целочисленном переполнении | Реляционный контур |
---|---|---|---|---|---|---|---|
Интегратор в дискретном времени (когда пределы насыщения включены или сброшены) | |||||||
Вектор индекса | |||||||
Смотрите также Триггерные модели. | |||||||
(Относительно скоростей нарастания) | |||||||
Блок Abs получает Decision Coverage. Decision Coverage основан на:
Вход в блок меньше нуля.
Тип данных входного сигнала.
Для того, чтобы вход в блок был меньше нуля, Decision Coverage измеряет:
Количество временных шагов, которые вход блока меньше нуля, что указывает на истинное решение.
Количество временных шагов, которое вход блока не меньше нуля, что указывает на ложное решение.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Abs получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Если тип входных данных для блока Abs uint8
, uint16
, или uint32
программное обеспечение Simulink Coverage™ сообщает об отсутствии покрытия для блока. Программа устанавливает выход блока равным входу блока, не принимая решения. Если тип входных данных в Abs блок является логическим, возникает ошибка.
Блок Abs содержит неявное сравнение входа с нулем. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Abs блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Bias получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Блок Комбинаторная Логика получает покрытие принятия решений и условий. Decision Coverage основан на достижении каждой выходной строки таблицы истинности. В Decision Coverage измеряется количество временных шагов, в течение которых каждая выходная строка таблицы истинности устанавливается на выход блока.
Покрытие условия измеряет количество временных шагов, когда каждый вход ложен (равен нулю), и количество раз, когда каждый вход верен (не равен нулю). Если комбинаторная логика имеет один входной элемент, программное обеспечение Simulink Coverage сообщает только о Decision Coverage, потому что покрытие решением и условием эквивалентны.
Если все значения таблицы истинности заданы в выход блока по крайней мере для одного временного шага, Decision Coverage составляет 100%. В противном случае программа сообщает о покрытии как о количестве значений таблицы истинности, выводимых в течение, по крайней мере, одного временного шага, разделенного на общее количество значений таблицы истинности. Поскольку этот блок всегда имеет по крайней мере одно значение в таблице истинности в качестве вывода, минимальный сообщаемый охват разделен на общее количество значений таблицы истинности.
Если все входы блока ложны по меньшей мере для одного временного шага и true по меньшей мере для одного временного шага, охват условием равен 100%. В противном случае программное обеспечение сообщает о покрытии как достижении ложного значения на каждом входе в течение, по меньшей мере, одного временного шага плюс достижение истинного значения для, по меньшей мере, одного временного шага, разделенного на два, повышенные до степени общего числа входов (т.е. 2 ^ number_of_inputs). Минимальным сообщаемым охватом является общее количество входов, разделенных на два, повышенных до степени общего количества входов.
Блок Compare to Constant получает покрытие условия.
Показатели покрытия условия:
количество раз, когда сравнение между входом и заданной константой было верным.
количество раз, когда сравнение между входом и заданной константой было ложным.
Блок Compare to Constant содержит сравнение входов с константой. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Compare to Constant блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Блок Compare to Zero получает покрытие условия.
Показатели покрытия условия:
количество раз, когда сравнение между входом и нулем было верным.
количество раз, когда сравнение между входом и нулем было ложным.
Блок Compare to Zero содержит сравнение входов с нулем. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Compare to Zero блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Data Type Conversion получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Блок Dead Zone получает Decision Coverage. Программное обеспечение Simulink Coverage сообщает о Decision Coverage для этих параметров:
Start of dead zone
End of dead zone
Параметр Start of dead zone задает нижний предел мертвой зоны. Для параметра Start of dead zone меры Decision Coverage:
Количество временных шагов, которые вход блока больше или равен нижнему пределу, что указывает на истинное решение.
Количество временных шагов, которое блок вводит, меньше нижнего предела, что указывает на ложное решение.
Параметр End of dead zone задает верхний предел мертвой зоны. Для End of dead zone меры по Decision Coverage:
Количество временных шагов, которое блок вводит, больше верхнего предела, что указывает на истинное решение.
Количество временных шагов, которые вход блока меньше или равен верхнему пределу, что указывает на ложное решение.
Когда верхний предел равен true, программное обеспечение не измеряет Start of dead zone покрытие для того временного шага. Поэтому общее количество Start of dead zone решений равняется количеству временных шагов, которые End of dead zone является ложным.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Dead Zone получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Блок Dead Zone содержит неявное сравнение входного параметра с верхним и нижним предельным значением. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Dead Zone блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Блок Direct Lookup Table (n-D) получает покрытие интерполяционных таблиц. Для n -мерной интерполяционной таблицы количество выходных точек пропуска является продуктом всего количества точек пропуска для каждой размерности таблицы.
Покрытия интерполяционных таблиц:
Количество раз во время симуляции, что каждая комбинация размерности входных значений находится между каждой из пропуска точек.
Количество раз во время симуляции, когда каждая комбинация размерных входных значений ниже самой низкой точки пропуска и выше самой высокой точки пропуска для каждой размерности таблицы.
Общее количество точек покрытия для n -мерной интерполяционной таблицы является продуктом количества пропусков в каждой размерности таблицы плюс один. В отчете о покрытии увеличивающаяся цветовая шкала от белого до зеленого, с шестью равномерно расположенными областями значений данных, начинающимися с нуля, указывает количество временных шагов, которые программное обеспечение измеряет каждую точку интерполяции или экстраполяции.
Программа определяет процент общего покрытия путем измерения общих точек интерполяции и экстраполяции, которые достигают измерения, по меньшей мере, одного временного шага во время симуляции между точками пропуска или за пределами конечных точек.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Discrete Filter получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Discrete FIR Filter получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Блок Интегратор Дискретного Времени получает Decision Coverage. Программное обеспечение Simulink Coverage сообщает о Decision Coverage для этих параметров:
External reset
Limit output
Если вы задаете External reset none
программное обеспечение Simulink Coverage не сообщает о Decision Coverage для решения о сбросе. В противном случае Decision Coverage предусматривает следующие меры:
Количество временных шагов, на которые выводится блок, сбрасывается, что указывает на истинное решение.
Количество временных шагов, которое блок выводит не сбрасывается, что указывает на ложное решение.
Если вы не выбираете Limit output, программное обеспечение не сообщает о Decision Coverage для этого решения. В противном случае программное обеспечение сообщает о Decision Coverage для Lower saturation limit и Upper saturation limit.
Для Upper saturation limit меры по Decision Coverage:
Количество временных шагов, в которых результат интегрирования больше или равен верхнему пределу, что указывает на истинное решение.
Количество временных шагов, когда результат интегрирования меньше верхнего предела, что указывает на ложное решение.
Для Lower saturation limit, меры по Decision Coverage
Количество временных шагов, в которых результат интегрирования меньше или равен нижнему пределу, что указывает на истинное решение.
Количество временных шагов, когда результат интегрирования больше нижнего предела, что указывает на ложное решение.
Для временного шага, когда верхний предел равен true, программное обеспечение не измеряет Lower saturation limit покрытие. Поэтому общее количество решений нижнего предела равняется количеству временных шагов, когда верхний предел ложен.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Discrete-Time Integrator получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Discrete Transfer Fcn получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Dot Product получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Блок Enabled Subsystem получает решение, условие и покрытие MCDC.
Меры по Decision Coverage:
Количество временных шагов, в течение которых блок включен, что указывает на истинное решение.
Количество временных шагов, в течение которых блок отключен, что указывает на ложное решение.
Если по крайней мере один временной шаг верен, и по меньшей мере один временной шаг ложен, Decision Coverage равен 100%. Если никакие временные шаги не имеют значения true, или если никакие временные шаги не являются ложными, Decision Coverage составляет 50%.
Программное обеспечение Simulink Coverage измеряет покрытие условия для входа enable только, если вход enable является вектором. Для входа enable, охват условием измеряет количество временных шагов, причем каждый элемент входа enable равен true, и количество временных шагов каждый элемент входа enable равен false. Программное обеспечение сообщает о покрытии условием, основанном на общем количестве возможных условий и сколько верно для, по меньшей мере, одного временного шага и сколько ложно для, по меньшей мере, одного временного шага.
Программное обеспечение измеряет покрытие MCDC для входа активации, только если вход активации является вектором. Потому что активация подсистемы является OR
из векторных входов охват MCDC составляет 100%, если в течение, по меньшей мере, одного временного шага каждый вход включения вектора является исключительно верным, и если, по меньшей мере, в течение одного временного шага, все входы включения вектора являются ложными. Для измерения покрытия MCDC, программное обеспечение рассматривает каждый элемент вектора как отдельное условие.
Блок Enabled и Triggered подсистема получает решение, условие и покрытие MCDC. Меры по Decision Coverage:
Количество временных шагов, в течение которых триггерное ребро происходит, когда блок включен, что указывает на истинное решение.
Количество временных шагов, когда ребро триггера не происходит, когда блок включен, или блок отключен, что указывает на ложное решение.
Если по крайней мере один временной шаг верен, и по меньшей мере один временной шаг ложен, Decision Coverage равен 100%. Если никакие временные шаги не имеют значения true, или если никакие временные шаги не являются ложными, Decision Coverage составляет 50%.
Программное обеспечение измеряет покрытие условия для входа включения и для входа триггера отдельно:
Для входа enable, покрытие условия измеряет количество временных шагов, вход enable равен true, и количество временных шагов, вход enable равен false.
Для входа триггера покрытие условия измеряет количество временных шагов, на которых происходит ребро триггера, указывая на true, и количество временных шагов, на которых ребро триггера не происходит, указывая на ложность.
Программное обеспечение сообщает о покрытии условия на основе общего количества возможных условий и того, сколько условий верно для, по меньшей мере, одного временного шага и сколько ложно для, по меньшей мере, одного временного шага. Программа рассматривает каждый элемент массива вектора как отдельное измерение покрытия условия.
Программное обеспечение измеряет покрытие MCDC для входа включения и для входа триггера в комбинации. Потому что вход включения подсистемы является AND
из этих двух входов охват MCDC составляет 100%, если происходят все из следующих:
В течение, по меньшей мере, одного временного шага оба входов равны true.
В течение по меньшей мере одного временного шага вход включения равен true, и ребро триггера равно false.
В течение одного временного шага вход включения равен false, а ребро триггера равно true.
Программа обрабатывает каждый векторный элемент как отдельное измерение покрытия MCDC. Он измеряет каждый элемент ребра триггера относительно каждого входного элемента включения. Однако, если количество элементов и триггера, и входов включения превышает 12, программное обеспечение не сообщает о покрытии MCDC.
Блок Fcn получает условие и покрытие MCDC. Программное обеспечение Simulink Coverage сообщает о условии или покрытии MCDC для блоков Fcn, только если оператор верхнего уровня является логическим (&&
, ||
, или !
).
Покрытие условия основано на входных значениях или арифметических выражениях, которые являются входами для логических операторов в блоке. Показатели покрытия условия:
Количество временных шагов, которые каждый вход для логического оператора, равен true (не равен нулю).
Количество временных шагов, которые каждый вход для логического оператора является ложным (равным нулю).
Если все входы логического оператора являются ложными по крайней мере для одного временного шага и true по крайней мере для одного временного шага, охват условием равен 100%. В противном случае программное обеспечение сообщает о покрытии условия на основе общего количества возможных условий и того, сколько из них верно для, по меньшей мере, одного временного шага и сколько ложно для, по меньшей мере, одного временного шага.
Программа измеряет покрытие MCDC для булевых выражений в блоке Fcn. Если в течение по меньшей мере одного временного шага каждое условие независимо устанавливает выход выражения равным true, и если в течение по меньшей мере одного временного шага каждое условие независимо устанавливает выход выражения равным false, охват MCDC равен 100%. В противном случае программное обеспечение сообщает о покрытии MCDC на основе общего количества возможных условий и того, сколько раз каждое условие независимо устанавливает выход равным true в течение, по меньшей мере, одного временного шага и сколько условий независимо устанавливает выход равным false в течение, по меньшей мере, одного временного шага.
Если блок Fcn содержит реляционную операцию и вы выбираете Relational Boundary метрику покрытия, блок Fcn получает реляционный граничный охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Блок For Iterator и Подсистема For Iterator получают Decision Coverage. Программное обеспечение Simulink Coverage измеряет Decision Coverage для значения условия цикла, которое определяется одним из следующих:
Значение итерации на пределе итерации или ниже, обозначенное как true.
Значение итерации выше предела итерации, обозначенное как false.
Программа сообщает общее количество раз, которое каждое условие цикла оценивает как true и false. Если условие цикла оценивается как true по крайней мере один раз и false по крайней мере один раз, Decision Coverage составляет 100%. Если никакие условия цикла не имеют значения true, или если никакие условия не являются ложными, Decision Coverage составляет 50%.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Gain получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Блок If, который заставляет Подсистему Действий If выполнять, получает условие, решение и покрытие MCDC:
Программное обеспечение измеряет Decision Coverage для if
условие и все elseif
условия, заданные в блоке If.
Если на if
условие или любое из elseif
условия содержат логическое выражение с несколькими состояниями, такими как u1 & u2 & u3
, программное обеспечение также измеряет состояние и покрытие MCDC для каждого условия в выражении, u1
, u2
, и u3
в предыдущем примере.
Программное обеспечение не измеряет непосредственно else
состояние. Когда нет elseif
условия, else
условие является прямым дополнением if
условие, или else
условие является прямым дополнением последнего elseif
состояние.
Программа сообщает общее количество временных шагов, которые каждый if
и elseif
условие определяется как true и как false. Если на if
или elseif
условие оценивается до значения true по крайней мере один раз и оценивает до значения false по крайней мере один раз, Decision Coverage равен 100%. Если нет if
или elseif
условия true, или если нет if
или elseif
условия ложны, Decision Coverage составляет 50%. Если предыдущий if
или elseif
условие никогда не оценивает как ложное, elseif
условие может иметь 0% Decision Coverage.
Блок If содержит сравнение между его входами. Поэтому, если вы выбираете Relational Boundary метрику покрытия, If блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Блок Index Vector получает Decision Coverage на основе передачи каждого элемента сигнала вектора входа на выход блока.
Если каждый векторный индекс передается в выход блока в течение, по меньшей мере, одного временного шага, Decision Coverage составляет 100%. В противном случае Simulink Coverage сообщает о покрытии как процентном отношении от общего количества индексов вектора в входном сигнале, который прошел к выходу.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Index Vector получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению».
Блок Interpolation Using Prelookup получает покрытие интерполяционных таблиц. Для интерполяционной таблицы n -D количество выходных точек пропуска равняется продукту всего количества пропусков для каждой размерности таблицы. Эти покрытия интерполяционных таблиц меры:
Количество раз во время симуляции, что каждая комбинация размерности входных значений находится между каждой из пропуска точек.
Количество раз во время симуляции, когда каждая комбинация размерных входных значений ниже самой низкой точки пропуска и выше самой высокой точки пропуска для каждой размерности таблицы.
Общее количество точек покрытия для n -мерной интерполяционной таблицы является продуктом количества пропусков в каждой размерности таблицы плюс один. В отчете о покрытии увеличивающаяся цветовая шкала от белого до зеленого, с шестью равномерно расположенными областями значений данных, начинающимися с нуля, указывает количество временных шагов, которые программное обеспечение измеряет каждую точку интерполяции или экстраполяции.
Программа определяет процент общего покрытия путем измерения общих точек интерполяции и экстраполяции, которые достигают измерения, по меньшей мере, одного временного шага во время симуляции между точками пропуска или за пределами конечных точек.
Если вы выбираете Saturate on integer overflow, блок Interpolation Using Prelookup получает насыщение при целочисленном переполнении. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блоки Simulink и диаграммы Stateflow, которые связаны с объектами библиотеки, получают тот же охват, что и если бы они не были связаны с объектами библиотеки. Программа Simulink Coverage записывает покрытие индивидуально для каждого объекта библиотеки в модели. Если ваша модель содержит несколько образцы одного и того же объекта библиотеки, каждый образец получает свои собственные данные о покрытии.
Блок Логический Оператор получает условие и покрытие MCDC. Программное обеспечение Simulink Coverage измеряет покрытие условий для каждого входа в блок. Показатели покрытия условия:
Количество временных шагов, которые каждый вход равен true (не равен нулю).
Количество временных шагов, которые каждый вход ложен (равен нулю).
Если все входы блока являются ложными по меньшей мере для одного временного шага и true по меньшей мере для одного временного шага, охват условием программного обеспечения составляет 100%. В противном случае программное обеспечение сообщает о покрытии условия на основе общего количества возможных условий и того, сколько из них верно, по меньшей мере, один временной шаг и сколько ложно, по меньшей мере, один временной шаг.
Программное обеспечение измеряет покрытие MCDC для всех входов в блок. Если в течение, по меньшей мере, одного временного шага каждое условие независимо устанавливает выход блока равным true, и если в течение, по меньшей мере, одного временного шага каждое условие независимо устанавливает выход блока равным false, охват MCDC равен 100%. В противном случае программное обеспечение сообщает о покрытии MCDC на основе общего количества возможных условий и того, сколько раз каждый из них независимо устанавливает выход равным true для, по меньшей мере, одного временного шага и сколько независимо устанавливает выход на false для, по меньшей мере, одного временного шага.
Блок 1-D Lookup Table получает покрытие интерполяционных таблиц; для одномерной интерполяционной таблицы количество входа и выхода точек пропуска равно. Покрытия интерполяционных таблиц:
Количество раз во время симуляции, когда входное и выходное значения находятся между каждой из точек пропуска.
Количество раз во время симуляции, когда входное и выходное значения ниже самой низкой точки пропуска и выше самой высокой точки пропуска.
Общее количество точек покрытия для одномерной интерполяционной таблицы - это количество пропусков в таблице плюс единица. В отчете о покрытии увеличивающаяся цветовая шкала от белого до зеленого, с шестью равномерно расположенными областями значений данных, начинающимися с нуля, указывает количество временных шагов, которые программное обеспечение измеряет каждую точку интерполяции или экстраполяции.
Программа определяет процент общего покрытия путем измерения общих точек интерполяции и экстраполяции, которые достигают измерения, по меньшей мере, одного временного шага во время симуляции между точками пропуска или за пределами конечных точек.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок 1-D Lookup Table получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок 2-D Lookup Table получает покрытие интерполяционных таблиц. Для двумерной интерполяционной таблицы количество выходных точек пропуска равняется количеству точек пропуска строк, умноженному на количество входов столбца. Покрытия интерполяционных таблиц:
Количество раз во время симуляции, когда каждая комбинация входных значений строк и входных значений столбцов находится между каждой из точек пропуска.
Количество раз во время симуляции, когда каждая комбинация входных значений строк и входных значений столбцов ниже самой низкой точки пропуска и выше самой высокой точки пропуска для каждой строки и столбца.
Общее количество точек покрытия для двумерной интерполяционной таблицы - это количество точек пропуска строк в таблице плюс один, умноженное на количество точек пропуска столбцов в таблице плюс один. В отчете о покрытии увеличивающаяся цветовая шкала от белого до зеленого, с шестью равномерно расположенными областями значений данных, начинающимися с нуля, указывает количество временных шагов, которые программное обеспечение измеряет каждую точку интерполяции или экстраполяции.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок 2-D Lookup Table получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок n-D Lookup Table получает покрытие интерполяционных таблиц. Для n -мерной интерполяционной таблицы количество выходных точек пропуска равняется продукту всего количества пропусков для каждой размерности таблицы. Покрытия интерполяционных таблиц:
Количество раз во время симуляции, что каждая комбинация размерности входных значений находится между каждой из пропуска точек.
Количество раз во время симуляции, когда каждая комбинация выходных значений размерности ниже самой низкой точки пропуска и выше самой высокой точки пропуска для каждой размерности таблицы.
Общее количество точек покрытия для n -мерной интерполяционной таблицы является продуктом количества пропусков в каждой размерности таблицы плюс один. В отчете о покрытии увеличивающаяся цветовая шкала от белого до зеленого, с шестью равномерно расположенными областями значений данных, начинающимися с нуля, указывает количество временных шагов, которые программное обеспечение измеряет каждую точку интерполяции или экстраполяции.
Программа определяет процент общего покрытия путем измерения общих точек интерполяции и экстраполяции, которые достигают измерения, по меньшей мере, одного временного шага во время симуляции между точками пропуска или за пределами конечных точек.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок n-D Lookup Table получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Math Function получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Для получения информации о типах покрытия, которые программное обеспечение Simulink Coverage сообщает для блока MATLAB Function, смотрите Покрытие модели для функций MATLAB.
Simulink Coverage записывает только покрытие Decision, условие и MCDC для блоков MATLAB System.
Блок MinMax получает Decision Coverage на основе передачи каждого входа на выход блока.
Для Decision Coverage, основанного на передаче каждого входа в выход блока, покрытие измеряет количество временных шагов, которые симуляция передаёт каждый вход в выход блока. Количество точек принятия решений основано на количестве входов в блок и являются ли они скаляром, вектором или матрицей.
Если все входы передаются в выход блока по крайней мере в течение одного временного шага, программное обеспечение Simulink Coverage сообщает о Decision Coverage как 100%. В противном случае программное обеспечение сообщает о покрытии как о количестве входов, переданных на выход в течение, по меньшей мере, одного временного шага, разделенного на общее количество входов.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок MinMax получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Model не получает покрытие непосредственно; модель, на которую ссылается блок, получает покрытие. Если для режима симуляции для ссылочной модели задано значение Normal
программное обеспечение Simulink Coverage сообщает о покрытии для всех объектов в модели-ссылке, которые получают покрытие.. Если для режима симуляции для ссылочной модели задано значение SIL
или PIL
и у вас есть Embedded Coder® установленный, программное обеспечение Simulink Coverage сообщает о покрытии для кода, сгенерированного из вашей модели. Если режим симуляции установлен на значение, отличное от Normal
, SIL
, или PIL
программное обеспечение не может измерить покрытие для ссылочной модели.
На панели Coverage диалогового окна Параметры конфигурации выберите ссылку на модели, для которой необходимо сообщить о покрытии. Программа генерирует отчет о покрытии для каждой выбранной модели.
Если ваша модель содержит несколько образцы одной и той же модели-ссылки, программное обеспечение записывает покрытие для всех образцов этой модели, где режим симуляции блока Model установлен в Normal
. Отчет о покрытии для этой модели-ссылки объединяет данные о покрытии для всех образцов Режим normal mode этой модели.
Отчеты о покрытии для всех проанализированных моделей в иерархии модели-ссылки связаны из сводного отчета.
Примечание
Для получения дополнительной информации о том, как выбрать ссылку на модели для отчета о покрытии, смотрите Ссылку на Модели.
Блок Multiport Switch получает Decision Coverage на основе передачи каждого входа, исключая первый вход управления, на выход блока.
Для Decision Coverage, основанного на передаче каждого входа, исключая первый вход управления, на выход блока, покрытие измеряет количество временных шагов, которые каждый вход передается на выход блока. Количество точек принятия решений основано на количестве входов в блок и является ли вход управления скаляром или вектором.
Если все входы, исключая первый вход управления, передаются на выход блока по меньшей мере в течение одного временного шага, Decision Coverage составляет 100%. В противном случае программное обеспечение Simulink Coverage сообщает о покрытии, когда количество входов прошло к выходу в течение, по меньшей мере, одного временного шага, деленного на общее количество входов минус один.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Multiport Switch получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Observer Reference не получает покрытие непосредственно; модель Observer, на которую ссылается блок, получает метрики покрытия для блоков внутри этой модели. Только модели Observers в Normal
анализируют режим на предмет покрытия.
Можно выбрать модели Observer для покрытия так же, как вы выбираете модели-ссылки. Дополнительные сведения о выборе моделей для анализа см. в разделе Модели-ссылки.
Только модели Observer, на которые вы ссылаетесь из верхней модели, активны во время симуляции и могут получать покрытие. Terminate Function блоки, расположенные внутри моделей Observer, не получают покрытия.
Результаты покрытия для каждой модели Observer собраны в отдельные cvdata
объекты. Каждая модель, на которую ссылаются из модели Observer, считается моделью Observer и имеет свою собственную cvdata
объект. Если вы записываете покрытие для нескольких моделей в иерархии модели-ссылки, результаты собираются в cv.cvdatagroup
объект. Сводный отчет связывается с отчетами о покрытии для всех анализируемых моделей в иерархии.
Если вы выбираете Saturate on integer overflow метрику покрытия, блоки PID Controller и PID Controller (2 DOF) получают насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Product получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Proof Assumption получает покрытие Simulink Design Verifier. Охват Simulink Design Verifier основан на точках и интервалах, определенных в диалоговом окне блока. Покрытие Simulink Design Verifier измеряет количество временных шагов, которое удовлетворяется каждой точке или интервалу, заданному в блоке. Общее количество объективных результатов основано на числе точек или интервалов, определенных в блоке Proof Assumption.
Если все точки и интервалы, определенные в блоке, выполняются хотя бы в течение одного временного шага, покрытие Simulink Design Verifier составляет 100%. В противном случае программное обеспечение Simulink Coverage сообщает о покрытии как о числе точек и интервалах, удовлетворенных в течение, по меньшей мере, одного временного шага, разделенного на общее число точек и интервалы, заданные для блока.
Блок Цель Доказательства получает покрытие Simulink Design Verifier. Охват Simulink Design Verifier основан на точках и интервалах, определенных в диалоговом окне блока. Покрытие Simulink Design Verifier измеряет количество временных шагов, которое удовлетворяется каждой точке или интервалу, заданному в блоке. Общее количество объективных результатов основано на числе точек или интервалов, определенных в блоке Цель Доказательства.
Если все точки и интервалы, определенные в блоке, выполняются хотя бы в течение одного временного шага, покрытие Simulink Design Verifier составляет 100%. В противном случае программное обеспечение Simulink Coverage сообщает о покрытии как о числе точек и интервалах, удовлетворенных в течение, по меньшей мере, одного временного шага, разделенного на общее число точек и интервалы, заданные для блока.
Блок Rate Limiter получает Decision Coverage. Программное обеспечение Simulink Coverage сообщает о Decision Coverage для параметров Rising slew rate и Falling slew rate.
Для Rising slew rate меры по Decision Coverage:
Количество временных шагов, которые вход блока изменяет больше или равен скорости роста, что указывает на истинное решение.
Количество временных шагов, которые вход блока изменяет меньше, чем скорость роста, что указывает на ложное решение.
Для Falling slew rate меры по Decision Coverage:
Количество временных шагов, которые вход блока изменяет меньше или равен скорости падения, что указывает на истинное решение.
Количество временных шагов, которое вход блока изменяет больше, чем частота падения, указывая на ложное решение.
Программа не измеряет Falling slew rate покрытие для временного шага, когда Rising slew rate верно. Поэтому общее количество Falling slew rate решений равняется количеству временных шагов, которые Rising slew rate является ложным.
Если, по меньшей мере, один временной шаг верен, и, по меньшей мере, один временной шаг ложен, Decision Coverage для каждого из двух индивидуальных решений для блока равен 100%. Если никакие временные шаги не имеют значения true, или если никакие временные шаги не являются ложными, Decision Coverage составляет 50%. Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Rate Limiter неявно сравнивает производную входного сигнала с верхним и нижним предельным значением. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Rate Limiter блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Блок Relational Operator получает покрытие условия.
Показатели покрытия условия:
количество раз, когда заданная реляционная операция была истинной.
количество раз, когда указанная реляционная операция была ложной.
Блок Relational Operator содержит сравнение между его входами. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Relational Operator блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Блок Relay получает Decision Coverage. Программное обеспечение Simulink Coverage сообщает о Decision Coverage для параметров Switch on point и Switch off point.
Для Switch on point меры по Decision Coverage:
Количество последовательных временных шагов, которые вход блока больше или равен Switch on point, что указывает на истинное решение.
Количество последовательных временных шагов, которые вход блока меньше, чем Switch on point, что указывает на ложное решение.
Для Switch off point меры по Decision Coverage:
Количество последовательных временных шагов, которые вход блока меньше или равен Switch off point, что указывает на истинное решение.
Количество последовательных временных шагов, которые вход блока больше, чем Switch off point, что указывает на ложное решение.
Программа не измеряет Switch off point покрытие для временного шага, когда порог включения равен true. Поэтому общее количество Switch off point решений равняется количеству временных шагов, которые Switch on point является ложным.
Если, по меньшей мере, один временной шаг верен, и, по меньшей мере, один временной шаг ложен, Decision Coverage для каждого из двух индивидуальных решений для блока равен 100%. Если никакие временные шаги не имеют значения true, или если никакие временные шаги не являются ложными, Decision Coverage составляет 50%. Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Relay содержит неявное сравнение его второго входа с порогом значением. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Relay блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Покрытие модели поддерживается для C/C + + S-функций. Отчет о покрытии для модели содержит результаты для каждого образца блока S-Function в модели. Результаты для S-Function блока ссылаются на отдельный отчет о покрытии для кода C/C + + в блоке.
Для создания отчета о покрытии для S-функций:
При создании S-функций включите поддержку покрытия. Для получения дополнительной информации смотрите Сделать S-функцию совместимой с покрытием модели.
При генерации отчета о покрытии включите поддержку S-функций. Для получения дополнительной информации смотрите Сгенерировать отчет о покрытии для S-функции.
Для S-функций сообщаются следующие типы переадресации:
Данные о покрытии для блоков S-Function получаются следующим образом:
Результатом покрытия для блока является взвешенное среднее значение результата по всем файлам в блоке.
Для образца блок S-Function имеет два файла, file1.c
и file2.c
. Область Decision Coverage для file1.c
75% (3/4 охваченных результатов) и то, что для file2.c
составляет 50% (охвачено 10/20 результатов). Значение Decision Coverage для блока составляет 13/24 ≈ 54%.
Для каждого файла результатом покрытия является взвешенное среднее значение результата по всем функциям в файле.
Для каждой функции результатом переадресации является взвешенное среднее значение результата по всем операторам в функции, которые получают эту переадресацию.
Примечание
Покрытие модели для S-функций имеет следующие ограничения:
Для покрытия поддерживаются только Level-2 функции C/C + + S. Пример S-функции уровня 2 C см. в разделе Создание базовой S-функции C MEX.
Шаблоны классов C++ не предназначены для покрытия.
Блок Насыщение получает Decision Coverage. Программное обеспечение Simulink Coverage сообщает о Decision Coverage для параметров Lower limit и Upper limit.
Для Upper limit меры по Decision Coverage:
Количество временных шагов, которые вход блока больше или равен верхнему пределу, что указывает на истинное решение.
Количество временных шагов, которое блок вводит, меньше верхнего предела, что указывает на ложное решение.
Для Lower limit меры по Decision Coverage:
Количество временных шагов, которое блок вводит, больше нижнего предела, что указывает на истинное решение.
Количество временных шагов, которые вход блока меньше или равен нижнему пределу, что указывает на ложное решение.
Программа не измеряет Lower limit покрытие для временного шага, когда верхний предел равен true. Поэтому общее количество Lower limit решений равняется количеству временных шагов, которые Upper limit является ложным.
Если по меньшей мере один временной шаг верен, и по меньшей мере один временной шаг ложен, Decision Coverage для каждого из двух индивидуальных решений для блока Насыщения составляет 100%. Если никакие временные шаги не имеют значения true, или если никакие временные шаги не являются ложными, Decision Coverage составляет 50%. Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Saturation содержит неявное сравнение входного параметра с верхним и нижним предельным значением. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Saturation блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Saturation Dynamic получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Следующие функции в блоках MATLAB Function получают покрытие Simulink Design Verifier:
sldv.condition
(Simulink Design Verifier)
sldv.test
(Simulink Design Verifier)
sldv.assume
(Simulink Design Verifier)
sldv.prove
(Simulink Design Verifier)
Каждая из этих функций оценивает выражение expr
для примера, sldv.test
, где (expr
)expr
является любым допустимым логическим MATLAB® выражение. Покрытие Simulink Design Verifier измеряет количество временных шагов, которые expr
выражение вычисляет значение true.
Если expr
true для по крайней мере одного временного шага, покрытие Simulink Design Verifier для этой функции составляет 100%. В противном случае программное обеспечение Simulink Coverage сообщает о покрытии для этой функции на уровне 0%.
Если вы выбираете Saturate on integer overflow метрику покрытия, блоки Sqrt, Signed Sqrt и Reciprocal Sqrt получают насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Если вы выбираете Saturate on integer overflow метрику покрытия, блоки Sum, Add, Subtract и Sum of Elements получают насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Switch получает Decision Coverage на основе управляющего входа в блок. Меры по Decision Coverage:
Количество временных шагов, которое вход управления оценивает как true.
Количество временных шагов, которое вход управления оценивает как ложное.
Количество точек принятия решений основано на том, является ли вход управления скаляром или вектором.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Switch получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Switch содержит неявное сравнение его второго входа с порогом значением. Поэтому, если вы выбираете Relational Boundary метрику покрытия, Switch блок получает реляционный краевой охват. Для получения дополнительной информации см. Раздел «Реляционное граничное покрытие».
Блок SwitchCase и Подсистема действия SwitchCase получают Decision Coverage. Программное обеспечение Simulink Coverage измеряет Decision Coverage индивидуально для каждого случая switch, определенного в блоке, а также для случая по умолчанию. Количество результатов решения равно количеству условий случая плюс один для default
case, если он определен.
Программа сообщает общее количество временных шагов, которые каждый случай оценивает как true. Если каждый случай, включая случай по умолчанию, оценивается как true хотя бы один раз, Decision Coverage составляет 100%. Программа определяет Decision Coverage по количеству случаев, которые оценивают true для по крайней мере одного временного шага, деленного на общее количество случаев.
Если блок SwitchCase не содержит default
в случае, программное обеспечение измеряет Decision Coverage для количества временных шагов, в которых ни один из случаев не был оценен как true. В отчете о покрытии этот охват указывается как implicit-default.
Блок Test Condition получает покрытие Simulink Design Verifier. Охват Simulink Design Verifier основан на точках и интервалах, определенных в диалоговом окне блока. Покрытие Simulink Design Verifier измеряет количество временных шагов, которое удовлетворяется каждой точке или интервалу, заданному в блоке. Общее количество объективных результатов основано на числе точек или интервалах, определенных в блоке Test Условия.
Если все точки и интервалы, определенные в блоке, выполняются хотя бы в течение одного временного шага, покрытие Simulink Design Verifier составляет 100%. В противном случае программное обеспечение Simulink Coverage сообщает о покрытии как о числе точек и интервалах, удовлетворенных в течение, по меньшей мере, одного временного шага, разделенного на общее число точек и интервалы, заданные для блока.
Блок Цель Тестирования получает покрытие Simulink Design Verifier. Охват Simulink Design Verifier основан на точках и интервалах, определенных в диалоговом окне блока. Покрытие Simulink Design Verifier измеряет количество временных шагов, которое удовлетворяется каждой точке или интервалу, заданному в блоке. Общее количество объективных результатов основано на числе точек или интервалов, определенных в блоке Цель Тестирования.
Если все точки и интервалы, определенные в блоке, выполняются хотя бы в течение одного временного шага, покрытие Simulink Design Verifier составляет 100%. В противном случае программное обеспечение Simulink Coverage сообщает о покрытии как о числе точек и интервалах, удовлетворенных в течение, по меньшей мере, одного временного шага, разделенного на общее число точек и интервалы, заданные для блока.
Блок Model может ссылаться на модель, которая содержит основанные на ребре триггерные порты на корневом уровне модели. Спровоцированные модели получают решение, условие и покрытие MCDC.
Меры по Decision Coverage:
Количество временных шагов, в течение которых запускается ссылочная модель, что указывает на истинное решение.
Количество временных шагов, на которые не запускается ссылочная модель, что указывает на ложное решение.
Если по крайней мере один временной шаг верен, и по меньшей мере один временной шаг ложен, Decision Coverage для блока Model, который ссылается на срабатывающую модель, равен 100%. Если никакие временные шаги не имеют значения true, или если никакие временные шаги не являются ложными, Decision Coverage составляет 50%.
Только если вход триггера является вектором, программное обеспечение Simulink Coverage измеряет покрытие условия для порта триггера в ссылочной модели. Для порта триггера измеряет покрытие условия:
Количество временных шагов, в течение которых каждый элемент порта триггера имеет значение true.
Количество временных шагов, в течение которых каждый элемент порта триггера имеет значение false.
Программное обеспечение сообщает о покрытии условием, основанном на общем количестве возможных условий и сколько верно для, по меньшей мере, одного временного шага и сколько ложно для, по меньшей мере, одного временного шага.
Если порт триггера является вектором, программное обеспечение измеряет покрытие MCDC только для порта триггера. Поскольку триггерный порт ссылочной модели является OR
из векторных входов, если в течение, по меньшей мере, одного временного шага каждый векторный триггерный порт исключительно верен, и если в течение, по меньшей мере, одного временного шага все входные параметры векторного триггерного порта являются ложными, охват MCDC равен 100%. Программа рассматривает каждый элемент вектора как отдельное условие для измерения покрытия MCDC.
Блок Триггируемая подсистема получает решение, условие и покрытие MCDC.
Меры по Decision Coverage:
Количество временных шагов, на которые запускается блок, что указывает на истинное решение.
Количество временных шагов, в течение которых блок не запускается, что указывает на ложное решение.
Если по крайней мере один временной шаг верен, и по меньшей мере один временной шаг ложен, Decision Coverage равен 100%. Если никакие временные шаги не имеют значения true, или если никакие временные шаги не являются ложными, Decision Coverage составляет 50%.
Программное обеспечение Simulink Coverage измеряет покрытие условия для триггерного входа, только если триггерный вход является вектором. Для ввода триггера измеряет покрытие условия:
Количество временных шагов, в течение которых каждый элемент ребра триггера имеет значение true.
Количество временных шагов, в течение которых каждый элемент ребра триггера имеет значение false.
Программное обеспечение сообщает о покрытии условием, основанном на общем количестве возможных условий и сколько верно для, по меньшей мере, одного временного шага и сколько ложно для, по меньшей мере, одного временного шага.
Если вход триггера является вектором, программное обеспечение измеряет покрытие MCDC только для входа триггера. Потому что триггерное ребро подсистемы является OR
из векторных входов, если в течение, по меньшей мере, одного временного шага каждый вход ребра триггера вектора является исключительно верным, и если в течение, по меньшей мере, одного временного шага все входы ребра триггера вектора являются ложными, охват MCDC равен 100%. Программа рассматривает каждый элемент вектора как отдельное условие для измерения покрытия MCDC.
Блок Таблица является блоком Stateflow, который позволяет вам использовать логику truth table непосредственно в модели Simulink. Блок Таблица получает условие, решение и покрытие MCDC. Для получения дополнительной информации о покрытии модели таблицами истинности Stateflow, см. «Покрытие модели для таблиц истинности Stateflow».
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Unary Minus получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Если вы выбираете Saturate on integer overflow метрику покрытия, блок Weighted Sample Time Math получает насыщение на целочисленное переполнение покрытии. Для получения дополнительной информации см. Раздел «Насыщение по целочисленному переполнению». Программа рассматривает каждый элемент массива вектора или матрицы как отдельное измерение покрытия.
Блок Итератор и Подсистема Итератор получают Decision Coverage. Decision Coverage измеряется для while
значение условия, которое определяется while
условие удовлетворяется (true), или while
условие не удовлетворяется (ложно). Программное обеспечение Simulink Coverage сообщает общее количество раз, которое каждый while
условие определяется как true и как false. Если на while
условие оценивается как true по крайней мере один раз, и false по крайней мере один раз, Decision Coverage для while
условие 100%. Если нет while
условия true, или если нет while
условия ложны, Decision Coverage составляет 50%.
Если предел итерации превышен (true) или не превышен (false), программное обеспечение измеряет Decision Coverage независимо. Если предел итерации оценивается как true по крайней мере один раз и false по крайней мере один раз, Decision Coverage для предела итерации составляет 100%. Если никакие пределы итерации не равны true, или если никакие пределы итерации не являются ложными, Decision Coverage составляет 50%. Если вы задаете Maximum number of iterations -1
(нет предела), Decision Coverage для предела итерации верен для всех итераций и ложно для нулевых итераций, и Decision Coverage составляет 50%.