0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

IC设计基础:Verilog计算1的数量

ruikundianzi 来源:IP与SoC设计 2023-05-11 11:38 次阅读

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 HDL语言简介

    Verilog HDL语言简介 1.什么是Verilog HDLVerilog HDL是硬件描述语言的一种,用于数
    发表于 02-09 08:59 3916次阅读

    如何计算UPS所配电池的数量

    UPS所配电池的数量,如何进行计算,本文进行详细的介绍
    发表于 11-10 16:57 62次下载

    基于EP1C3的进阶实验_reference_verilog

    基于EP1C3的进阶实验_reference_verilog
    发表于 01-21 11:29 14次下载

    FPGA_Verilog学习资料part1

    FPGA_Verilog学习资料 part1
    发表于 03-14 14:28 47次下载

    基于EP1C3的进阶实验eference_verilog

    基于EP1C3的进阶实验eference_verilog
    发表于 10-27 18:20 3次下载

    基于EP1C3的进阶实验_reference_verilog

    基于EP1C3的进阶实验_reference_verilog
    发表于 11-18 16:05 4次下载

    Verilog语言练习与讲解1

    Verilog语言练习与讲解1,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-10 15:29 2次下载

    Verilog_HDL基础知识非常好的学习教程 (1)

    Verilog_HDL基础知识非常好的学习教程 (1)
    发表于 01-04 12:33 0次下载

    verilog是什么_verilog的用途和特征是什么

    本文首先介绍了verilog的概念和发展历史,其次介绍了verilog的特征与Verilog的逻辑门级描述,最后介绍了Verilog晶体管级描述与v
    发表于 05-14 14:22 4.6w次阅读
    <b class='flag-5'>verilog</b>是什么_<b class='flag-5'>verilog</b>的用途和特征是什么

    数字IC设计入门(6)初识verilog

    Verilog HDL与VHDL是当前最流行的两种硬件设计语言,两者各有优劣,也各有相当多的拥护者,都通过了IEEE 标准。VHDL在北美及欧洲应用很普遍,Verilog HDL 语言在中国、日本
    发表于 11-06 09:05 15次下载
    数字<b class='flag-5'>IC</b>设计入门(6)初识<b class='flag-5'>verilog</b>

    Verilog的程序框架案例

    Verilog HDL(Hardware Description Language)是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,具有灵活性高、易学易用等特点。Verilog HDL可以在较短的时间内学习和掌握,目前已经在FPGA开发/
    发表于 09-13 14:34 1419次阅读

    实时计算汽车数量开源分享

    电子发烧友网站提供《实时计算汽车数量开源分享.zip》资料免费下载
    发表于 06-28 09:26 0次下载
    实时<b class='flag-5'>计算</b>汽车<b class='flag-5'>数量</b>开源分享

    IC设计之Verilog代码规范

    Verilog规范对于一个好的IC设计至关重要。
    的头像 发表于 08-17 10:14 1596次阅读
    <b class='flag-5'>IC</b>设计之<b class='flag-5'>Verilog</b>代码规范

    光纤跳线的数量怎么计算

    光纤跳线的数量计算通常涉及到多个因素,以下是一些主要的考虑点和计算方法: 一、主要考虑因素 光纤配线架的容量: 不同类型的光纤配线架具有不同的容量,即能够容纳的光纤跳线数量。在选择光纤跳线数量
    的头像 发表于 09-10 10:00 1031次阅读