首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何打印8位的最大序列?

如何打印8位的最大序列?
EN

Stack Overflow用户
提问于 2022-10-22 12:30:03
回答 1查看 46关注 0票数 1

我有一个模块,最大输入为32位,输出为8位。我需要找到8位序列的最高值在我的输入。

这就是我想出来的。在我运行它之后,它给我一个8 'X‘的序列。

代码语言:javascript
复制
module exercitiul4(input [31:0] inpt, output [7:0] otpt);
  
  reg [7:0] maxval;
  
      always @ (inpt) begin
        
          maxval = inpt[7:0]>maxval?inpt[7:0]:maxval;
          maxval = inpt[15:8]>maxval?inpt[15:8]:maxval;
          maxval = inpt[23:16]>maxval?inpt[23:16]:maxval;
          maxval = inpt[31:24]>maxval?inpt[31:24]:maxval;
          
      end
        assign otpt = maxval;
endmodule

module exercitiul4_tb;

reg[31:0] nr_tb;
wire[7:0] out_tb;

exercitiul4 maTerminaProgramuAsta(.inpt(nr_tb), .otpt(out_tb));
initial begin
  nr_tb = 128;
  #1;
  $display("%b", out_tb);
end
endmodule
EN

回答 1

Stack Overflow用户

发布于 2022-10-22 18:45:04

您将maxval声明为reg类型,这意味着它在0时被初始化为X。

它保持在X,因为您不直接为它分配任何其他值。因为像inpt[7:0]>maxval一样,比较也返回X,所以maxval总是保持X。

初始化maxval的一种方法是将其直接分配给第一个输入值:

代码语言:javascript
复制
  always @ (inpt) begin
      maxval = inpt[7:0];
      maxval = inpt[15:8]>maxval?inpt[15:8]:maxval;
      maxval = inpt[23:16]>maxval?inpt[23:16]:maxval;
      maxval = inpt[31:24]>maxval?inpt[31:24]:maxval;
  end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74163569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档