Re: [心得] 用Verilog/SystemVerilog計算log2

看板Electronics作者 (眾生都是未來佛)時間14年前 (2010/06/18 14:00), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串2/2 (看更多)
: → TripleC:check whether your log2 can solve non-power-of-2 int 06/18 09:5 謝謝提醒,的確怪怪的。 這種寫法: for (log2=0; value>0; log2=log2+1) value = value>>1; 會造成log2(8) = 4。 如果我們希望log2(8) = log2(7) = log2(6) = log2(5) = 3的話。 可以改成這樣: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function automatic integer log2; input integer in; begin for(log2 = 1; in > 2**log2; log2 = log2+1) begin end end endfunction ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- 信佛的人要知道:佛絕不會說謊。但請把握時光。 法滅盡經: http://www.cbeta.org/result/normal/T12/0396_001.htm 共勉之。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.73.168 ※ 編輯: zxvc 來自: 140.115.73.168 (06/18 16:38)

06/18 16:40, , 1F
抱歉,log2應該初值為1比較正確。
06/18 16:40, 1F

06/18 16:43, , 2F
其實我後來發現原網址的算法不能說有bug。只是它是用在"存一
06/18 16:43, 2F

06/18 16:44, , 3F
個數,最少要幾bits"。但它取名為log2,又它的log2(8) = 4,
06/18 16:44, 3F

06/18 16:44, , 4F
就有點奇怪。
06/18 16:44, 4F

06/27 13:38, , 5F
其實clog2 = celling of log base 2。
06/27 13:38, 5F
文章代碼(AID): #1C6mkC9k (Electronics)
文章代碼(AID): #1C6mkC9k (Electronics)