IC设计基础:Verilog计算1的数量
来源:Amadeus发布时间:2023-05-246247浏览
询问 AI1、采用循环语句+移位+逻辑& 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;begincountones = 0;while(x > 0) begincountones += x & 1;x = x >> 1;endendendfunctionlocalparam 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@(*) beginmem_addr_hit_cnt = 'b0 ;for(int i=0; i<64;i=i+1) begin : mem_addr_hit_cntif(mem_addr_hit[i])mem_addr_hit_cnt = mem_addr_hit_cnt + 1'b1 ; //spyglass disable W415a W484elsemem_addr_hit_cnt = mem_addr_hit_cnt ; //spyglass disable W415a W484endend
本文内容仅代表作者观点,不代表平台观点。
如有任何异议,欢迎联系我们。
如有侵权,请联系删除。
2021年的第一场雪!英特尔2020年Q4财报解读
利用硬件辅助验证工具加速功能仿真
博文:裸片尺寸和光罩难题——光刻扫描仪吞吐量的成本模型
博文速递:Race condition in digital circuits
![]()
新闻来源:Curry wang,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。


