Как объединить несколько сигналов в один сигнал?

У меня есть несколько сигналов, которые являются входными портами для подсистемы с разными типами данных. Я использую поток состояний для разработки функции, в которой я должен использовать эти входные порты и сравнивать с некоторыми константами или true/false для логического значения.

Например: скажем, 3 сигнала, а именно Signal_x [bool], Signal_y [bool], signal_z [bool], я хочу включить эти сигналы в один сигнал, называемый Signal_A, и использовать signal_A в State Flow вместо трех вышеперечисленных сигналов.

Более подробно: если есть 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. Signal_A должен проверить состояние всех трех сигналов.

Может ли кто-нибудь помочь мне, как это можно сделать. Я пытался использовать блок слияния, но это не сработало, и ошибка заключалась в том, что «внешние сигналы из импорта корневого уровня не могут быть объединены с выходными сигналами внутреннего блока».


person Priyanka    schedule 16.01.2018    source источник


Ответы (1)


Вы хотите использовать либо блок Mux, либо блок Bus Creator для создания входного сигнала. (Блок слияния не объединяет сигналы в том смысле, которого вы пытаетесь достичь.)

Внутри диаграммы вам нужно будет использовать логическую операцию any, чтобы проверить, является ли какое-либо из входных состояний истинным.

person Phil Goddard    schedule 18.01.2018