Function: verilog-clog2

verilog-clog2 is a byte-compiled function defined in verilog-mode.el.gz.

Signature

(verilog-clog2 VALUE)

Documentation

Compute $clog2 - ceiling log2 of VALUE.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/verilog-mode.el.gz
;;(verilog-simplify-range-expression "[1:3]")  ; 1
;;(verilog-simplify-range-expression "[(1):3]")  ; 1
;;(verilog-simplify-range-expression "[(((16)+1)+1+(1+1))]")  ; 20
;;(verilog-simplify-range-expression "[(2*3+6*7)]")  ; 48
;;(verilog-simplify-range-expression "[(FOO*4-1*2)]")  ; FOO*4-2
;;(verilog-simplify-range-expression "[(FOO*4+1-1)]")  ; FOO*4+0
;;(verilog-simplify-range-expression "[(func(BAR))]")  ; func(BAR)
;;(verilog-simplify-range-expression "[FOO-1+1-1+1]")  ; FOO-0
;;(verilog-simplify-range-expression "[$clog2(2)]")  ; 1
;;(verilog-simplify-range-expression "[$clog2(7)]")  ; 3
;;(verilog-simplify-range-expression "[(TEST[1])-1:0]")
;;(verilog-simplify-range-expression "[1<<2:8>>2]")  ; [4:2]
;;(verilog-simplify-range-expression "[2*4/(4-2) +2+4 <<4 >>2]")
;;(verilog-simplify-range-expression "[WIDTH*2/8-1:0]")  ; "[WIDTH*2/8-1:0]"
;;(verilog-simplify-range-expression "[(FOO).size:0]")  ; "[FOO.size:0]"

(defun verilog-clog2 (value)
  "Compute $clog2 - ceiling log2 of VALUE."
  (if (< value 1)
      0
    (ceiling (/ (log value) (log 2)))))