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:3]"
;;(verilog-simplify-range-expression "[(1):3]") ; "[1:3]"
;;(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 "[FOO-1+2:LSB-3+1]") ; "[FOO+1:LSB-1]"
;;(verilog-simplify-range-expression "[$clog2(2)]") ; "[1]"
;;(verilog-simplify-range-expression "[$clog2(7)]") ; "[3]"
;;(verilog-simplify-range-expression "[(TEST[1])-1:0]") ; "[(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]") ; "[8/(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)))))