• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
        • Symbolic-test-vectors
        • Esim-primitives
        • E-conversion
          • Vl-ealist-p
          • Modinsts-to-eoccs
          • Vl-module-make-esim
          • Exploding-vectors
          • Resolving-multiple-drivers
          • Vl-modulelist-make-esims
          • Vl-module-check-e-ok
          • Vl-collect-design-wires
          • Adding-z-drivers
            • Vl-add-zdrivers
            • Vl-make-z-occs
              • Vl-make-z-occ
            • Vl-design-to-e
            • Vl-design-to-e-check-ports
            • Vl-design-to-e-main
            • Port-bit-checking
          • Esim-steps
          • Patterns
          • Mod-internal-paths
          • Defmodules
          • Esim-simplify-update-fns
          • Esim-tutorial
          • Esim-vl
        • Vl2014
        • Sv
        • Fgl
        • Vwsim
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Adding-z-drivers

    Vl-make-z-occs

    Generate instances of ACL2::*esim-z* to drive undriven output bits.

    Signature: (vl-make-z-occs idx outs) returns a list of occurrences.

    • idx is a name index used for fresh name generation. We expect that it is initially set to the highest index of any emodwire in the module whose basename is vl_zdrive. We increment it whenever we need to create a new, fresh occurrence name.
    • outs are an vl-emodwirelist-p that should include all of the output bits that weren't driven by the preliminary occurrences.

    Definitions and Theorems

    Function: vl-make-z-occs

    (defun vl-make-z-occs (idx outs)
      (declare (xargs :guard (and (natp idx)
                                  (vl-emodwirelist-p outs))))
      (b* (((when (atom outs)) nil)
           (idx (+ 1 idx))
           (fresh (make-vl-emodwire :basename "vl_zdrive"
                                    :index idx)))
        (cons (vl-make-z-occ fresh (car outs))
              (vl-make-z-occs idx (cdr outs)))))

    Theorem: good-esim-occsp-of-vl-make-z-occs

    (defthm good-esim-occsp-of-vl-make-z-occs
      (implies (and (force (natp idx))
                    (force (vl-emodwirelist-p outs)))
               (good-esim-occsp (vl-make-z-occs idx outs))))