• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
          • *vl-1-bit-approx-mux*
          • *vl-1-bit-mux*
          • Nedgeflop
          • Vl-primitive-mkport
          • *vl-1-bit-assign*
          • *vl-1-bit-zmux*
          • Vl-primitive-mkwire
          • *vl-1-bit-bufif1*
          • *vl-1-bit-bufif0*
          • *vl-1-bit-delay-1*
          • *vl-1-bit-ceq*
          • *vl-1-bit-buf*
          • *vl-1-bit-rcmos*
          • *vl-1-bit-latch*
          • *vl-1-bit-cmos*
          • *vl-1-bit-power*
          • *vl-1-bit-rpmos*
          • *vl-1-bit-rnmos*
          • *vl-1-bit-pmos*
          • *vl-1-bit-nmos*
          • *vl-1-bit-ground*
          • *vl-1-bit-tranif1*
          • *vl-1-bit-tranif0*
          • *vl-1-bit-rtranif1*
            • *vl-1-bit-rtranif0*
            • *vl-1-bit-rtran*
            • *vl-1-bit-tran*
            • *vl-1-bit-notif1*
            • *vl-1-bit-notif0*
            • *vl-1-bit-and*
            • *vl-1-bit-xor*
            • *vl-1-bit-xnor*
            • *vl-1-bit-pullup*
            • *vl-1-bit-pulldown*
            • *vl-1-bit-or*
            • *vl-1-bit-not*
            • *vl-1-bit-nor*
            • *vl-1-bit-nand*
            • *vl-1-bit-z*
            • *vl-1-bit-x*
            • *vl-1-bit-t*
            • *vl-1-bit-f*
          • Use-set
          • Syntax
          • Getting-started
          • Utilities
          • Loader
          • Transforms
          • Lint
          • Mlib
          • Server
          • Kit
          • Printer
          • Esim-vl
          • Well-formedness
        • Sv
        • Vwsim
        • Fgl
        • Vl
        • Svl
        • X86isa
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Primitives

    *vl-1-bit-rtranif1*

    Primitive, resistive, conditional bidirectional connection.

    The Verilog meaning of this module is:

    module VL_1_BIT_RTRANIF1 (a, b, ctrl);
      inout a ;
      inout b ;
      input ctrl ;
      rtranif1 gate (a, b, ctrl) ;
    endmodule

    VL takes this as a primitive. The gate-elim transform converts certain rtranif1 gates into instances of this module.

    There is no sensible way to model this in ESIM and hence there is no ESIM equivalent. However, this module may be a convenient target for other back-end tools.

    Definition: *vl-1-bit-rtranif1*

    (defconst *vl-1-bit-rtranif1*
     (b*
      ((name "VL_1_BIT_RTRANIF1")
       (atts '(("VL_PRIMITIVE") ("VL_HANDS_OFF")))
       ((mv a-expr a-port a-portdecl a-vardecl)
        (vl-primitive-mkport "a" :vl-inout))
       ((mv b-expr b-port b-portdecl b-vardecl)
        (vl-primitive-mkport "b" :vl-inout))
       ((mv ctrl-expr
            ctrl-port ctrl-portdecl ctrl-vardecl)
        (vl-primitive-mkport "ctrl" :vl-input))
       (gate
        (make-vl-gateinst :type :vl-rtranif1
                          :name "gate"
                          :args (list (make-vl-plainarg :expr a-expr
                                                        :dir :vl-inout)
                                      (make-vl-plainarg :expr b-expr
                                                        :dir :vl-inout)
                                      (make-vl-plainarg :expr ctrl-expr
                                                        :dir :vl-input))
                          :loc *vl-fakeloc*)))
      (hons-copy
           (make-vl-module
                :name name
                :origname name
                :ports (list a-port b-port ctrl-port)
                :portdecls (list a-portdecl b-portdecl ctrl-portdecl)
                :vardecls (list a-vardecl b-vardecl ctrl-vardecl)
                :gateinsts (list gate)
                :minloc *vl-fakeloc*
                :maxloc *vl-fakeloc*
                :atts atts
                :esim nil))))