[爆卦]log2計算是什麼?優點缺點精華區懶人包

為什麼這篇log2計算鄉民發文收入到精華區:因為在log2計算這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者zxvc (眾生都是未來佛)看板Electronics標題[心得] 用Verilog/Syste...

log2計算 在 Beginneros|每日分享冷知識? Instagram 的最佳貼文

2021-09-03 13:41:54

【花多才會眼亂︱#一起了解希克海曼定律】 選擇早﹑午﹑晚餐的時候,有遇過選擇吃什麼的難題嗎?往往花了很長時間也決定不了,這是因為太多選擇了! 希克海曼定律( Hick–Hyman law)於1952年由英國心理學家William Edmund Hick(威廉·艾德·蒙希克)和美國心理學家雷伊·海曼...


寫HDL以來一直有個困擾,就是log2計算很常見,
例如8-to-1多工器的選擇訊號是log2(8) = 3,
如果不能計算log2,很多電路就很難寫得一般化。

Verilog是有定義log2的function,叫作$clog2,
Design Compiler有支援,但Xilinx XST 12.1與
Mentor Graphics Precision RTL 2009都不支援 XD

今天去google了一下,找到答案[1],雖然[1]有些小bug。
我用SystemVerilog稍微改寫,
讓大家欣賞寫function的powerful,如下:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function automatic integer log2;
input integer in;
integer in2;
begin
in2 = in;

for(log2 = 0; in2 > 1; log2 = log2+1) begin
in2 = in2>>1;
end
end
endfunction

module Mux(o, i, sel);
parameter Len = 8;
output o;
input [Len-1:0] i;
input [log2(Len)-1:0] sel;

assign o = i[sel];
endmodule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我以前很少寫function,沒想到function有這麼powerful的地方。
另外我用SystemVerilog改寫的原因是因為Verilog不支援
"global" function(我不知有無標準稱呼)。

以上code已用Precision RTL 2009、Design Compiler 2009.06合成過。
(XST 12.1還是沒支援SystemVerilog XD)

[1] http://objectmix.com/verilog/189123-how-do-log2-n-verilog.html

--
信佛的人要知道:佛絕不會說謊。但請把握時光。
法滅盡經:
http://www.cbeta.org/result/normal/T12/0396_001.htm
共勉之。

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.221.79
TripleC:check whether your log2 can solve non-power-of-2 int 06/18 09:57

你可能也想看看

搜尋相關網站