【发布时间】:2016-05-25 05:47:22
【问题描述】:
我想为具有 1000 个十进制值的输入信号找到一个最大值,该值从内存中读取一次每个正 clk 边缘。我执行了以下粗略代码来查找最大值,但它没有给我正确的最大值/数字请帮助我,以便我可以在这 1000 个输入信号值中找到一个最大值..`提前感谢
module(input clk, input [15:0]din, output [15:0]dout);
reg [15:0] max=0;
always @ (Posedge clk)
if(din>max)
max<=din;
else
max<=0;
assign dout=max;
endmodule
【问题讨论】:
-
您可以使用 计数器 来计算 1000 个样本。目前,没有规定考虑 1000 个最新输入值。此外,您需要存储这 1000 个样本(内存)。每次输入发生变化(某个组合块)时,将当前输入与这 1000 个样本中的每一个进行比较。
-
附带说明,在顺序块中使用非阻塞赋值 (
<=)。此外,关键字posedge必须是小写字母。 -
Sharvil111 感谢您的回复..如果您不介意您可以通过编写计数器代码来计算这些值来编辑我的代码,然后我可以找到单个最大值..
标签: verilog system-verilog iverilog verilator