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文章
1354瀏覽量
105534 -
信號
+關(guān)注
關(guān)注
11文章
2849瀏覽量
78108 -
Verilog
+關(guān)注
關(guān)注
29文章
1366瀏覽量
112099 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4378瀏覽量
64609 -
調(diào)用函數(shù)
+關(guān)注
關(guān)注
0文章
11瀏覽量
2401
原文標(biāo)題:IC設(shè)計基礎(chǔ):Verilog計算1的數(shù)量
文章出處:【微信號:IP與SoC設(shè)計,微信公眾號:IP與SoC設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
H[1].264 Verilog H.264 的Verilog實現(xiàn)的opencore
Verilog HDL語言簡介
Verilog_HDL基礎(chǔ)知識非常好的學(xué)習(xí)教程 (1)
verilog是什么_verilog的用途和特征是什么

數(shù)字IC設(shè)計入門(6)初識verilog

評論