• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
          • Expression-sizing
          • Occform
          • Oprewrite
          • Expand-functions
          • Delayredux
          • Unparameterization
          • Caseelim
          • Split
          • Selresolve
          • Weirdint-elim
          • Vl-delta
          • Replicate-insts
          • Rangeresolve
          • Propagate
          • Clean-selects
          • Clean-params
          • Blankargs
          • Inline-mods
          • Expr-simp
          • Trunc
          • Always-top
          • Gatesplit
          • Gate-elim
          • Expression-optimization
          • Elim-supplies
          • Wildelim
          • Drop-blankports
          • Clean-warnings
          • Addinstnames
          • Custom-transform-hooks
          • Annotate
            • Make-implicit-wires
            • Resolve-indexing
            • Origexprs
            • Argresolve
            • Portdecl-sign
            • Designwires
            • Udp-elim
              • Vl-udp-vardecls-from-portdecls
              • Vl-udps-to-modules
              • Vl-udpline-match-expr
              • Vl-combinational-udptable-synth
              • Vl-udptable-assignrhs
              • Vl-udp-to-module
              • Vl-udp-vardecl-from-portdecl
              • Vl-design-udp-elim
            • Vl-annotate-design
          • Latchcode
          • Elim-unused-vars
          • Problem-modules
        • Lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Annotate

Udp-elim

Eliminate user-defined primitives (UDPs), replacing them with equivalent modules.

This transform eliminates all user-defined primitives from a design, replacing them with modules. When the UDPs are simple enough to support, we can create replace them with equivalent modules. In other cases, e.g., when the UDP includes scary, nonsensical X behavior, we may simply create a shell module that includes fatal warnings.

Subtopics

Vl-udp-vardecls-from-portdecls
(vl-udp-vardecls-from-portdecls x) maps vl-udp-vardecl-from-portdecl across a list.
Vl-udps-to-modules
(vl-udps-to-modules x) maps vl-udp-to-module across a list.
Vl-udpline-match-expr
Vl-combinational-udptable-synth
Translate a combinational UDP table into an assignment.
Vl-udptable-assignrhs
Vl-udp-to-module
Convert a UDP into a module.
Vl-udp-vardecl-from-portdecl
Vl-design-udp-elim