设为首页收藏本站帮助中心
查看: 186|回复: 0
收起左侧

Quartus Verilog HDL/FPGA 实现获取一个字节值二进制1的数量 (输入:0~255,输出:0~8)

[复制链接]
发表于 2023-3-5 20:22:24 | 显示全部楼层 |阅读模式
main.png
  1. module byte1num(
  2.         input [7:0] in,                        //字节输入 范围:0~255
  3.         output reg [3:0] out                //字节二进制1的数量 范围:0~8
  4. );
  5. reg [2:0] i;
  6. always @(*) begin
  7.         i = 3'd0;
  8.         out = 4'd0;
  9.         repeat(8) begin
  10.                 if(in[i]) begin
  11.                         out = out + 4'd1;
  12.                 end
  13.                 i = i + 3'd1;
  14.         end
  15. end
  16. endmodule

  17. module main(
  18.         input clk,                        //时钟输入
  19.         output reg led                //低电平(计算正确) 点亮
  20. );
  21. wire [7:0] num;
  22. byte1num U1(
  23.         .in(8'hAB),
  24.         .out(num)
  25. );
  26. always @(posedge clk) begin
  27.         if(num == 4'd5) begin                //字节:AB 二进制有有5个1
  28.                         led <= 1'b0;
  29.                 end else begin
  30.                         led <= 1'b1;
  31.         end
  32. end
  33. endmodule
复制代码

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则