• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • 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
            • Vl-wirealist-p
              • Vl-msb-expr-bitlist
              • Vl-plain-wire-name
              • Vl-module-wirealist
              • Vl-emodwires-from-high-to-low
              • Vl-vardecl-msb-emodwires
              • Vl-vardecllist-to-wirealist
              • Vl-emodwires-from-msb-to-lsb
                • Vl-verilogify-emodwirelist
              • Emodwire-encoding
              • Vl-emodwire-p
              • Vl-emodwirelistlist
              • Vl-emodwirelist
            • Resolving-multiple-drivers
            • Vl-modulelist-make-esims
            • Vl-module-check-e-ok
            • Vl-collect-design-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
        • Vwsim
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Vl-wirealist-p

    Vl-emodwires-from-msb-to-lsb

    (vl-emodwires-from-msb-to-lsb name msb lsb) returns a list of vl-emodwire-ps: (name[msb] name[msb +/- 1] ... name[lsb])

    Signature
    (vl-emodwires-from-msb-to-lsb name msb lsb) → *
    Arguments
    name — Guard (stringp name).
    msb — Guard (natp msb).
    lsb — Guard (natp lsb).

    The range is inclusive on both sides, so if msb and lsb are the same you still get one wire.

    Definitions and Theorems

    Function: vl-emodwires-from-msb-to-lsb

    (defun vl-emodwires-from-msb-to-lsb (name msb lsb)
     (declare (xargs :guard (and (stringp name)
                                 (natp msb)
                                 (natp lsb))))
     (let ((__function__ 'vl-emodwires-from-msb-to-lsb))
      (declare (ignorable __function__))
      (b* ((high (max msb lsb))
           (low (min msb lsb))
           (|w[high:low]| (vl-emodwires-from-high-to-low name high low))
           (|w[msb:lsb]| (if (>= msb lsb)
                             |w[high:low]|
                           (reverse |w[high:low]|))))
        |w[msb:lsb]|)))