Logic Gates

An event analysis flowchart logic gate is similar to a conditional block in that it checks incoming values against a conditional expression, with possible outcomes of true and false, and can have one or two outgoing paths. It differs, however, in that it accepts multiple incoming paths and determines the overall block outcome based on the gate type, which specifies how many of the incoming values must meet the condition in order for the outcome to be true.

For example, in the configuration shown next, the logic gate evaluates the outputs of Blocks 1, 2 and 3 against a conditional expression, and then evaluates the overall outcome based on the gate type. If the outcome is true, then an output is passed down the "true" (T) path to Block 4, but if the outcome is false, an output is passed down the "false" (F) path to Block 5.

Tip: The software designates the first connector drawn from a conditional block, binary node or logic gate as the "true" path and the second connector as the "false" path. You can switch these designations by right-clicking the connector and choosing Set to Failure or Set to Success on the shortcut menu.

The following picture shows the Block Properties window of the logic gate in the example. In this case, the logic gate is an AND gate, meaning that all incoming paths must meet the condition in order for the block outcome to be true. If the outputs of Blocks 1, 2 and 3 are all greater than or equal to 0, then the block outcome is true and the value "1" is passed down the "true" path. However, if one of the outputs is less than 0, then the block outcome is false and the value 0 is passed down the "false" path.  

The logic gate can be configured for any of the following gate types:

  • AND: If all incoming paths meet the condition, then the block outcome is true; otherwise, it is false.
  • OR: If at least one incoming path meets the condition, then the block outcome is true; otherwise, it is false.
  • XOR: If one, and only one, of the incoming paths meets the condition, then the block outcome is true. If more than one incoming path meets the condition, then the block outcome is false. This gate is also known as an exclusive OR.
  • K-out-of-N: If k out of n incoming paths (e.g., 2 out of 3 incoming paths) meet the condition, then the block outcome is true; otherwise, it is false. When you select this gate type, the Required Number of Paths field will appear, allowing you to specify the value of k.

The Condition and Condition Value fields allow you to configure the conditional expression of the block. The drop-down list in the Condition field includes the following relational signs:

=

equal to

<=

less than or equal to

<

less than

>=

greater than or equal to

>

greater than

FP<=%

a special case where the conditional block itself draws a random number uniformly distributed from 0 to 100, and then evaluates whether the number is less than or equal to the condition value.

<>

not equal to

For the condition value, as well as the outgoing "true" and "false" values, the expression can include:

You can enter the equation manually, or you can use the function selector or the equation editor to assist you. Resources, ReliaSoft Workbooks and internal functions are automatically color-coded while you are editing the equation, to improve readability.

When the cursor is positioned on a resource, ReliaSoft Workbook or predefined or internal function, a preview area appears and displays a summary of the item. Starting in Version 2019, if a function requires parameters, the preview area indicates (in all capital letters) which parameter you are currently entering; additionally, for nested functions, the preview area displays the current function and the parent function. If the item is a resource, you can click the View icon in the preview area to open that resource's properties window.

You can enclose a resource name in single quotes to reference it by name. When the item using the expression is transferred to another project or database, any resource referenced by name will not be transferred along with it. If the destination project contains a resource with the same name as the one referenced by name, that resource will be used during simulation of the transferred item. For example, if you export a diagram that contains a block using the expression 'Model1'(1000) from Project1 to Project2, Model1 will not be transferred along with that diagram. If Project2 already contains a model called Model1, that model will be used in simulating the transferred diagram. You can also reference ReliaSoft Workbooks by name.

IMPORTANT: All values and results are assumed to be in terms of the default unit specified for the database. See Using Time Units in Event Analysis Flowcharts for details on how this may affect your analysis.

Advanced Configurations

  • By default, if the condition evaluates to true, then the specified value will be passed down the "true" path and nothing will be passed down the "false" path. Similarly, if the condition evaluates to false, a value will be passed down the "false" path only. If you wish to pass a value down both paths regardless of the outcome of the evaluation, select the Continue Execution on Both Paths check box. This allows you to specify the values to pass to the opposite paths in each case.

In the example shown next, if the outcome is true, then the value "1" will be passed down the "true" path and the value 10 will be passed down the "false" path. Similarly, if the outcome is false, then the value 0 is will be passed down the "false" path and the value 5 will be passed down the "true" path.

  • If your block has multiple incoming paths, you can configure the block to not pass an output or compute a result until  the block has received a certain number of inputs. This allows you to control the number of inputs that the block processes at any given time. To do this, enter a value in the Required Number of Executed Incoming Paths field in the Block Properties window. Note that this value simply refers to how many inputs are required, and does not distinguish based on which path(s) the inputs come from. For example, if there are three incoming paths and three required inputs, one input from each path would trigger the block, but so would three inputs from the first path. An asterisk (*) in this field means that the required number of inputs is equal to the number of paths into the block. See Flowchart Configurations and Execution for an example.