Преобразуйте входной сигнал в заданный тип данных
Simulink/Обычно используемые блоки
Атрибуты Simulink/Signal
HDL-кодер/обычно используемые блоки
Операции HDL-кодера/HDL с плавающей точкой
Атрибуты HDL-кодера/сигнала
Блок Data Type Conversion преобразует входной сигнал любого Simulink® тип данных заданному типу данных.
Примечание
Чтобы управлять типом выходных данных путем определения параметров блоков или наследования типа данных от нисходящего блока, используйте блок Data Type Conversion. Чтобы наследовать тип данных от другого сигнала в модели, используйте блок Data Type Conversion Inherited.
Когда вы преобразовываете между типами данных с фиксированной точкой, параметр Input and output to have equal управляет поведением блоков. Этот параметр не изменяет поведение блока, когда:
Вход и выход не имеют типа данных с фиксированной точкой.
Вход или выход имеет тип данных с фиксированной точкой с тривиальным масштабированием.
Для получения дополнительной информации о номерах с фиксированной точкой см. Раздел «Номера с фиксированной точкой» в Simulink (Fixed-Point Designer).
Чтобы преобразовать сигнал из одного типа данных в другой путем попытки сохранить действительное значение входного сигнала, выберите Real World Value (RWV)
, настройка по умолчанию. Блок учитывает пределы, накладываемые масштабированием входных и выходных входов, и пытается сгенерировать выход с равным значением в реальном мире.
Чтобы изменить действительное значение входного сигнала путем выполнения масштабирования повторной интерпретации сохраненного целочисленного значения, выберите Stored Integer (SI)
. В пределах заданных типов данных блок пытается сохранить сохраненное целое значение сигнала во время преобразования. Лучшая практика состоит в том, чтобы задать типы входных и выходных данных с помощью тех же размера слова и сигнальности. Это гарантирует, что блок изменяет только масштабирование сигнала. Установка другой сигнальности или размера слова для входа и выхода может привести к неожиданным результатам, таким как потеря области значений или неожиданные расширения знаков. Для получения примера смотрите Преобразование типов данных в Модели Simulink.
Если вы выбираете Stored Integer (SI)
блок не выполняет повторную интерпретацию входного сигнала с плавающей точкой на более низком уровне. Для примера, если вход single
и имеет значение 5
, биты, которые хранят вход в памяти, заданы в шестнадцатеричном виде следующей командой.
num2hex(single(5))
40a00000
Однако блок Data Type Conversion не обрабатывает сохраненное целое значение как 40a00000
, но вместо этого в качестве реального значения, 5
. После преобразования сохраненное целое значение выхода 5
.
Используйте блок Data Type Conversion для приведения перечисленных сигналов следующим образом:
Чтобы привести сигнал перечисленного типа к сигналу любого числового типа.
Базовые целые числа всех перечисленных значений, входящих в блок Data Type Conversion, должны находиться в области значений числового типа. В противном случае ошибка возникает во время симуляции.
Чтобы привести сигнал любого целого типа к сигналу перечисленного типа.
Значение, введенное в блок Data Type Conversion, должно совпадать с базовым значением перечисленного значения. В противном случае ошибка возникает во время симуляции.
Можно включить параметр Saturate on integer overflow, чтобы Simulink использовал значение по умолчанию перечисляемого типа, когда значение, введенное в блок, не совпадает с базовым значением перечисляемого значения. Смотрите Приведение типов для перечислений (Simulink Coder).
Вы не можете использовать блок Data Type Conversion в следующих случаях:
Чтобы привести нецелочисленный числовой сигнал к перечисленному сигналу.
Чтобы привести комплексный сигнал к перечисленному сигналу, независимо от типов данных действительной и мнимой частей комплексного сигнала.
Смотрите Перечисления Simulink для получения информации о работе с перечисленными типами.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|