Как объединить несколько сигналов в один сигнал?
У меня есть несколько сигналов, которые являются входными для подсистемы с различными типами данных. Я использую поток состояний для разработки функции, в которой мне нужно использовать эти входные порты и сравнивать с некоторыми константами или true/false для логического значения.
Например: скажем, 3 сигнала, а именно Signal_x [bool], Signal_y[bool], signal_z[bool], я хочу объединить эти сигналы в один сигнал, называемый Signal_A, и использовать signal_A в потоке состояний вместо трех сигналов.
Более подробно: если есть 2 состояния state1 и state2, и система переходит из состояния 1 в состояние 2, если все три сигнала верны, как указано ниже.
[(Signal_x == true) && (Signal_y == true) && (signal_z == true)] затем переходят из состояния 1 в состояние 2.
Но вместо того, чтобы использовать все 3 сигнала в потоке состояний, я хочу использовать только один сигнал "signal_A" и сказать, что система должна перейти из состояния1 в состояние2.
[(signal_A == true)] затем переходите из состояния1 в состояние2. Сигнал_А должен проверять состояние всех 3 сигналов.
Может кто-нибудь помочь мне, как это можно сделать. Я попытался использовать блок слияния, но он не сработал, и произошла ошибка: "внешние сигналы от импорта корневого уровня нельзя объединить с выходными сигналами внутреннего блока"
1 ответ
Вы хотите использовать либо блок Mux, либо блок Bus Creator, чтобы создать входной сигнал. (Блок Merge не объединяет сигналы в том смысле, в котором вы пытаетесь достичь.)
Внутри графика вам нужно использовать логическую операцию any
проверить, является ли любое из состояний ввода истинным.