1、采用循环语句+移位+逻辑& 1来计算1的数量
如下所示,采用循环语句+移位+逻辑与1+累加来实现1的统计。最终调用函数获得输入信号中1的数量。
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循环来计算1的数量
采用for循环语句,逐个bit位判断是否为1,为1则累加,否则保持不变,最终输出输入信号中1的数量。
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设计
+关注
关注
38文章
1302浏览量
104232 -
信号
+关注
关注
11文章
2804浏览量
77050 -
Verilog
+关注
关注
28文章
1351浏览量
110318 -
函数
+关注
关注
3文章
4345浏览量
62919 -
调用函数
+关注
关注
0文章
11浏览量
2349
原文标题:IC设计基础:Verilog计算1的数量
文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
H[1].264 Verilog H.264 的Verilog实现的opencore
H[1].264 Verilog H.264 的Verilog实现的opencore
发表于 08-12 12:07
verilog是什么_verilog的用途和特征是什么
本文首先介绍了verilog的概念和发展历史,其次介绍了verilog的特征与Verilog的逻辑门级描述,最后介绍了Verilog晶体管级描述与v
发表于 05-14 14:22
•4.6w次阅读
数字IC设计入门(6)初识verilog
Verilog HDL与VHDL是当前最流行的两种硬件设计语言,两者各有优劣,也各有相当多的拥护者,都通过了IEEE 标准。VHDL在北美及欧洲应用很普遍,Verilog HDL 语言在中国、日本
发表于 11-06 09:05
•15次下载
Verilog的程序框架案例
Verilog HDL(Hardware Description Language)是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,具有灵活性高、易学易用等特点。Verilog HDL可以在较短的时间内学习和掌握,目前已经在FPGA开发/
发表于 09-13 14:34
•1419次阅读
光纤跳线的数量怎么计算
光纤跳线的数量计算通常涉及到多个因素,以下是一些主要的考虑点和计算方法: 一、主要考虑因素 光纤配线架的容量: 不同类型的光纤配线架具有不同的容量,即能够容纳的光纤跳线数量。在选择光纤跳线数量
评论