1、采用循環(huán)語句+移位+邏輯& 1來計算1的數(shù)量
如下所示,采用循環(huán)語句+移位+邏輯與1+累加來實現(xiàn)1的統(tǒng)計。最終調(diào)用函數(shù)獲得輸入信號中1的數(shù)量。
module clk_mux #(parameter CLK_MASK = 16'hffff) ( input xxxx, input xxxx, output xxxx, output xxxx ); localparam NUM_INPUT_CLK = 16; function integer countones; input [NUM_INPUT_CLK-1:0] x; integer k; begin countones = 0; while(x > 0) begin countones += x & 1; x = x >> 1; end end endfunction localparam NUM_CLK = countones(CLK_MASK); endmodule
2、采用for循環(huán)來計算1的數(shù)量
采用for循環(huán)語句,逐個bit位判斷是否為1,為1則累加,否則保持不變,最終輸出輸入信號中1的數(shù)量。
wire [64-1:0] mem_addr_hit ; // reg [7-1:0] mem_addr_hit_cnt ; // always@(*) begin mem_addr_hit_cnt = 'b0 ; for(int i=0; i<64;i=i+1) begin : mem_addr_hit_cnt if(mem_addr_hit[i]) mem_addr_hit_cnt = mem_addr_hit_cnt + 1'b1 ; //spyglass disable W415a W484 else mem_addr_hit_cnt = mem_addr_hit_cnt ; //spyglass disable W415a W484 end end
審核編輯:湯梓紅
-
IC設(shè)計
+關(guān)注
關(guān)注
38文章
1297瀏覽量
104088 -
信號
+關(guān)注
關(guān)注
11文章
2794瀏覽量
76890 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110158 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4338瀏覽量
62749 -
調(diào)用函數(shù)
+關(guān)注
關(guān)注
0文章
11瀏覽量
2345
原文標(biāo)題:IC設(shè)計基礎(chǔ):Verilog計算1的數(shù)量
文章出處:【微信號:IP與SoC設(shè)計,微信公眾號:IP與SoC設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論