• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • 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
            • Vl-collect-msb-bits-for-wires
          • Adding-z-drivers
          • 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
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Testing-utilities
    • Math
  • E-conversion

Vl-collect-design-wires

Collect all symbols for design-visible wires and return them as a flat list of bits.

Signature
(vl-collect-design-wires x walist warnings) 
  → 
(mv warnings wires)
Arguments
x — Guard (vl-module-p x).
walist — Guard (vl-wirealist-p walist).
warnings — Guard (vl-warninglist-p warnings).
Returns
warnings — Type (vl-warninglist-p warnings), given (vl-warninglist-p warnings).
wires — Type (vl-emodwirelist-p wires), given (vl-wirealist-p walist).

Definitions and Theorems

Function: vl-collect-design-wires

(defun
 vl-collect-design-wires
 (x walist warnings)
 (declare (xargs :guard (and (vl-module-p x)
                             (vl-wirealist-p walist)
                             (vl-warninglist-p warnings))))
 (let
  ((__function__ 'vl-collect-design-wires))
  (declare (ignorable __function__))
  (b*
    (((when (atom x)) (mv warnings nil))
     (vars (vl-module->vardecls x))
     (dnets
          (vl-gather-vardecls-with-attribute vars "VL_DESIGN_WIRE"))
     (dnet-names (vl-vardecllist->names dnets)))
    (vl-collect-msb-bits-for-wires dnet-names walist warnings))))

Theorem: vl-warninglist-p-of-vl-collect-design-wires.warnings

(defthm vl-warninglist-p-of-vl-collect-design-wires.warnings
        (implies (vl-warninglist-p warnings)
                 (b* (((mv ?warnings ?wires)
                       (vl-collect-design-wires x walist warnings)))
                     (vl-warninglist-p warnings)))
        :rule-classes :rewrite)

Theorem: vl-emodwirelist-p-of-vl-collect-design-wires.wires

(defthm vl-emodwirelist-p-of-vl-collect-design-wires.wires
        (implies (vl-wirealist-p walist)
                 (b* (((mv ?warnings ?wires)
                       (vl-collect-design-wires x walist warnings)))
                     (vl-emodwirelist-p wires)))
        :rule-classes :rewrite)

Subtopics

Vl-collect-msb-bits-for-wires
Append together all the MSB bits for a list of wire names.