wiRedPanda
Logic Circuit Simulator
Loading...
Searching...
No Matches
StatusOps.h File Reference

Four-state logic operations for gate evaluation. More...

#include <QVector>
#include "App/Core/Enums.h"
Include dependency graph for StatusOps.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  StatusOps

Functions

Status StatusOps::statusAnd (const Status a, const Status b)
 AND: Inactive dominates all; unknown propagates as-is.
Status StatusOps::statusAndAll (const QVector< Status > &inputs)
 Fold AND over a range. Inactive dominates.
Status StatusOps::statusNot (const Status a)
 NOT: inverts known values; Unknown -> Unknown, Error -> Error.
Status StatusOps::statusOr (const Status a, const Status b)
 OR: Active dominates all; unknown propagates as-is.
Status StatusOps::statusOrAll (const QVector< Status > &inputs)
 Fold OR over a range. Active dominates.
Status StatusOps::statusXor (const Status a, const Status b)
 XOR: requires all inputs known; any Unknown -> Unknown, any Error -> Error.
Status StatusOps::statusXorAll (const QVector< Status > &inputs)

Detailed Description

Four-state logic operations for gate evaluation.

Domination rules (Unknown = not yet resolved, Error = bus conflict):

  • AND: Inactive dominates (FALSE AND X = FALSE)
  • OR: Active dominates (TRUE OR X = TRUE)
  • NOT: inverts known values; Unknown -> Unknown, Error -> Error
  • XOR: requires all inputs known; any unknown -> Unknown/Error

Unknown propagates benignly as "not yet resolved" and resolves once a dominant known value arrives via event-driven propagation.

Definition in file StatusOps.h.