• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
        • Svex-stvs
        • Svex-decomposition-methodology
        • Sv-versus-esim
        • Svex-decomp
        • Svex-compose-dfs
        • Svex-compilation
        • Moddb
        • Svmods
        • Svstmt
        • Sv-tutorial
        • Expressions
          • Rewriting
          • Svex
          • Bit-blasting
          • Functions
          • 4vmask
          • Why-infinite-width
          • Svex-vars
          • Evaluation
          • Values
            • 4vec
            • 4vec-<<=
            • 3vec
            • 2vec
            • 2vecx
              • 2vecx-fix
              • 2vecx-equiv
              • 2vecx-p
              • 2vexc-p!
            • 2vecnatx
            • 4vec-x
            • 4vec-1x
            • 4vec-1z
            • 4vec-z
        • Symbolic-test-vector
        • Vl-to-svex
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Values

2vecx

A 2vecx is a 4vec that is either a 2vec or is all Xes.

In the Verilog semantics, many of the more interesting vector operations (e.g., addition, multiplication, etc.) have a special X propagation behavior where, if any bit of any input is X or Z, then the entire result is X.

The 2vecx'es are a subset of the 4vecs that capture this idea. That is, the result of an operation like addition is surely a 2vecx.

Subtopics

2vecx-fix
Coerces an arbitrary 4vec to a 2vecx, by forcing any non-2vecs to an just be infinite Xes.
2vecx-equiv
Equivalence up to 2vecx-fix.
2vecx-p
Recognizer for 2vecxes, with a 4vec-p guard.
2vexc-p!
Recognizer for 2vecxes, without even a 4vec-p guard.