用于为具有 1000 个样本值的输入查找单个最大值的 verilog 代码
verilog code to find a single max value for an input that has 1000 samples values
我想为输入信号找到一个最大值,该输入信号具有 1000 个十进制值,每个正时钟从内存中读取一次 edge.i 执行了以下粗略代码来查找最大值,但它没有没有给我正确的最大值 value/number 请帮助我,这样我就可以在这 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
假设 1:
如果您的 1000 估值的内存读取操作超出了您的查找最大值模块,则无需跟踪读取了多少个值。
module find_max (input clk,
input [15:0] din,
output [15:0] dout
);
reg [15:0] max=0;
always @ (posedge clk)
begin
if(din > max)
max <= din;
else
max <= max;
end
assign dout = max;
endmodule
你的最大值反映在下一个周期被馈送到 find_max
模块后的输出中。
假设二:
如果您的 find_max
模块没有处理读取的估值总数,那么我们只需要一个计数器来跟踪到达的周期数或估值。
module find_max (input clk,
input [15:0] din,
output [15:0] dout
);
reg [15:0] max=0;
reg [ 9:0] cnt=0;
always @ (posedge clk)
begin
cnt <= cnt + 1'b1;
if(din > max)
max <= din;
else
max <= max;
end
assign dout = (cnt == 10'd1000) ? max : 16'd0;
endmodule
我们不需要存储 1000 个样本的值,因为我们只需要找到最大值。
当 din<=max 时,您不需要像在 else 语句中那样为 max 赋值。
module(input clk, input [15:0]din, output reg [15:0]dout);
always @ (posedge clk)
if(din>max)
max<=din;
endmodule
我想为输入信号找到一个最大值,该输入信号具有 1000 个十进制值,每个正时钟从内存中读取一次 edge.i 执行了以下粗略代码来查找最大值,但它没有没有给我正确的最大值 value/number 请帮助我,这样我就可以在这 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
假设 1:
如果您的 1000 估值的内存读取操作超出了您的查找最大值模块,则无需跟踪读取了多少个值。
module find_max (input clk,
input [15:0] din,
output [15:0] dout
);
reg [15:0] max=0;
always @ (posedge clk)
begin
if(din > max)
max <= din;
else
max <= max;
end
assign dout = max;
endmodule
你的最大值反映在下一个周期被馈送到 find_max
模块后的输出中。
假设二:
如果您的 find_max
模块没有处理读取的估值总数,那么我们只需要一个计数器来跟踪到达的周期数或估值。
module find_max (input clk,
input [15:0] din,
output [15:0] dout
);
reg [15:0] max=0;
reg [ 9:0] cnt=0;
always @ (posedge clk)
begin
cnt <= cnt + 1'b1;
if(din > max)
max <= din;
else
max <= max;
end
assign dout = (cnt == 10'd1000) ? max : 16'd0;
endmodule
我们不需要存储 1000 个样本的值,因为我们只需要找到最大值。
当 din<=max 时,您不需要像在 else 语句中那样为 max 赋值。
module(input clk, input [15:0]din, output reg [15:0]dout);
always @ (posedge clk)
if(din>max)
max<=din;
endmodule